OSDN Git Service

7e349d5f2021cf88a18210fbe99217f14839cbec
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-07-20  Ira Rosen  <irar@il.ibm.com>
2
3         * tree-vectorizer.h (vectorizable_condition): Add parameters.
4         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
5         (get_initial_def_for_reduction): Likewise.
6         (vectorizable_reduction): Skip the check of first operand in case
7         of COND_EXPR. Add check that it is outer loop vectorization if
8         nested cycle was detected. Call vectorizable_condition() for 
9         COND_EXPR. If reduction epilogue cannot be created do not fail for
10         nested cycles (if it is not double reduction). Assert that there
11         is only one type in the loop in case of COND_EXPR. Call
12         vectorizable_condition() to vectorize COND_EXPR.
13         * tree-vect-stmts.c (vectorizable_condition): Update comment.
14         Add parameters. Allow nested cycles if called from 
15         vectorizable_reduction(). Use reduction vector variable if provided.
16         (vect_analyze_stmt): Call vectorizable_reduction() before
17         vectorizable_condition().
18         (vect_transform_stmt): Update call to vectorizable_condition().
19
20 2009-07-20  Christian Bruel  <christian.bruel@st.com>
21         
22         * config/sh/sh.opt (-mfmovd): Resurrect and document.
23         * doc/invoke.texi (-mfmovd): Likewise.
24         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
25         
26 2009-07-20  Jan Hubicka  <jh@suse.cz>
27
28         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
29         when handling SSA name.
30
31 2009-07-19  Jan Hubicka  <jh@suse.cz>
32
33         PR tree-optimization/40676
34         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
35         virtual PHIs in empty BBs.
36
37 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
38
39         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
40         re-expanded the compound use gen_lowpart instead to convert to the
41         desired mode.
42
43 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
44
45         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
46         OUTER_CONST arguments.
47         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
48         the new wider mode will be masked off.
49         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
50
51 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
52
53         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
54         high-order bits are zero.
55
56 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
57
58         * combine.c (simplify_shift_const_1): Split code to determine
59         shift_mode into ...
60         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
61         new bits shifted in are identical to the old sign bit.
62
63 2009-07-18  Richard Guenther  <rguenther@suse.de>
64
65         PR c/40787
66         * gimplify.c (gimplify_call_expr): Reject code using results from
67         functions returning void.
68
69 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
70
71         * doc/md.texi: Document the new PowerPC "es" constraint.
72         Document that "m" can include automodified addresses on this target,
73         and explain how %U must be used.  Extend the "Q" and "Z" documentation
74         to suggest "es" as well as "m".
75         * config/rs6000/constraints.md (es): New memory constraint.
76         (Q, Z): Update strings to match new documentation.
77
78 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
79
80         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
81         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
82         * config/rs6000/predicates.md (volatile_mem_operand): Use
83         offsettable_nonstrict_memref_p.
84         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
85         (*floatunssidf2_internal): Likewise.
86         (*fix_truncdfsi2_internal): Likewise.
87         (*fix_trunctfsi2_internal): Likewise.
88
89 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
90
91         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
92         atmega32u2 devices.
93         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
94
95 2009-07-17  Richard Guenther  <rguenther@suse.de>
96
97         PR c/40401
98         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
99         (pass_warn_unused_result): Likewise.
100         (TODO_set_props): Remove.
101         * omp-low.c (diagnose_omp_structured_block_errors): Change to
102         run as a pass.
103         (pass_diagnose_omp_blocks): Define.
104         * c-decl.c (pop_file_scope): Do not finalize the CU here.
105         (c_gimple_diagnostics_recursively): Remove.
106         (finish_function): Do not call it.
107         (c_write_global_declarations): Continue after errors.
108         Finalize the CU here.
109         * c-gimplify.c (c_genericize): Do not gimplify here.
110         * c-common.c (c_warn_unused_result): Move ...
111         * tree-cfg.c (do_warn_unused_result): ... here.
112         (run_warn_unused_result): New function.
113         (gate_warn_unused_result): New function.
114         (pass_warn_unused_result): New pass.
115         * c-common.h (c_warn_unused_result): Remove.
116         * flags.h (flag_warn_unused_result): Declare.
117         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
118         * opts.c (flag_warn_unused_result): Initialize to false.
119         * toplev.c (compile_file): Add comment.
120         * omp-low.c (create_omp_child_function): Do not register
121         the function with the frontend.
122         (diagnose_omp_structured_block_errors): Prepare to be
123         called as optimization pass.
124         (gate_diagnose_omp_blocks): New function.
125         (pass_diagnose_omp_blocks): New pass.
126         * cgraph.h (cgraph_optimize): Remove.
127         (cgraph_analyze_function): Likewise.
128         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
129         * cgraphunit.c (cgraph_lower_function): Lower nested functions
130         before their parents here.
131         (cgraph_finalize_function): Not here.
132         (cgraph_analyze_function): Gimplify functions here.
133         (cgraph_finalize_compilation_unit): Continue after errors.
134         Optimize the callgraph from here.
135         (cgraph_optimize): Make static.
136         * langhooks.c (write_global_declarations): Finalize the CU.
137         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
138         (gimplify_function_tree): Assert we gimplify only once.
139         Set PROP_gimple_any property.
140         * tree-nested.c (gimplify_all_functions): New function.
141         (lower_nested_functions): Gimplify all nested functions.
142         * gimple.h (diagnose_omp_structured_block_errors): Remove.
143         * passes.c (init_optimization_passes): Add pass_warn_unused_result
144         and pass_diagnose_omp_blocks after gimplification.  Do not
145         set TODO_set_props on all_lowering_passes.
146         (execute_one_pass): Do not handle TODO_set_props.
147         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
148         (gimplify.o): Add tree-pass.h dependency.
149         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
150         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
151         (unsave_r): Likewise.
152         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
153         temporary variable.
154
155 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
156
157         * doc/service.texi (Service): Restore previously removed link,
158         which isn't broken after all.
159
160 2009-07-17  Richard Guenther  <rguenther@suse.de>
161
162         PR tree-optimization/40321
163         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
164         PHI nodes to the maximal set.
165         (make_values_for_phi): Add PHI arguments to the maximal set.
166         (execute_pre): Dump PHI_GEN and the maximal set.
167
168 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
169
170         PR c++/40780
171         * gimplify.c (gimplify_conversion): Don't change non-conversions into
172         VIEW_CONVERT_EXPR.
173
174 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
175
176         * doc/extend.texi (Nested Functions): Replace broken link with
177         textual reference.
178         * doc/service.texi (Service): Remove broken link.
179
180 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
181
182         PR bootstrap/40781
183         * builtins.c (expand_builtin_memcmp): Use loc instead of
184         EXPR_LOCATION (exp).
185         (expand_builtin_strncmp): Likewise.
186
187 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
188             Manuel López-Ibáñez  <manu@gcc.gnu.org>
189
190         PR 40435 
191         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
192         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
193         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
194         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
195         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
196         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
197         tree-inline.c, c-common.c, c-common.h, gimple.c,
198         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
199         convert.c: Add location argument to fold_{unary,binary,ternary},
200         fold_build[123], build_call_expr, build_size_arg,
201         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
202         fold_build1_initializer, fold_build2_initializer,
203         fold_build3_initializer, fold_build_call_array,
204         fold_build_call_array_initializer, fold_single_bit_test,
205         omit_one_operand, omit_two_operands, invert_truthvalue,
206         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
207         combine_comparisons, fold_builtin_*, fold_call_expr,
208         build_range_check, maybe_fold_offset_to_address, round_up,
209         round_down.
210
211 2009-07-16  Jason Merrill  <jason@redhat.com>
212
213         PR libstdc++/37907
214         * c-common.c (c_common_reswords): Add __is_standard_layout
215         and __is_trivial.
216         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
217         * doc/implement-cxx.texi: New.
218         * doc/gcc.texi: Include it.
219
220 2009-07-16  DJ Delorie  <dj@redhat.com>
221
222         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
223         compares that may be indirectly affected by previous instructions.
224
225 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
226
227         * builtins.c (do_mpc_arg2): New.
228         (fold_builtin_2): Fold builtin cpow.
229         * real.h (HAVE_mpc_pow): New.
230
231 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
232
233         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
234         comparison to skip unprofitable schedule
235
236 2009-07-16  Simon Baldwin  <simonb@google.com>
237
238         * gcc.c (option_map): New flag -no-canonical-prefixes.
239         * (display_help): Print help text for new flag.
240         * (process_command): Move options translation and language specifics
241         and handle new flag early.  Use it to set a function pointer to a
242         prefix builder.  Replace make_relative_prefix calls with calls to
243         the function pointed to.  Ignore new flag in regular options handling.
244         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
245
246 2009-07-15  DJ Delorie  <dj@redhat.com>
247
248         * config/mep/mep.md (sibcall_internal): Change register to avoid
249         argument registers.
250         (sibcall_value_internal): Likewise.
251
252 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
253
254         PR rtl-optimization/40710
255         * resource.c (mark_target_live_regs): Reset DF problem to LR.
256
257 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
258
259         * config/mips/mips.md (*extenddi_truncate<mode>,
260         *extendsi_truncate<mode>): Change type attribute to move_type
261         with shift_shift.  Split out code handling exts from here ...
262         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
263         pattern.
264         (*extendhi_truncateqi): Change type attribute to move_type with
265         shift_shift.  Split out code handling exts from here ...
266         (*extendhi_truncateqi_exts): ... to this new pattern.
267
268 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
269
270         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
271         instead of "and" with inverted sign bit mask value.  Use
272         "nonimmediate_operand" for operand 1 and operand 2 predicate.
273         Allocate registers only for operand 4 and operand 5.
274
275 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
276
277         PR middle-end/40747
278         * fold-const.c (fold_cond_expr_with_comparison): When folding
279         < and <= to MIN, make sure the MIN uses the same type as the
280         comparison's operands.
281
282 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
283
284         * arm.md (ior_xor): New code iterator.
285         (split for ior/xor with shift and zero-extend): New split pattern.
286         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
287
288 2009-07-15  Richard Guenther  <rguenther@suse.de>
289
290         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
291         offset member.
292
293 2009-07-15  Richard Guenther  <rguenther@suse.de>
294
295         PR middle-end/40753
296         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
297
298 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
299
300         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
301         handle 2.6.30 kernel.
302
303 2009-07-15  DJ Delorie  <dj@redhat.com>
304
305         * config/mep/mep.md (sibcall_internal): Change register to allow
306         for 24-bit addresses.
307         (sibcall_value_internal): Likewise.
308
309 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
310         
311         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
312         that are enabled/disabled by the flags introduced by a previous patch.
313         
314 2009-07-14  DJ Delorie  <dj@redhat.com>
315
316         * config/mep/mep.md (sibcall_internal): Include non-toggling
317         non-jmp case.
318         (sibcall_value_internal): Likewise.
319
320 2009-07-14  Taras Glek  <tglek@mozilla.com>
321             Rafael Espindola  <espindola@google.com>
322
323         * doc/sourcebuild.texi: Document install-plugin target.
324         * configure.ac: Added install-plugin target to language makefiles.
325         * configure: Regenerate.
326         * Makefile.in: (install-plugin): Install more headers,
327         depend on lang.install-plugin.
328
329 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
330
331         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
332         translation.
333         
334 2009-07-14  DJ Delorie  <dj@redhat.com>
335
336         * config/mep/mep.c (mep_vliw_jmp_match): New function.
337         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
338         * config/mep/mep.md (sibcall_internal): Change test from
339         mep_vliw_mode_match to mep_vliw_jmp_match.
340         (sibcall_value_internal): Likewise.
341
342 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
343
344         * config/i386/sse.md (copysign<mode>3): New expander.
345         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
346         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
347         Use ix86_build_const_vector.
348         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
349         IX86_BUILTIN_CPYSGNPD.
350         (builtin_description): Add __builtin_ia32_copysignps and
351         __builtin_ia32_copysignpd.
352         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
353         and BUILT_IN_COPYSIGNF.
354
355 2009-07-13  Jason Merrill  <jason@redhat.com>
356
357         * builtins.c (can_trust_pointer_alignment): New fn.
358         (get_pointer_alignment): Factor it out from here.
359         * tree.h: Declare it.
360
361 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
362
363         * config/rs6000/predicates.md (offsettable_mem_operand): Test
364         RTX_AUTOINC class.
365
366 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
367
368         PR debug/40705
369         PR c++/403057
370         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
371
372 2009-07-14  Richard Guenther  <rguenther@suse.de>
373             Andrey Belevantsev <abel@ispras.ru>
374
375         PR middle-end/40745
376         * cfgexpand.c (partition_stack_vars): Do not bother to update
377         alias information when not optimizing.
378
379 2009-07-14  Richard Guenther  <rguenther@suse.de>
380         Andrey Belevantsev <abel@ispras.ru>
381
382         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
383         (pt_solution_set): Likewise.
384         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
385         * tree-ssa-structalias.c (pt_solution_set): New function.
386         * final.c (rest_of_clean_state): Free SSA data structures.
387         * print-rtl.c (print_decl_name): Remove.
388         (print_mem_expr): Implement in terms of print_generic_expr.
389         * alias.c (ao_ref_from_mem): New function.
390         (rtx_refs_may_alias_p): Likewise.
391         (true_dependence): Query alias-export info.
392         (canon_true_dependence): Likewise.
393         (write_dependence_p): Likewise.
394         * tree-dfa.c (get_ref_base_and_extent): For void types leave
395         size unknown.
396         * emit-rtl.c (component_ref_for_mem_expr): Remove.
397         (mem_expr_equal_p): Use operand_equal_p.
398         (set_mem_attributes_minus_bitpos): Do not use
399         component_ref_for_mem_expr.
400         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
401         (update_alias_info_with_stack_vars): Likewise.
402         (partition_stack_vars): Call update_alias_info_with_stack_vars.
403         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
404         explicitly nor clear stmt operands.
405         Free the decl-to-pointer map.
406         * tree-optimize.c (execute_free_datastructures): Do not free
407         SSA data structures here.
408         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
409         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
410         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
411         dependencies.
412         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
413
414 2009-07-13  DJ Delorie  <dj@redhat.com>
415
416         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
417         unrolling at the right iteration count.
418
419         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
420         calculations.
421
422 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
423         
424         * haifa-sched.c (rank_for_schedule): Introduced flags to
425         enable/disable individual scheduling heuristics.
426         * common.opt: Introduced flags to enable/disable individual
427         heuristics in the scheduler.    
428         * doc/invoke.texi: Introduced flags to enable/disable individual
429         heuristics in the scheduler.
430         
431 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
432
433         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
434         config/i386/mingw-tls.c.
435         * config/i386/mingw-tls.c: Removed.
436
437 2009-07-13  Ira Rosen  <irar@il.ibm.com>
438
439         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
440         checks access only relevant statements.
441         (vectorizable_reduction): Likewise.
442
443 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
444
445         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
446         just for 32-bit case.
447
448 2009-07-12  Jan Hubicka  <jh@suse.cz>
449
450         PR tree-optimization/40585
451         * except.c (expand_resx_expr): When there already is resume
452         instruction, produce linked list.
453         (build_post_landing_pads): Assert that resume is empty.
454         (connect_post_landing_pads): Handle resume lists.
455         (dump_eh_tree): Dump resume list.
456
457 2009-07-12  Ira Rosen  <irar@il.ibm.com>
458
459         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
460         with additional argument.
461         * tree-vectorizer.h (enum vect_def_type): Add
462         vect_double_reduction_def.
463         (vect_is_simple_reduction): Add argument.
464         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
465         indentation.
466         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
467         vect_is_simple_reduction with additional argument.
468         (vect_analyze_loop_operations): Handle exit phi nodes in case of
469         double reduction.
470         (reduction_code_for_scalar_code): Handle additional codes by
471         returning ERROR_MARK for them. Fix comment and indentation.
472         (vect_is_simple_reduction): Fix comment, add argument to specify
473         double reduction. Detect double reduction.
474         (get_initial_def_for_induction): Fix indentation.
475         (get_initial_def_for_reduction): Fix comment and indentation.
476         Handle double reduction. Create initial definitions that do not
477         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
478         (vect_create_epilog_for_reduction): Fix comment, add argument to
479         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
480         epilogue result extraction. Create double reduction phi node and
481         replace relevant uses.
482         (vectorizable_reduction): Call vect_is_simple_reduction with
483         additional argument. Fix indentation. Update epilogue code treatment
484         according to the changes in reduction_code_for_scalar_code. Check
485         for double reduction. Call vect_create_epilog_for_reduction with
486         additional argument.
487         * tree-vect-stmts.c (process_use): Handle double reduction, update
488         documentation.
489         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
490         (vect_get_vec_def_for_operand): Likewise.
491
492 2009-07-12  Danny Smith  <dansmister@gmail.com>
493
494         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
495         dllexport if !TREE_PUBLIC.
496         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
497
498 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
499
500         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
501         (avr_extra_arch_macro) Remove declatation.
502         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
503         (avr_extra_arch_macro) Declare as static.
504         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
505
506 2009-07-11  Jan Hubicka  <jh@suse.cz>
507
508         PR middle-end/48388
509         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
510
511 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
512
513         PR debug/40713
514         * dwarf2out.c (dw_fde_struct): Add in_std_section and
515         cold_in_std_section bits.
516         (dwarf2out_begin_prologue): Initialize them.
517         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
518         if already covered by text_section or cold_text_section range.
519
520         PR rtl-optimization/40667
521         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
522         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
523         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
524         * config/i386/i386.c (ix86_minimum_alignment): New function.
525         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
526         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
527         * emit-rtl.c (gen_reg_rtx): Likewise.
528         * function.c (assign_parms): Likewise.  If nominal_type needs
529         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
530         rather than passed_type's alignment.
531
532         PR target/40668
533         * function.c (assign_parm_setup_stack): Adjust
534         MEM_OFFSET (data->stack_parm) if promoted_mode is different
535         from nominal_mode on big endian.
536
537 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
538
539         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
540
541 2009-07-10  DJ Delorie  <dj@redhat.com>
542
543         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
544
545 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
546
547         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
548         attribute.
549         (thumb2_cbnz): Likewise.
550
551 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
552
553         PR target/39079
554         * config.gcc (supported_defaults): Add synci.
555         (with_synci): Add validation.
556         (all_defaults): Add synci.
557         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
558         ISA_HAS_SYNCI.
559         (synci): Same.
560         * config/mips/mips.opt (msynci): New option.
561         * config/mips/mips.c (mips_override_options): Warn on use of
562         -msynci for targets that do now support it.
563         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
564         msynci.
565         * gcc/doc/invoke.texi (-msynci): Document the new option.
566         * doc/install.texi (--with-synci): Document the new option.
567
568 2009-07-10  Richard Guenther  <rguenther@suse.de>
569
570         PR tree-optimization/40496
571         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
572         the PHI result with a compatible type.
573
574 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
575
576         PR 25509
577         PR 40614
578         * c.opt (Wunused-result): New.
579         * doc/invoke.texi: Document it.
580         * c-common.c (c_warn_unused_result): Use it.
581
582 2009-07-09  DJ Delorie  <dj@redhat.com>
583
584         * targhooks.c (default_target_can_inline_p): Rename from
585         default_target_option_can_inline_p.
586         * targhooks.h (default_target_can_inline_p): Likewise.
587         * target-def.h (TARGET_CAN_INLINE_P): Rename from
588         TARGET_OPTION_CAN_INLINE_P.
589         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
590         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
591         (mep_target_can_inline_p): Rename from
592         mep_target_option_can_inline_p.
593
594         PR target/40626
595         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
596         registers used to pass vectors.
597
598         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
599
600 2009-07-09  Tom Tromey  <tromey@redhat.com>
601
602         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
603         * config/mmix/mmix.c: Include dwarf2.h.
604         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
605         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
606         * config/sh/sh.c: Include dwarf2.h.
607         * config/i386/i386.c: Include dwarf2.h.
608         * Makefile.in (DWARF2_H): Remove 'elf'.
609         * except.c: Include dwarf2.h.
610         * unwind-dw2.c: Include dwarf2.h.
611         * dwarf2out.c: Include dwarf2.h.
612         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
613         * unwind-dw2-fde.c: Include dwarf2.h.
614         * dwarf2asm.c: Include dwarf2.h.
615
616 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
617
618         * haifa-sched.c (insn_finishes_cycle_p): New static function.
619         (max_issue): Use it.
620         * sched-int.h (struct sched_info: insn_finishes_block_p): New
621         scheduler hook.
622         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
623         (region_sched_info): Update.
624         * sched-ebb.c (ebb_sched_info): Update.
625         * modulo-sched.c (sms_sched_info): Update.
626         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
627
628 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
629
630         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
631
632 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
633
634         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
635
636 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
637
638         PR middle-end/40692
639         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
640         arg1 with arg01 if arg1 is already INTEGER_CST.
641
642 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
643
644         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
645         Transform (and (truncate)) into (truncate (and)).
646
647 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
648
649         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
650         creating LHS paradoxical subregs.  Fix surrounding returns to
651         use NULL_RTX rather than 0.
652
653 2009-07-08  DJ Delorie  <dj@redhat.com>
654
655         * config/mep/mep.c: (mep_option_can_inline_p): New.
656         (TARGET_OPTION_CAN_INLINE_P): Define.
657
658 2009-07-08  Mark Wielaard  <mjw@redhat.com>
659
660         PR debug/40659
661         * dwarf2out.c (add_data_member_location_attribute): When we have
662         only a constant offset don't emit a new location description using
663         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
664         dwarf_version > 2.
665
666 2009-07-08  Richard Henderson  <rth@redhat.com>
667
668         PR target/38900
669         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
670         (enum reg_class): Add CLOBBERED_REGS.
671         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
672         * config/i386/i386.c (ix86_conditional_register_usage): Moved
673         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
674         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
675         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
676         force 64-bit sibcalls into R11.
677         * config/i386/constraints.md (U): New constraint.
678         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
679         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
680         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
681
682 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
683
684         * basic-block.h (dump_regset, debug_regset): Remove duplicate
685         prototypes.
686         * c-objc-common.h (c_initialize_diagnostics): Ditto.
687         * ebitmap.h (dump_ebitmap): Ditto.
688         * optabs.h (optab_libfunc): Ditto.
689         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
690         * tree-flow.h (vect_can_force_dr_alignment_p,
691         get_vectype_for_scalar_type): Ditto.
692         (vectorize_loops): Move prototype to ...
693         * tree-vectorizer.h: ... here. Also, adjust comment.
694         (vect_set_verbosity_level): Remove duplicate prototype.
695         * tree-ssa-loop.c: Include tree-vectorizer.h.
696         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
697
698 2009-07-08  Nick Clifton  <nickc@redhat.com>
699
700         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
701         forward slash.
702
703 2009-07-08  DJ Delorie  <dj@redhat.com>
704
705         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
706         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
707         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
708         written to.
709         * config/mep/intrinsics.md: Regenerated.
710         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
711         registers when asm() or calls are detected.
712
713 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
714
715         PR c++/31246
716         * gimplify.c (gimplify_expr): Propagate no_warning flag when
717         gimplifying.
718         * gimple (gimple_build_call_from_tree): Likewise.
719         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
720         no_warning flag before warning.
721
722 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
723
724         * tree.c (set_expr_locus): Remove.
725         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
726         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
727         EXPR_LOCATION.
728         * gimplify.c (internal_get_tmp_var): Likewise.
729         (gimplify_call_expr): Likewise.
730         (gimplify_one_sizepos): Likewise.
731
732 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
733
734         PR debug/40666
735         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
736         to variables for debugging purposes.
737
738 2009-06-23  Mark Loeser  <mark@halcy0n.com>
739
740         PR build/40010
741         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
742
743 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
744
745         * pretty-print.c (pp_base_format): Remove %J.
746         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
747         gcc_cxxdiag_char_table): Likewise.
748         (init_dynamic_diag_info): Likewise.
749
750 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
751
752         * pretty-print.c (pp_base_format): Remove %H.
753         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
754         gcc_cxxdiag_char_table): Likewise.
755         (init_dynamic_diag_info): Likewise.
756         * config/mep/mep.c (mep_select_section): Likewise.
757
758 2009-07-07  Duncan Sands  <baldrick@free.fr>
759
760         * final.c (pass_clean_state): Give the pass a name.
761         * passes.c (pass_rest_of_compilation): Likewise.
762         * tree-optimize.c (pass_all_optimizations): Likewise.
763
764 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
765
766         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
767         an extra 'decl' for error_at.
768
769 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
770
771         PR middle-end/40669
772         * tree-tailcall.c (adjust_return_value_with_ops,
773         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
774         if it has complex or vector type.
775
776 2009-07-07  Olivier Hainque  <hainque@adacore.com>
777
778         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
779         pthread symbols.
780
781 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
782
783         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
784
785 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
786
787         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
788         * c-decl.c: Likewise.
789         * function.c: Likewise.
790         * varasm.c: Likewise.
791         * tree-ssa.c: Likewise.
792         * c-common.c: Likewise.
793         * tree-cfg.c: Likewise.
794         * config/spu/spu.c: Likewise.
795         * config/ia64/ia64.c: Likewise.
796         * config/v850/v850.c: Likewise.
797
798 2009-07-06  DJ Delorie  <dj@redhat.com>
799
800         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
801         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
802         unspecified accesses to control registers.
803         * config/mep/intrinsics.md: Regenerate.
804         * config/mep/intrinsics.h: Regenerate.
805         * config/mep/mep-intrin.h: Regenerate.
806
807 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
808
809         * c-lex.c: Replace %H by an explicit location. Update all calls.
810         * c-common.c: Likewise.
811         * c-decl.c: Likewise.
812         * c-typeck.c: Likewise.
813         * fold-const.c: Likewise.
814         * gimplify.c: Likewise.
815         * stmt.c: Likewise.
816         * tree-cfg.c: Likewise.
817         * tree-ssa-loop-niter.c: Likewise.
818         * tree-vrp.c: Likewise.
819         * value-prof.c: Likewise.
820
821 2009-07-06  Diego Novillo  <dnovillo@google.com>
822
823         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
824         if it has one.  Handle cases where VAR does not have an
825         annotation or cfun is NULL.
826
827 2009-07-06  Diego Novillo  <dnovillo@google.com>
828
829         * tree.c: Include debug.h.
830         (initialize_tree_contains_struct): New.
831         (init_ttree): Call it.
832         (tree_node_structure_for_code): Factor out of ...
833         (tree_node_structure): ... here.
834         * treestruct.def (TS_PHI_NODE): Remove.
835         (TS_GIMPLE_STATEMENT): Remove.
836
837 2009-07-06  Diego Novillo  <dnovillo@google.com>
838
839         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
840         (debug_tree_chain): Handle cycles.
841
842 2009-07-06  Nick Clifton  <nickc@redhat.com>
843             DJ Delorie  <dj@redhat.com>
844
845         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
846         __FMOVD_ENABLED__ is defined.
847         * config/sh/sh.h
848         (TARGET_FMOVD): Provide a default definition.
849         (MASK_FMOVD): Likewise.
850         (TARGET_CPU_CPP_BUILTINS): Define
851         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
852         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
853         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
854         (split for DF load from memory into register): Also handle
855         MEMs which consist of REG+DISP addressing.
856         (split for DF store from register to memory): Likewise.
857         (movsf_ie): Always use single fp_mode.
858         * config/sh/sh.c (sh_override_options): Do not automatically
859         enable TARGET_MOVD for the SH2A when supporting doubles - leave
860         that to the -mfmovd command line switch.
861         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
862         (fldi_ok): Always allow.
863         * config/sh/sh.opt (mfmovd): Remove this switch.
864         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
865
866 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
867             Kaz Kojima  <kkojima@gcc.gnu.org>
868
869         PR rtl-optimization/30807
870         * postreload.c (reload_combine): For every new use of REG_SUM,
871         record the use of BASE.
872
873 2009-07-06  Jan Hubicka  <jh@suse.cz>
874
875         * params.def: Revert my accidental commit at 2009-06-30.
876
877 2009-07-04  Ian Lance Taylor  <iant@google.com>
878
879         PR target/40636
880         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
881         EXPORTED_CONST.
882         (mingw_format_attribute_overrides): Likewise.
883
884 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
885
886         PR debug/40596
887         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
888         don't check cfa.reg.  Instead of cfa.indirect use
889         fde && fde->drap_reg != INVALID_REGNUM test.
890
891 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
892
893         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
894
895 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
896
897         PR target/40587
898         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
899
900 2009-07-03  Richard Guenther  <rguenther@suse.de>
901
902         PR tree-optimization/40640
903         * tree-switch-conversion.c (build_arrays): Perform arithmetic
904         in original type.
905
906 2009-07-03  Jan Hubicka  <jh@suse.cz>
907
908         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
909         for size, reduce amount of inlining.
910
911 2009-07-03  Richard Guenther  <rguenther@suse.de>
912
913         PR middle-end/34163
914         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
915         if t +- x is known to not overflow and the conversion widens the
916         operation.
917         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
918
919 2009-07-03  Jan Hubicka  <jh@suse.cz>
920
921         * ipa-pure-const.c (analyze): Update loop optimizer init.
922         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
923         try_remove_empty_loop, remove_empty_loops): Remove.
924         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
925         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
926         to mark regular loops as neccesary.
927         (degenerate_phi_p): New function.
928         (propagate_necessity, remove_dead_phis): Use it.
929         (forward_edge_to_pdom): Likewise.
930         (eliminate_unnecessary_stmts): Take care to remove uses of results of
931         virtual PHI nodes that became unreachable.
932         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
933         * tree-flow.h (remove_empty_loops): Remove.
934         * passes.c (init_optimization_passes): Remove.
935
936 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
937
938         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
939         can_create_pseudo_p.
940         (*fix_trunc<mode>_i387_1): Ditto.
941         (*floathi<mode>2_1): Ditto.
942         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
943         (*fistdi2_1): Ditto.
944         (*fist<mode>2_1): Ditto.
945         (frndintxf2_floor): Ditto.
946         (*fist<mode>2_floor_1): Ditto.
947         (frndintxf2_ceil): Ditto.
948         (*fist<mode>2_ceil_1): Ditto.
949         (frndintxf2_trunc): Ditto.
950         (frndintxf2_mask_pm): Ditto.
951         (fxam<mode>2_i387_with_temp): Ditto.
952         * config/i386/sse.md (mulv16qi3): Ditto.
953         (*sse2_mulv4si3): Ditto.
954         (mulv2di3): Ditto.
955         (sse4_2_pcmpestr): Ditto.
956         (sse4_2_pcmpistr): Ditto.
957
958 2009-07-03  Jan Hubicka  <jh@suse.cz>
959
960         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
961         (mark_stmt_necessary): Set it.
962         (mark_operand_necessary): Set it.
963         (mark_control_dependent_edges_necessary): Set it.
964         (mark_virtual_phi_result_for_renaming): New function.
965         (get_live_post_dom): New function.
966         (forward_edge_to_pdom): New function.
967         (remove_dead_stmt): Fix handling of control dependences.
968         (tree_dce_init): Init new bitmap.
969         (tree_dce_done): Free it.
970
971 2009-07-02  Richard Guenther  <rguenther@suse.de>
972
973         PR bootstrap/40617
974         * tree-ssa-structalias.c (new_var_info): Initialize
975         is_restrict_var.
976
977 2009-07-02  Jan Hubicka  <jh@suse.cz>
978
979         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
980         local.
981
982 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
983
984         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
985         instead of recomputing it.  Adjust calls.
986         (emit_store_flag): Adjust recursive calls.
987
988 2009-07-02  Richard Guenther  <rguenther@suse.de>
989
990         * tree-ssa-live.c (remove_unused_locals): Do not remove
991         heap variables.
992         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
993         of DECL_EXTERNAL for HEAP variables.
994         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
995         HEAP variables.  Do not adjust RESTRICT vars.
996         (find_what_var_points_to): Nobody cares if something
997         points to READONLY.
998
999 2009-07-02  Ben Elliston  <bje@au.ibm.com>
1000
1001         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
1002         pc_low and pc_high declarations to the top of the function.
1003
1004 2009-07-01  DJ Delorie  <dj@redhat.com>
1005
1006         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
1007         registers as fixed.
1008         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
1009         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
1010         unspecified accesses to control registers.
1011         * config/mep/intrinsics.md: Regenerate.
1012         * config/mep/intrinsics.h: Regenerate.
1013         * config/mep/mep-intrin.h: Regenerate.
1014
1015 2009-07-01  Anthony Green  <green@moxielogic.com>
1016
1017         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
1018         instruction when possible.
1019         (moxie_expand_prologue): Ditto.  Also, save an instruction and
1020         some complexity by popping off of $r12 instead of $sp.
1021         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
1022         operands.
1023
1024 2009-07-01  Richard Henderson  <rth@redhat.com>
1025
1026         PR bootstrap/40347
1027         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
1028         contained no insns, reposition note before last insn.
1029
1030 2009-07-01  Richard Henderson  <rth@redhat.com>
1031
1032         PR debug/40431
1033         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
1034         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
1035
1036 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1037
1038         PR bootstrap/40558
1039         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
1040         darwin9 for printing reg addresses with %y.
1041
1042 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
1043
1044         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
1045         truncation from operands in binary operations.
1046
1047 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
1048
1049         Revert:
1050         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
1051         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
1052         subreg of op0 to the original op0.
1053
1054         * expmed.c (store_bit_field_1): Use a temporary as the destination
1055         instead of a paradoxical subreg when we need to truncate the result.
1056
1057 2009-07-01  DJ Delorie  <dj@redhat.com>
1058
1059         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
1060         names to VLIW variants.
1061         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
1062         * config/mep/intrinsics.md: Regenerate.
1063         * config/mep/intrinsics.h: Regenerate.
1064         * config/mep/mep-intrin.h: Regenerate.
1065
1066 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
1067
1068         PR debug/40462
1069         * jump.c (returnjump_p): Revert last patch.
1070         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
1071
1072 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1073
1074         PR target/40575
1075         * pa.md (casesi32p): Use jump table label to determine the offset
1076         of the jump table.
1077         (casesi64p): Likewise.
1078
1079         * pa.c (forward_branch_p): Return bool type.  Use instruction
1080         addresses when available.  Assert that INSN has a jump label.
1081         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
1082         have a jump label.
1083
1084 2009-07-01  Richard Guenther  <rguenther@suse.de>
1085
1086         PR tree-optimization/19831
1087         * tree-ssa-dce.c (propagate_necessity): Calls to functions
1088         that only act as barriers do not make any previous stores necessary.
1089         * tree-ssa-structalias.c (handle_lhs_call): Delay making
1090         HEAP variables global, do not add a constraint from nonlocal.
1091         (find_func_aliases): Handle escapes through return statements.
1092         (compute_points_to_sets): Make escaped HEAP variables global.
1093
1094 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
1095
1096         PR bootstrap/40597
1097         * expmed.c (emit_store_flag): Perform a conversion if necessary,
1098         after reducing a DImode cstore to SImode.
1099
1100 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
1101
1102         * expr.c (expand_expr_real_1): Reinstate fallthrough to
1103         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
1104
1105 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
1106
1107         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
1108         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
1109         to 0.
1110         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
1111         and umod_optab if TARGET_BSD_DIVMOD.
1112         * config/vax/lib1funcs.asm: New file.
1113         * config/vax/t-linux: New file.
1114         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
1115
1116 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
1117
1118         PR c++/40566
1119         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
1120         to type arguments that have void type.
1121
1122         PR debug/40573
1123         * dwarf2out.c (gen_formal_parameter_die): Call
1124         equate_decl_number_to_die if node is different from origin.
1125
1126 2009-06-30  Anthony Green  <green@moxielogic.com>
1127
1128         Clean up moxie port for --enable-build-with-cxx.
1129         * config/moxie/moxie.c (moxie_function_value): First two
1130         parameters are const_tree, not tree.
1131         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
1132         (REG_CLASS_NAMES): Ditto.
1133         (REGNO_REG_CLASS): Ditto.
1134         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
1135         (moxie_function_value): Fix constyness of arguments.
1136
1137 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1138
1139         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1140         finalize_size_functions before further processing.
1141         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
1142         (variable_size): Call self_referential_size on size expressions
1143         that contain a PLACEHOLDER_EXPR.
1144         (size_functions): New static variable.
1145         (copy_self_referential_tree_r): New static function.
1146         (self_referential_size): Likewise.
1147         (finalize_size_functions): New global function.
1148         * tree.c: Include tree-inline.h.
1149         (push_without_duplicates): New static function.
1150         (find_placeholder_in_expr): New global function.
1151         (substitute_in_expr) <tcc_declaration>: Return the replacement object
1152         on equality.
1153         <tcc_expression>: Likewise.
1154         <tcc_vl_exp>: If the replacement object is a constant, try to inline
1155         the call in the expression.
1156         * tree.h (finalize_size_functions): Declare.
1157         (find_placeholder_in_expr): Likewise.
1158         (FIND_PLACEHOLDER_IN_EXPR): New macro.
1159         (substitute_placeholder_in_expr): Update comment.
1160         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
1161         is true.
1162         (copy_tree_body_r): Likewise.
1163         (copy_tree_body): New static function.
1164         (maybe_inline_call_in_expr): New global function.
1165         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
1166         (maybe_inline_call_in_expr): Declare.
1167         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
1168         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
1169         GIMPLE_H.
1170
1171 2009-06-30  Richard Guenther  <rguenther@suse.de>
1172
1173         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
1174         continue walking.
1175         (propagate_necessity): Do not mark reaching defs of stores
1176         as necessary.
1177
1178 2009-06-30  Jan Hubicka  <jh@suse.cz>
1179
1180         * cfgloopanal.c (check_irred): Move into ...
1181         (mark_irreducible_loops): ... here; return true if ireducible
1182         loops was found.
1183         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
1184         (analyze_function): Try to prove loop finiteness.
1185         * cfgloop.h (mark_irreducible_loops): Update prototype.
1186         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
1187
1188 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
1189
1190         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
1191
1192 2009-06-30  Ira Rosen  <irar@il.ibm.com>
1193
1194         PR tree-optimization/40542
1195         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
1196         types.
1197
1198 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1199
1200         PR tree-optimization/40582
1201         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
1202         than useless_type_conversion_p.
1203         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
1204         proper place.
1205
1206 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1207
1208         PR middle-end/40554
1209         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
1210
1211 2009-06-30  Richard Guenther  <rguenther@suse.de>
1212
1213         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
1214         use ao_ref references.
1215         (walk_aliased_vdefs): Likewise.
1216         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
1217         * tree-ssa-dce.c (struct ref_data): Remove.
1218         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
1219         (mark_aliased_reaching_defs_necessary): Adjust.
1220         (mark_all_reaching_defs_necessary_1): Likewise.
1221
1222 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
1223
1224         PR boostrap/40597
1225         * expmed.c (emit_cstore): New name of emit_store_flag_1.
1226         (emit_store_flag_1): Extract from emit_store_flag, adjust
1227         calls to (what now is) emit_cstore.
1228         (emit_store_flag): Call emit_store_flag_1 and also use it
1229         for what used to be recursive calls.
1230
1231 2009-06-30  Wei Guozhi  <carrot@google.com>
1232
1233         PR/40416
1234         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
1235         if the target bb post dominates from bb.
1236         * config/i386/i386.c (memory_address_length): Check existence of base
1237         register before using it.
1238
1239 2009-06-30  Nick Clifton  <nickc@redhat.com>
1240             DJ Delorie  <dj@redhat.com>
1241
1242         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
1243         __FMOVD_ENABLED__ is defined.
1244         * config/sh/sh.h
1245         (TARGET_FMOVD): Provide a default definition.
1246         (MASK_FMOVD): Likewise.
1247         (TARGET_CPU_CPP_BUILTINS): Define
1248         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
1249         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
1250         two fmov instructions depending upon whether TARGET_FMOVD is
1251         enabled.
1252         (split for DF load from memory into register): Also handle
1253         MEMs which consist of REG+DISP addressing.
1254         (split for DF store from register to memory): Likewise.
1255         * config/sh/sh.opt (mfmovd): Remove this switch.
1256         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
1257         * config/sh/sh.c (sh_override_options): Do not automatically
1258         enable TARGET_MOVD for the SH2A when supporting doubles - leave
1259         that to the -mfmovd command line switch.
1260
1261         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
1262         the SH4 and SH4A.
1263         (fldi_ok): Always allow.
1264         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
1265
1266 2009-06-29  DJ Delorie  <dj@redhat.com>
1267
1268         * doc/install.texi (mep-x-elf): Correct chip's full name.
1269
1270 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
1271
1272         * doc/extend.texi: Fix typo.
1273
1274 2009-06-29  Tom Tromey  <tromey@redhat.com>
1275
1276         * dwarf2.h: Remove.
1277         * Makefile.in (DWARF2_H): New variable.
1278         (except.o): Use it.
1279         (dwarf2out.o): Likewise.
1280         (dwarf2asm.o): Likewise.
1281         * config/i386/t-i386: Use DWARF2_H.
1282         * except.c: Include elf/dwarf2.h.
1283         * unwind-dw2.c: Include elf/dwarf2.h.
1284         * dwarf2out.c: Include elf/dwarf2.h.
1285         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
1286         <dtprel>: New field.
1287         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
1288         (size_of_loc_descr): Likewise.
1289         (output_loc_operands_raw): Likewise.
1290         (output_loc_operands): Handle new dtprel field.
1291         (loc_checksum): Update.
1292         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
1293         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
1294         * unwind-dw2-fde.c: Include elf/dwarf2.h.
1295         * dwarf2asm.c: Include elf/dwarf2.h.
1296         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
1297         * config/mmix/mmix.c: Include elf/dwarf2.h.
1298         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
1299         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
1300         * config/sh/sh.c: Include elf/dwarf2.h.
1301         * config/i386/i386.c: Include elf/dwarf2.h.
1302
1303 2009-06-29  DJ Delorie  <dj@redhat.com>
1304
1305         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
1306
1307         * doc/extend.texi: Add MeP attributes and pragmas.
1308         * doc/invoke.text: Add MeP Options.
1309         * doc/contrib.texi: Add MeP contribution.
1310         * doc/md.texi: Add MeP constraints.
1311         * doc/install.texi: Add MeP target.
1312
1313 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
1314
1315         * target.h (struct gcc_target): Add frame_pointer_required field.
1316         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
1317         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
1318         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
1319         hook.
1320         * reload1.c (update_eliminables): (Ditto.).
1321         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
1322         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1323         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
1324
1325         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
1326
1327         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
1328         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1329         (arm_frame_pointer_required): New function.
1330
1331         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
1332         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1333         (avr_frame_pointer_required_p): Declare as static.
1334         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
1335
1336         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
1337         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1338         (bfin_frame_pointer_required): Make as static, change return type
1339         to bool.
1340         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
1341
1342         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
1343         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1344         (cris_frame_pointer_required): New function.
1345         
1346         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
1347
1348         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
1349         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1350         (fr30_frame_pointer_required): New function.
1351         
1352         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
1353         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1354         (frv_frame_pointer_required): Make as static, change return type
1355         to bool.
1356         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
1357
1358         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
1359         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1360         (ix86_frame_pointer_required): Make as static, change return type to
1361         bool.
1362         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
1363
1364         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
1365         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1366
1367         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
1368
1369         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
1370         
1371         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1372
1373         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1374         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1375         (mips_frame_pointer_required): Make as static.
1376         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1377         
1378         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1379         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1380         (mmix_frame_pointer_required): Mew function.
1381
1382         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1383         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1384
1385         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1386
1387         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1388
1389         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1390
1391         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1392         (CAN_ELIMINATE): Redefine.
1393         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1394         (sparc_frame_pointer_required): New function.
1395         (sparc_can_eliminate): New function.
1396         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1397
1398         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1399         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1400
1401         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1402         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1403         (xtensa_frame_pointer_required): Make as static, change return type
1404         to bool.
1405         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1406         Remove.
1407
1408 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
1409
1410         * doc/plugins.texi: Document PLUGIN_START_UNIT.
1411         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1412         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1413         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1414         (register_callback): Handle PLUGIN_START_UNIT.
1415         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1416
1417 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1418
1419         * tree.c (process_call_operands): Propagate TREE_READONLY from the
1420         operands.
1421         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1422         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1423
1424 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
1425
1426         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1427         move cost.
1428
1429 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
1430
1431         * doc/extend.texi (Additional Floating Types): __float128 is also
1432         supported on i386 targets.
1433
1434 2009-06-29  Richard Guenther  <rguenther@suse.de>
1435
1436         PR middle-end/14187
1437         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1438         flag.
1439         (pt_solutions_same_restrict_base): Declare.
1440         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1441         flag.
1442         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1443         (make_constraint_from, make_copy_constraint): Move earlier.
1444         (make_constraint_from_heapvar): New function.
1445         (make_constraint_from_restrict): Likewise.
1446         (handle_lhs_call): Use it.
1447         (find_func_aliases): Use it to track conversions to restrict
1448         qualified pointers.
1449         (struct fieldoff): Add only_restrict_pointers flag.
1450         (push_fields_onto_fieldstack): Initialize it.
1451         (create_variable_info_for): Track global restrict qualified pointers.
1452         (intra_create_variable_infos): Use make_constraint_from_heapvar.
1453         Track restrict qualified pointer arguments.
1454         (set_uids_in_ptset): Use varinfo is_global_var flag.
1455         (find_what_var_points_to): Set the vars_contains_restrict flag.
1456         Always create the points-to solution for sets including restrict tags.
1457         (pt_solutions_same_restrict_base): New function.
1458         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1459         qualified pointers use pt_solutions_same_restrict_base as
1460         additional source for disambiguation.
1461
1462 2009-06-29  Richard Guenther  <rguenther@suse.de>
1463
1464         PR middle-end/38212
1465         * alias.c (find_base_decl): Remove.
1466         (get_deref_alias_set_1): Remove restrict handling.
1467         * c-common.c (c_apply_type_quals_to_decl): Do not set
1468         DECL_POINTER_ALIAS_SET.
1469         * gimplify.c (find_single_pointer_decl_1): Remove.
1470         (find_single_pointer_decl): Likewise.
1471         (internal_get_tmp_var): Remove restrict handling.
1472         (gimple_regimplify_operands): Likewise.
1473         * omp-low.c (expand_omp_atomic_pipeline): Do not set
1474         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1475         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1476         * tree.c (restrict_base_for_decl): Remove.
1477         (init_ttree): Do not allocate it.
1478         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
1479         LABEL_DECL_UID for label decls.
1480         (copy_node_stat): Do not copy restrict information.
1481         (decl_restrict_base_lookup): Remove.
1482         (decl_restrict_base_insert): Likewise.
1483         (print_restrict_base_statistics): Likewise.
1484         (dump_tree_statistics): Do not call print_restrict_base_statistics.
1485         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1486         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1487         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1488         (LABEL_DECL_UID): Adjust.
1489         (DECL_BASED_ON_RESTRICT_P): Remove.
1490         (DECL_GET_RESTRICT_BASE): Likewise.
1491         (SET_DECL_RESTRICT_BASE): Likewise.
1492         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1493
1494         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1495         instead of DECL_POINTER_ALIAS_SET.
1496         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1497         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1498         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1499
1500 2009-06-29  Richard Guenther  <rguenther@suse.de>
1501
1502         PR tree-optimization/40579
1503         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1504         the IL to simplify has constants that overflowed.
1505
1506 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
1507
1508         PR tree-optimization/40550
1509         * tree-vect-generic.c (expand_vector_operations_1): Compute in
1510         vector_compute_type only when the size of vector_compute_type is
1511         less than the size of type.
1512
1513 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1514
1515         * fold-const.c (contains_label_1): Fix comments.
1516         (contains_label_p): Do not walk trees multiple time.
1517
1518 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1519
1520         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
1521         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
1522         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
1523         ix86_fp_comparison_operator.
1524         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
1525         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
1526         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
1527         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
1528         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
1529         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
1530         (related splits): Change predicate to ix86_fp_comparison_operator.
1531         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
1532         instead of ix86_fp_comparison_codes.
1533         (ix86_trivial_fp_comparison_operator,
1534         ix86_fp_comparison_operator): New.
1535         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
1536         (ix86_expand_compare): Eliminate last two parameters.
1537         (ix86_fp_jump_nontrivial_p): Kill.
1538         * config/i386/i386.c (put_condition_code): Eliminate call to
1539         ix86_fp_comparison_codes and subsequent assertion.
1540         (ix86_fp_comparison_codes): Eliminate.
1541         (ix86_fp_swap_condition): New.
1542         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
1543         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
1544         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
1545         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
1546         and ix86_fp_swap_condition.
1547         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
1548         Use ix86_fp_comparison_strategy.
1549         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
1550         (ix86_fp_jump_nontrivial_p): Eliminate.
1551         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
1552         call to ix86_expand_compare.
1553         (ix86_split_fp_branch, ix86_expand_setcc,
1554         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
1555         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
1556
1557 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1558
1559         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
1560         related to jump_clobbers.
1561         * config/arm/arm.md (conds): Remove jump_clob case.
1562         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
1563         splits): Change comparison_operator to arm_comparison_operator.
1564         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
1565         Eliminate.
1566
1567 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1568
1569         * dojump.c (do_compare_rtx_and_jump): Try swapping the
1570         condition for floating point modes.
1571         * expmed.c (emit_store_flag_1): Move here a bigger part
1572         of emit_store_flag.
1573         (emit_store_flag): Try swapping the condition for floating point
1574         modes.
1575         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
1576
1577 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1578
1579         * expr.c (expand_expr_real_1): Just use do_store_flag.
1580         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
1581         emit_store_flag_force.
1582         * expmed.c (emit_store_flag_force): Copy here trick
1583         previously in expand_expr_real_1.  Try reversing the comparison.
1584         (emit_store_flag_1): Work if target is NULL.
1585         (emit_store_flag): Work if target is NULL, using the result mode
1586         from the comparison.  Use split_comparison, restructure final part
1587         to simplify conditionals.
1588
1589 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1590
1591         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
1592         * dojump.c (do_jump): Change handling of floating-point
1593         ops to use just do_compare_and_jump.
1594         (split_comparison): New.
1595         (do_compare_rtx_and_jump): Add here logic coming previously
1596         in do_jump, using split_comparison.
1597
1598 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
1599
1600         PR target/40489
1601         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
1602
1603 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1604
1605         * tree-ssa-alias.c: Fix unintentional commit.
1606
1607 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1608
1609         * passes.c (execute_one_pass): Fix unintentional commit.
1610
1611 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1612
1613         * df-problems.c (df_set_seen, df_unset_seen): Delete.
1614         (df_rd_local_compute, df_md_local_compute): Inline them.
1615
1616         (df_md_scratch): New.
1617         (df_md_alloc, df_md_free): Allocate/free it.
1618         (df_md_local_compute): Only include live registers in init.
1619         (df_md_transfer_function): Prune the in-set computed by
1620         the confluence function, and the gen-set too.
1621
1622 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1623
1624         PR rtl-optimization/26854
1625         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
1626         * df-problems.c (df_rd_add_problem): Fix comment.
1627         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
1628         df_md_simulate_artificial_defs_at_top,
1629         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
1630         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
1631         df_md_transfer_function, df_md_init, df_md_confluence_0,
1632         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
1633         problem_MD, df_md_add_problem): New.
1634         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
1635         df_md_get_bb_info): New.
1636         (DF_LAST_PROBLEM_PLUS1): Adjust.
1637
1638         * Makefile.in (fwprop.o): Include domwalk.h.
1639         * fwprop.c: Include domwalk.h.
1640         (reg_defs, reg_defs_stack): New.
1641         (bitmap_only_bit_between): Remove.
1642         (process_defs): New.
1643         (process_uses): Use reg_defs and local_md instead of
1644         bitmap_only_bit_between and local_rd.
1645         (single_def_use_enter_block): New, from build_single_def_use_links.
1646         (single_def_use_leave_block): New.
1647         (build_single_def_use_links): Remove code moved to
1648         single_def_use_enter_block, invoke domwalk.
1649         (use_killed_between): Adjust comment.
1650
1651 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1652
1653         * bitmap.h (bitmap_ior_and_into): New.
1654         * bitmap.c (bitmap_ior_and_into): New.
1655
1656 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1657
1658         * domwalk.h (struct dom_walk_data): Remove all callbacks except
1659         before_dom_children_before_stmts and after_dom_children_after_stmts.
1660         Rename the two remaining callbacks to just before_dom_children and 
1661         after_dom_children. Remove other GIMPLE statement walking bits.
1662         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
1663         * graphite.c: Do not include domwalk.h.
1664         * tree-into-ssa.c (interesting_blocks): New global.
1665         (struct mark_def_sites_global_data): Remove it and names_to_rename.
1666         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
1667         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
1668         now that they're not domwalk callbacks.
1669         (rewrite_initialize_block): Rename to...
1670         (rewrite_enter_block): ... this, place after called functions.  Test
1671         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
1672         (rewrite_finalize_block): Rename to...
1673         (rewrite_leave_block): ... this, place after called functions.
1674         (rewrite_update_init_block): Rename to...
1675         (rewrite_update_enter_block): ... this, place after called functions.
1676         Test interesting_blocks, call rewrite_update_stmt and 
1677         rewrite_update_phi_arguments.
1678         (rewrite_update_fini_block): Rename to...
1679         (rewrite_leave_block): ... this, place after called functions.
1680         (rewrite_blocks): Remove last argument, simplify initialization of
1681         walk_data.
1682         (mark_def_sites_initialize_block): Rename to...
1683         (mark_def_sites_block): ... this, call mark_def_sites.
1684         (mark_def_sites_blocks): Remove argument, simplify initialization of
1685         walk_data.
1686         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
1687         (update_ssa): Likewise.
1688         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
1689         callback.
1690         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
1691         (dom_opt_initialize_block): Rename to...
1692         (dom_opt_enter_block): ... this, place after called functions.  Walk
1693         statements here, inline propagate_to_outgoing_edges.
1694         (dom_opt_finalize_block): Rename to...
1695         (dom_opt_leave_block): ... this, place after called functions.
1696         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
1697         domwalk callback.
1698         (dse_enter_block, dse_record_phi): New.
1699         (dse_record_phis): Delete.
1700         (dse_finalize_block): Rename to...
1701         (dse_leave_block): ... this.
1702         (tree_ssa_dse): Simplify initialization of walk_data.
1703         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
1704         Adjust initialization of walk_data.
1705         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
1706         * tree-ssa-loop-phiopt.c (get_non_trapping):
1707         Adjust initialization of walk_data.
1708         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
1709         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
1710         it's not a domwalk callback.
1711         (uncprop_initialize_block): Rename to...
1712         (dse_enter_block): ... this, call uncprop_into_successor_phis.
1713         (dse_finalize_block): Rename to...
1714         (dse_leave_block): ... this.
1715         (tree_ssa_uncprop): Simplify initialization of walk_data.
1716         * Makefile.in: Adjust dependencies.
1717
1718 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
1719
1720         * arm.md (casesi): Fix test for Thumb1.
1721         (thumb1_casesi_internal_pic): Likewise.
1722         (thumb1_casesi_dispatch): Likewise.
1723
1724 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
1725
1726         * config/arm/arm-cores.def: Added core cortex-m0.
1727         * config/arm/arm-tune.md: Regenerated.
1728         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
1729
1730 2009-06-26  DJ Delorie  <dj@redhat.com>
1731
1732         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
1733
1734         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
1735         the scheduler doesn't tag jump insns.
1736
1737 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1738
1739         * c-decl.c (merge_decls): Re-indent.
1740
1741 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
1742
1743         PR c/39902
1744         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
1745         Special-case decimal float constants.
1746
1747 2009-06-26  Richard Henderson  <rth@redhat.com>
1748
1749         * function.h (struct function): Add cannot_be_copied_reason,
1750         and cannot_be_copied_set.
1751         * tree-inline.c (has_label_address_in_static_1): Rename from
1752         inline_forbidden_p_2; don't set inline_forbidden_reason here.
1753         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
1754         don't set inline_forbidden_reason.
1755         (copy_forbidden): New function, split out of inline_forbidden_p.
1756         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
1757         (inline_forbidden_p): Use copy_forbidden.
1758         (tree_versionable_function_p): Likewise.
1759         (inlinable_function_p): Merge into tree_inlinable_function_p.
1760         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
1761         * ipa-cp.c (ipcp_versionable_function_p): New function.
1762         (ipcp_cloning_candidate_p): Use it.
1763         (ipcp_node_modifiable_p): Likewise.
1764
1765 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
1766
1767         * builtins.c (expand_builtin_alloca): Handle builtin alloca
1768         that is marked not to be inlined. Remove flag_mudflap use.
1769         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
1770         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
1771
1772 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
1773
1774         PR bootstrap/40338
1775         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
1776         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
1777
1778 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
1779
1780         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
1781         shared libgcc.
1782         (__mingwthr_remove_key_dtor): Likewise.
1783
1784 2009-06-26  Richard Guenther  <rguenther@suse.de>
1785
1786         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
1787
1788 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1789
1790         PR middle-end/40525
1791         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
1792         try the non-cond_exec path also.
1793
1794 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1795
1796         PR target/40468
1797         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
1798         (output_cbranch): Use new functions.
1799         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
1800         Likewise.
1801
1802 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1803             Pat Haugen  <pthaugen@us.ibm.com>
1804             Revital Eres <ERES@il.ibm.com>
1805
1806         * config/rs6000/rs6000.c (print_operand): Correct lossage message
1807         for %c error.  Add %x support to print VSX registers as a unified
1808         register set, instead of separate float and altivec registers.
1809         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
1810         %y case, and add support for VSX pre-modify addresses.
1811         (output_toc): Add assert for CONST containing an integer constant
1812         in the PLUS case.
1813         (rs6000_adjust_cost): Add POWER7 support.
1814         (insn_must_be_first_in_group): Ditto.
1815         (insn_must_be_last_in_group): Ditto.
1816         (rs6000_emit_popcount): Ditto.
1817         (rs6000_vector_mode_supported_p): Ditto.
1818
1819         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
1820         Change some of the functions called by macros to being called
1821         through a pointer, so debug functions can be inserted if
1822         -mdebug=addr or -mdebug=cost. 
1823         (rs6000_preferred_reload_class_ptr): Ditto.
1824         (rs6000_secondary_reload_class_ptr): Ditto.
1825         (rs6000_secondary_memory_needed_ptr): Ditto.
1826         (rs6000_cannot_change_mode_class_ptr): Ditto.
1827         (rs6000_secondary_reload_inner): Ditto.
1828         (rs6000_legitimize_reload_address): Ditto.
1829         (rs6000_legitimize_reload_address_ptr): Ditto.
1830         (rs6000_mode_dependent_address): Ditto.
1831         (rs6000_mode_dependent_address_ptr): Ditto.
1832
1833         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
1834         function to return true if the mode allows reg + integer
1835         addresses.
1836         (virtual_stack_registers_memory_p): New function to return true if
1837         the address refers to a virtual stack register.
1838         (rs6000_legitimate_offset_address_p): Move code to say whether a
1839         mode supports reg+int addressing to reg_offset_addressing_ok_p and
1840         call it.
1841         (rs6000_legitimate_address_p): Add checks for modes that only can
1842         do reg+reg addressing.  Start adding VSX support.
1843         (rs6000_legitimize_reload_address): Ditto.
1844         (rs6000_legitimize_address): Ditto.
1845         (rs6000_debug_legitimate_address_p): New debug functions for
1846         -mdebug=addr and -mdebug=cost.
1847         (rs6000_debug_rtx_costs): Ditto.
1848         (rs6000_debug_address_costs): Ditto.
1849         (rs6000_debug_adjust_cost): Ditto.
1850         (rs6000_debug_legitimize_address): Ditto.
1851         (rs6000_legitimize_reload_address_ptr): Point to call normal
1852         function or debug function.  Make functions called via pointer
1853         static.
1854         (rs6000_mode_dependent_address_ptr): Ditto.
1855         (rs6000_secondary_reload_class_ptr): Ditto.
1856         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
1857         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
1858         into a friendlier error.
1859         (rs6000_init_builtins): Add initial VSX support.
1860         (rs6000_adjust_cost): Fix some spacing issues.
1861
1862         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
1863         (REG_CLASS_NAMES): Ditto.
1864         (REG_CLASS_CONTENTS): Ditto.
1865         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
1866         pointer, to add -mdebug=addr support.
1867         (CANNOT_CHANGE_MODE_CLASS): Ditto.
1868         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
1869         -mdebug=addr support.
1870         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
1871         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
1872         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
1873
1874         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
1875         16-bit values.
1876         (bswapsi*): Set attribute types for load/store.  Add combiner
1877         patterns to eliminate zero extend on 64-bit.
1878         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
1879         stdbrx if the hardware supports those instructions.
1880
1881 2009-06-25  Ian Lance Taylor  <iant@google.com>
1882
1883         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
1884         (Link Options): Document -static-libstdc++.
1885
1886 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1887
1888         PR target/38731
1889         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
1890         DATA_ALIGNMENT instead.
1891
1892 2009-06-25  Richard Guenther  <rguenther@suse.de>
1893
1894         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
1895         indirect references against the callused/escaped solutions.
1896         (call_may_clobber_ref_p_1): Likewise.
1897
1898 2009-06-25  Martin Jambor  <mjambor@suse.cz>
1899
1900         PR tree-optimization/40493
1901         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
1902         (enum unscalarized_data_handling): New type.
1903         (handle_unscalarized_data_in_subtree): Return what has been done.
1904         (load_assign_lhs_subreplacements): Handle left flushes differently.
1905         (sra_modify_assign): Use unscalarized_data_handling, simplified
1906         condition determining whether to remove the statement.
1907
1908 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
1909
1910         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
1911         excerpt - @ should be doubled for texinfo.
1912
1913 2009-06-24  Ian Lance Taylor  <iant@google.com>
1914
1915         * config/arc/arc.c: Include "df.h".
1916         (arc_attribute_table): Make static.  Move higher in file.
1917         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
1918         (output_shift): Initialize n later to avoid warning.
1919         * config/arm/arm.c (arm_attribute_table): Make static.  Move
1920         higher in file.
1921         * config/avr/avr.c (avr_attribute_table): Make static.  Move
1922         higher in file.
1923         (reg_class_tab): Change array type from int to enum reg_class.
1924         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
1925         LABEL_REF.
1926         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
1927         (lshrhi3_out): Likewise.
1928         (class_likely_spilled_p): Change return type to bool.
1929         (avr_rtx_costs): Use local code variable with enum type.
1930         * config/avr/avr.md (movmemhi): Use add_reg_note.
1931         (andhi3, andsi3): Don't use AS2 with "and".
1932         (iorhi3, iorsi3): Don't use AS2 with "or".
1933         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
1934         * config/crx/crx.c: Include "df.h".
1935         (crx_attribute_table): Make static.
1936         * config/m32r/m32r.c: Include "df.h".
1937         (m32r_attribute_table): Make static.  Move higher in file.
1938         (pop): Use add_reg_note.
1939         (block_move_call): Change 0 to LCT_NORMAL in function call.
1940         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
1941         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
1942         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
1943         declare, not just when TREE_CODE is defined.
1944         * config/m68hc11/m68hc11.c: Include "expr.h".
1945         (m68hc11_attribute_table): Make static.  Move higher in file.
1946         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
1947         function call.
1948         (m68hc11_register_indirect_p): Likewise.
1949         (m68hc11_function_arg_padding): Change return type to enum
1950         direction.
1951         (emit_move_after_reload): Use add_reg_note.
1952         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
1953         (m68hc11_split_logical): Likewise.
1954         (m68hc11_rtx_costs): Add local code_and outer_code variables with
1955         enum type.
1956         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
1957         to VOIDmode in function call.
1958         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
1959         tree is defined.
1960         (m68hc11_split_logical): Update declaration.
1961         (m68hc11_function_arg_padding): Update declaration.
1962         * config/mcore/mcore.c (regno_reg_class): Change form array of int
1963         to array of enum reg_class.
1964         (mcore_attribute_table): Make static.  Move higher in file.
1965         (mcore_rtx_costs): Add cast to enum type.
1966         * config/mcore/mcore.h (regno_reg_class): Update declaration.
1967         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
1968         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
1969         in file.
1970         * config/sh/predicates.md (trapping_target_operand): Rename and to
1971         and_expr.
1972         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
1973         higher in file.
1974         * config/spu/spu.c (spu_attribute_table): Make static.  Move
1975         higher in file.
1976         * config/v850/v850.c (v850_attribute_table): Make static.  Move
1977         higher in file.
1978         (v850_rtx_costs): Use local code with enum type.
1979         (expand_epilogue): Add cast.
1980         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
1981
1982 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
1983
1984         PR target/40515
1985         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
1986         -m2a-single-only and -m2a-nofpu.
1987         * config/sh/sh.opt: Document m2a generates FPU code.  
1988
1989 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
1990
1991         * defaults.h (CAN_ELIMINATE): Provide default.
1992         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
1993         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
1994         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
1995         * config/spu/spu.h (CAN_ELIMINATE): Delete.
1996         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
1997         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
1998         * config/cris/cris.h (CAN_ELIMINATE): Delete.
1999         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
2000         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
2001         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
2002
2003 2009-06-24  DJ Delorie  <dj@redhat.com>
2004
2005         * mep-ext-cop.cpu: Fix copyright notice.
2006         * mep-default: Fix copyright notice.
2007         * mep-core: Fix copyright notice.
2008         * mep: Fix copyright notice.
2009         * mep-ivc2: Fix copyright notice.
2010         * mep-c5: Fix copyright notice.
2011
2012 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
2013
2014         * doc/contrib.texi (Contributors): 
2015
2016 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2017         
2018         PR middle-end/40501
2019         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
2020         src and dst operands if necessary.
2021
2022 2009-06-23  DJ Delorie  <dj@redhat.com>
2023
2024         Add MeP port.
2025         * config.gcc: Add mep support.
2026         * recog.c: Resurrect validate_replace_rtx_subexp().
2027         * recog.h: Likewise.
2028         * config/mep/: Add new port:
2029         * config/mep/constraints.md: New file.
2030         * config/mep/default.h: New file.
2031         * config/mep/intrinsics.h: New file.
2032         * config/mep/intrinsics.md: New file.
2033         * config/mep/ivc2-template.h: New file.
2034         * config/mep/mep-c5.cpu: New file.
2035         * config/mep/mep-core.cpu: New file.
2036         * config/mep/mep-default.cpu: New file.
2037         * config/mep/mep-ext-cop.cpu: New file.
2038         * config/mep/mep-intrin.h: New file.
2039         * config/mep/mep-ivc2.cpu: New file.
2040         * config/mep/mep-lib1.asm: New file.
2041         * config/mep/mep-lib2.c: New file.
2042         * config/mep/mep-pragma.c: New file.
2043         * config/mep/mep-protos.h: New file.
2044         * config/mep/mep-tramp.c: New file.
2045         * config/mep/mep.c: New file.
2046         * config/mep/mep.cpu: New file.
2047         * config/mep/mep.h: New file.
2048         * config/mep/mep.md: New file.
2049         * config/mep/mep.opt: New file.
2050         * config/mep/predicates.md: New file.
2051         * config/mep/t-mep: New file.
2052
2053 2009-06-23  Ian Lance Taylor  <iant@google.com>
2054
2055         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
2056         from loose_warn into c_loose_warn and from strict_warn into
2057         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
2058         --enable-build-with-cxx.  Set and substitute
2059         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
2060         * Makefile.in (CXXFLAGS): New variable.
2061         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
2062         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
2063         the default is the same as $(STRICT_WARN).
2064         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
2065         (CXX): New variable.
2066         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
2067         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
2068         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
2069         (HOST_LIBS): New variable.
2070         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
2071         (ALL_CXXFLAGS): New variable.
2072         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
2073         * doc/install.texi (Configuration): Document
2074         --enable-build-with-cxx, --with-stage1-ldflags,
2075         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
2076         * configure: Rebuild.
2077
2078 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2079
2080         * config/arm/arm.c (arm_override_options): Fix braces and formatting
2081         from previous commit.
2082
2083 2009-06-23  Ian Lance Taylor  <iant@google.com>
2084
2085         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
2086
2087 2009-06-23  Ian Lance Taylor  <iant@google.com>
2088
2089         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
2090         with ATTRIBUTE_UNUSED.
2091
2092 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2093             Pat Haugen  <pthaugen@us.ibm.com>
2094             Revital Eres  <eres@il.ibm.com>
2095
2096         * config.in (HAVE_AS_POPCNTD): Add default definition.
2097         (HAVE_AS_LWSYNC): Ditto.
2098
2099         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
2100         release number.
2101         (gcc_cv_as_powerpc_cmpb): Ditto.
2102         (gcc_cv_as_powerpc_dfp): Ditto.
2103         (gcc_cv_as_powerpc_vsx): Ditto.
2104         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
2105         supporting the popcntd/lwsync instructions.
2106         (gcc_cv_as_powerpc_lwsync): Ditto.
2107         * configure: Regenerate.
2108
2109         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
2110         -mcpu=native and -mcpu=power7.
2111         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
2112
2113         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
2114         a variable instead of a mask to reduce the number of mask bits.
2115         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2116         (-mbit-word): Ditto.
2117         (-mregnames): Ditto.
2118         * config/rs6000/rs6000.opt (-mupdate): Ditto.
2119         (-mfused-madd): Ditto.
2120
2121         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
2122         2.06 instructions.
2123         (-mvsx): New switch for VSX instructions.
2124         (-misel): Move from a variable to a mask to allow it to be set by
2125         -mcpu=.
2126
2127         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
2128         function declaration to an array declaration.
2129         (rs6000_hard_regno_nregs): New external array declaration.
2130
2131         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
2132         files included by rs6000.md.
2133
2134         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2135         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
2136
2137         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
2138         a target mask.
2139         (rs6000_debug_reg): New -mdebug= variables.
2140         (rs6000_debug_addr): Ditto.
2141         (rs6000_debug_cost): Ditto.
2142         (rs6000_pmode): New variable to hold Pmode.
2143         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
2144         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
2145         calculated at compiler start.
2146         (rs6000_hard_regno_nregs): Change function to an array which holds
2147         HARD_REGNO_NREGS calculated at compiler start.
2148         (rs6000_explicit_options): Delete isel field.
2149         (rs6000_vector_unit): New array to hold which vector unit
2150         supports arithmetic options for a given type.
2151         (rs6000_vector_mem): New array to hold which vector unit supports
2152         memory reference operations for a given type.
2153         (rs6000_vector_align): New array to given the alignment of each
2154         vector type.
2155         (power7_cost): New basic costs for power7.
2156         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
2157         (rs6000_hard_regno_nregs_internal): New function, moved from
2158         HARD_REGNO_NREGS, to calculate the number of registers each hard
2159         register takes for each type.
2160         (rs6000_debug_reg_print): New function for -mdebug=reg support.
2161         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
2162         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
2163         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
2164         unit information here so it is calculated once at compiler startup
2165         time.
2166         (rs6000_override_options): Make -misel a target mask.  Add more
2167         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
2168         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
2169         -mdebug=cost.
2170         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
2171         (rs6000_handle_option): Move -misel from variable to target mask.
2172         (rs6000_builtin_mask_for_load): Add VSX support.
2173         (rs6000_conditional_register_usage): Ditto.
2174         (USE_ALTIVEC_FOR_ARG_P): Ditto.
2175         (function_arg_boundary): Ditto.
2176         (rs6000_expand_builtin): Ditto.
2177         (def_builtin): Make abort message a little friendlier.
2178         (rs6000_emit_int_cmove): Add support for 64-bit isel.
2179
2180         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
2181         assembler support the popcntd instruction instead of a vsx
2182         instruction to enable power7 support.
2183         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
2184         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
2185         option to the assembler if -mcpu=native.
2186         (ASM_CPU_NATIVE_SPEC): Ditto.
2187         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
2188         ISA 2.06 features.
2189         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
2190         the lwsync instruction.
2191         (enum processor_type): Add PROCESSOR_POWER7.
2192         (rs6000_debug_reg): New -mdebug= options.
2193         (rs6000_debug_addr): Ditto.
2194         (rs6000_debug_cost): Ditto.
2195         (rs6000_isel): Delete.
2196         (enum rs6000_vector): New enum to say what vector unit we have.
2197         (VECTOR_UNIT_*): New macros to say which vector unit has
2198         arithmetic operations for a given type.
2199         (VECTOR_MEM_*): New macros to say which vector unit has memory
2200         operations for a given type.
2201         (TARGET_LDBRX): Whether the machine supports the ldbrx
2202         instruction.
2203         (TARGET_ISEL): Delete, -misel moved to be a mask.
2204         (TARGET_ISEL64): New macro for 64-bit isel support.
2205         (UNITS_PER_VSX_WORD): New macro.
2206         (POINTER_SIZE): Move to be an external variable, rather than
2207         calculating whether we are generating 32 ot 64-bit code.
2208         (Pmode): Ditto.
2209         (STACK_BOUNDARY): Add VSX support.
2210         (LOCAL_ALIGNMENT): Ditto.
2211         (SLOW_UNALIGNED_ACCESS): Ditto.
2212         (VSX_REGNO_P): New macro for VSX support.
2213         (VFLOAT_REGNO_P): Ditto.
2214         (VINT_REGNO_P): Ditto.
2215         (VLOGICAL_REGNO_P): Ditto.
2216         (VSX_VECTOR_MODE): Ditto.
2217         (VSX_SCALAR_MODE): Ditto.
2218         (VSX_MODE): Ditto.
2219         (VSX_MOVE_MODE): Ditto.
2220         (VSX_REG_CLASS_P): Ditto.
2221         (HARD_REGNO_NREGS): Instead of calling a function, use an array
2222         lookup.
2223         (UNITS_PER_SIMD_WORD): Add VSX support.
2224         (MODES_TIEABLE_P): Ditto.
2225         (STARTING_FRAME_OFFSET): Ditto.
2226         (STACK_DYNAMIC_OFFSET): Ditto.
2227         (EPILOGUE_USES): Ditto.
2228         (REGNO_REG_CLASS): Move to array lookup.
2229         (CLASS_MAX_NREGS): Ditto.
2230         (rs6000_vector_reg_class): Add declaration.
2231         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
2232         overlap with the floating point and Altivec registers.
2233
2234         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
2235
2236         * config/rs6000/driver-rs6000.c (asm_names): New static array to
2237         give the appropriate asm switches if -mcpu=native.
2238         (host_detect_local_cpu): Add support for "asm".
2239         (host_detect_local_cpu): Follow GNU code guidelines for name.
2240
2241         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
2242         -mbit-word to a variable instead of being a target mask.
2243
2244         * config/rs6000/sync.md (lwsync): If the assembler supports it,
2245         emit the lwsync instruction instead of emitting the instruction as
2246         an integer constant.
2247
2248         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
2249         fixuns_trundfsi2, move expander into rs6000.md.
2250
2251         * config/rs6000/rs6000.md (cpu): Add power7.
2252         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
2253         (logical predicate patterns): Change the single instruction
2254         primitives that set CR0 to be fast_compare instead of compare.
2255         (norsi*): Ditto.
2256         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
2257         (popcntddi2): Ditto.
2258         (popcount<mode>): Ditto.
2259         (floating multiply/add insns): Name the floating point
2260         multiply/add insns.
2261         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
2262         (isel_unsigned_<mode>): Ditto.
2263         (fixuns_trundfsi2): Move expander here from spe.md.
2264         (smindi3): Define if we have -misel on 64-bit systems.
2265         (smaxdi3): Ditto.
2266         (umindi3): Ditto.
2267         (umaxdi3): Ditto.
2268
2269 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
2270
2271         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
2272         extra_objs.
2273         * config/avr/avr.c (avr_current_device): New variable.
2274         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
2275         (avr_arch, mcu_type_s): Move to avr.h.
2276         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
2277         default_data_section_start fields.
2278         (avr_arch): Moved from avr.c.
2279         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
2280         library_name fields.
2281         (avr_current_device, avr_mcu_types, avr_arch_types,
2282         avr_device_to_arch, avr_device_to_data_start,
2283         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
2284         (EXTRA_SPEC_FUNCTIONS): Define.
2285         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
2286         options mapping. Use device_to_arch and device_to_data_start insted.
2287         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
2288         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
2289         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
2290         * config/avr/driver-avr.c: New file.
2291         * config/avr/avr-devices.c: New file.
2292
2293 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
2294
2295         * var-tracking.c (unshare_variable): Force initialized to
2296         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
2297         (set_variable_part): Likewise.
2298         (struct variable_union_info): Remove pos_src field.
2299         (vui_vec, vui_allocated): New variables.
2300         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
2301         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
2302         == 1 use a simpler sorting algorithm.  Compute pos field right
2303         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
2304         Avoid quadratic comparison if !flag_var_tracking_uninit.
2305         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
2306         unshare_variable unconditionally.   
2307         (dataflow_set_different_2): Removed.
2308         (dataflow_set_different): Don't traverse second hash table.
2309         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
2310         unconditionally to var_reg_set or var_mem_set.
2311         (emit_notes_in_bb): Likewise.
2312         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
2313         unshare_variable.
2314         (emit_note_insn_var_location): Don't set initialized to
2315         VAR_INIT_STATUS_INITIALIZED early.
2316         (vt_finalize): Free vui_vec if needed, clear vui_vec and
2317         vui_allocated.
2318         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
2319
2320         * tree-object-size.c (addr_object_size): Instead of checking
2321         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
2322         are no FIELD_DECLs following it.
2323
2324 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2325
2326         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
2327         order to match bswaps with signed source operands.
2328
2329 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2330
2331         * sdbout.c (sdbout_one_type): Fix braces in switch.
2332
2333 2009-06-23  Richard Guenther  <rguenther@suse.de>
2334
2335         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
2336         member.
2337         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
2338         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
2339         var_callused, callused_tree, var_storedanything, storedanything_tree,
2340         var_integer, integer_tree): Remove global variables.
2341         (new_var_info): Do not pass new id, append the new var to the
2342         global variable vector.
2343         (do_ds_constraint): Use is_global_var member of the variable-info.
2344         (new_scalar_tmp_constraint_exp): Adjust.
2345         (create_function_info_for): Likewise.
2346         (create_variable_info_for): Likewise.
2347         (find_what_var_points_to): Remove dead code.
2348         (init_base_vars): Simplify.
2349         (compute_points_to_sets): Adjust.
2350
2351 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2352
2353         * combine.c (try_combine): Dump information about the insns we're
2354         combining.
2355
2356 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2357
2358         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
2359         check when calling force_to_mode on TRUNCATE's operand.
2360
2361 2009-06-22  Ian Lance Taylor  <iant@google.com>
2362
2363         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
2364
2365 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2366
2367         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
2368
2369 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2370
2371         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2372         override library linkage flags such as -static-libgcc or
2373         -shared-libgcc.
2374
2375 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2376
2377         * config/m68k/m68k-devices.def: Add line for MCF5221x.
2378
2379 2009-06-22  Ian Lance Taylor  <iant@google.com>
2380
2381         * config/linux.opt: Put mglibc ahead of muclibc.
2382
2383         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2384         for duplicate decls.
2385
2386 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2387
2388         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2389
2390 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2391
2392         PR objc/28050
2393         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2394         instead of NULL if a parser error occurs.
2395
2396 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2397
2398         * dwarf2out.c (dwarf2_debug_hooks): Initialize
2399         non-DWARF2_DEBUGGING_INFO version.
2400
2401 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
2402
2403         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2404         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2405
2406         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
2407         (LIBGCC2_TF_CEXT): Define.
2408         (TF_SIZE): Define.
2409
2410 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2411
2412         PR target/40463
2413         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2414
2415 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2416
2417         * config/arm/arm.c (arm_override_options): Disable
2418         -mcaller-super-interworking and -mcallee-super-interworking.
2419         * doc/invoke.texi (ARM Options): Document this.
2420
2421 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2422
2423         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2424         * config/arm/constraints.md (j): New constraint for movw operands.
2425         (N): Remove thumb2 meaning.
2426         * config/arm/arm.md (*arm_movw): Delete.
2427         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2428         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2429         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2430
2431 2009-06-22  Martin Jambor  <mjambor@suse.cz>
2432
2433         PR tree-optimization/40492
2434         * tree-sra.c (sra_modify_assign): Pass zero offsets to
2435         build_ref_for_offset.
2436
2437 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
2438
2439         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2440         JUMP_TABLE_DATA_P predicates where applicable.
2441         * auto-inc-dec.c: Ditto.
2442         * builtins.c: Ditto.
2443         * caller-save.c: Ditto.
2444         * calls.c: Ditto.
2445         * cfgcleanup.c: Ditto.
2446         * cfglayout.c: Ditto.
2447         * cfgrtl.c: Ditto.
2448         * combine.c: Ditto.
2449         * combine-stack-adj.c: Ditto.
2450         * cse.c: Ditto.
2451         * cselib.c: Ditto.
2452         * dbxout.c: Ditto.
2453         * df-scan.c: Ditto.
2454         * dse.c: Ditto.
2455         * dwarf2asm.c: Ditto.
2456         * dwarf2out.c: Ditto.
2457         * emit-rtl.c: Ditto.
2458         * except.c: Ditto.
2459         * explow.c: Ditto.
2460         * expmed.c: Ditto.
2461         * expr.c: Ditto.
2462         * final.c: Ditto.
2463         * function.c: Ditto.
2464         * fwprop.c: Ditto.
2465         * gcse.c: Ditto.
2466         * genpreds.c: Ditto.
2467         * genrecog.c: Ditto.
2468         * ifcvt.c: Ditto.
2469         * ira-costs.c: Ditto.
2470         * ira-lives.c: Ditto.
2471         * jump.c: Ditto.
2472         * loop-iv.c: Ditto.
2473         * lower-subreg.c: Ditto.
2474         * modulo-sched.c: Ditto.
2475         * optabs.c: Ditto.
2476         * postreload.c: Ditto.
2477         * print-rtl.c: Ditto.
2478         * recog.c: Ditto.
2479         * reginfo.c: Ditto.
2480         * regmove.c: Ditto.
2481         * reload1.c: Ditto.
2482         * reload.c: Ditto.
2483         * reorg.c: Ditto.
2484         * rtlanal.c: Ditto.
2485         * rtl.c: Ditto.
2486         * sched-vis.c: Ditto.
2487         * sdbout.c: Ditto.
2488         * sel-sched-ir.c: Ditto.
2489         * simplify-rtx.c: Ditto.
2490         * targhooks.c: Ditto.
2491         * var-tracking.c: Ditto.
2492         * vmsdbgout.c: Ditto.
2493
2494 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2495
2496         * Makefile.in (install-plugin): Always use DESTDIR.
2497
2498 2009-06-22  Olivier Hainque  <hainque@adacore.com>
2499         
2500         * config/pa/pa.c (output_call): Don't optimize post call jumps
2501         into return address adjustments if the call may throw.
2502
2503 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
2504
2505         * arm.c (thumb1_output_casesi): New function.
2506         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2507         optimizing for size or PIC.
2508         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2509         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2510         (casesi): Handle Thumb-1 when optimizing for size or PIC.
2511         (thumb1_casesi_internal_pic): New expand rule.
2512         (thumb1_casesi_dispatch): New pattern.
2513         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2514         thumb-1 mode.
2515         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2516         in the text seciton when PIC or optimizing for size.
2517         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2518         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
2519         preservation properties of code.
2520         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
2521         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
2522         (__gnu_thumb1_case_si): New function.
2523         * t-arm (LIB1ASMSRC): Define here.
2524         (LIB1ASMFUNCS): Add some common functions.
2525         * t-arm-elf (LIB1ASMSRC): Delete.
2526         (LIB1ASMFUNCS): Append to existing set.
2527         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2528         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2529         * t-symbian (LIB1ASMFUNCS): Likewise.
2530         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2531         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2532
2533 2009-06-21  Richard Guenther  <rguenther@suse.de>
2534
2535         PR tree-optimization/38729
2536         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
2537         to loops with a single exit if -fno-expensive-optimizations.
2538
2539 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
2540
2541         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
2542         (dataflow_set): Change vars type from htab_t to shared_hash.
2543         (shared_hash_pool, empty_shared_hash): New variables.
2544         (vars_clear): Removed.
2545         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
2546         shared_hash_find_slot_unshare, shared_hash_find_slot,
2547         shared_hash_find_slot_noinsert, shared_hash_find): New
2548         static inlines.
2549         (shared_hash_unshare, shared_hash_destroy): New functions.
2550         (unshare_variable): Unshare set->vars if shared, use
2551         shared_hash_htab.
2552         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
2553         (get_init_value, find_src_set_src, dump_dataflow_set,
2554         clobber_variable_part, emit_notes_for_differences): Use
2555         shared_hash_htab.
2556         (dataflow_set_init): Remove second argument, set vars to
2557         empty_shared_hash instead of creating a new htab.
2558         (dataflow_set_clear): Call shared_hash_destroy and set vars
2559         to empty_shared_hash instead of calling vars_clear.
2560         (dataflow_set_copy): Don't call vars_copy, instead just share
2561         the src htab with dst.
2562         (variable_union): Use shared_hash_*, use initially NO_INSERT
2563         lookup if set->vars is shared.  Don't keep slot cleared before
2564         calling unshare_variable.  Unshare set->vars if needed.
2565         Even ->refcount == 1 vars must be unshared if set->vars is shared
2566         and var needs to be modified.
2567         (variable_canonicalize): New function.
2568         (dataflow_set_union): If dst->vars is empty, just share src->vars
2569         with dst->vars and traverse with variable_canonicalize to canonicalize
2570         and unshare what is needed.
2571         (dataflow_set_different): If old_set and new_set use the same shared
2572         htab, they aren't different.  If number of htab elements is different,
2573         htabs are different.  Use shared_hash_*.
2574         (dataflow_set_destroy): Call shared_hash_destroy instead of
2575         htab_delete.
2576         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
2577         second argument to dataflow_set_init.
2578         (vt_initialize): Likewise.  Initialize shared_hash_pool and
2579         empty_shared_hash, move bb in/out initialization afterwards.
2580         Use variable_htab_free instead of NULL as changed_variables del hook.
2581         (variable_was_changed): Change type of second argument to pointer to
2582         dataflow_set.  When inserting var into changed_variables, bump
2583         refcount.  Unshare set->vars if set is shared htab and slot needs to
2584         be cleared.
2585         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
2586         lookup if set->vars is shared.  Unshare set->vars if needed.
2587         Even ->refcount == 1 vars must be unshared if set->vars is shared
2588         and var needs to be modified.  Adjust variable_was_changed caller.
2589         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
2590         vars must be unshared if set->vars is shared and var needs to be
2591         modified.  Adjust variable_was_changed caller.
2592         (emit_note_insn_var_location): Don't pool_free var.
2593         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
2594         instead of 1.
2595         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
2596         free_alloc_pool on shared_hash_pool.
2597
2598 2009-06-20  Anthony Green  <green@moxielogic.com>
2599
2600         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
2601         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
2602
2603 2009-06-20  Richard Guenther  <rguenther@suse.de>
2604
2605         * tree-ssa-structalias.c (find_func_aliases): For memset use
2606         a constraint from NULL if we memset to zero.
2607         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
2608         we explicitly handle that do not read from memory.
2609         (call_may_clobber_ref_p_1): Properly handle builtins that may
2610         set errno.
2611
2612 2009-06-20  Richard Guenther  <rguenther@suse.de>
2613
2614         PR tree-optimization/40495
2615         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
2616         (new_scalar_tmp_constraint_exp): New function.
2617         (process_constraint): Do not create temporary decls.
2618         (process_all_all_constraints): Likewise.
2619         (handle_const_call): Likewise.
2620         (create_function_info_for): Do not set decl.
2621
2622 2009-06-19  Ian Lance Taylor  <iant@google.com>
2623
2624         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
2625         (rs6000_attribute_table): Make static; move before use.
2626
2627 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
2628
2629         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
2630         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
2631         Propagate the TREE_READONLY flag without overwriting it.
2632         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
2633         Propagate the TREE_READONLY flag onto the result.
2634         (process_call_operands): Move around.  Use correct constant value.
2635
2636 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2637
2638         PR target/40482
2639         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
2640         * config/arm/arm.md: Likewise.
2641
2642 2009-06-19  Ian Lance Taylor  <iant@google.com>
2643
2644         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
2645         to GIMPLE_ERROR_MARK.
2646
2647         * c-typeck.c (build_conditional_expr): Add op1_original_type and
2648         op2_original_type parameters.  Warn about using different enum types.
2649         * c-parser.c (c_parser_conditional_expression): Pass original
2650         types to build_conditional_expr.
2651         * c-tree.h (build_conditional_expr): Update declaration.
2652
2653 2009-06-19  Ian Lance Taylor  <iant@google.com>
2654
2655         * config/i386/i386.c (ix86_function_specific_save): Test that
2656         fields match values, rather than testing the values are in a
2657         certain range.
2658
2659 2009-06-19  Richard Guenther  <rguenther@suse.de>
2660
2661         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2662         ADDR_EXPR pointers.
2663         (ptr_derefs_may_alias_p): Likewise.
2664         (ptr_deref_may_alias_ref_p_1): New function.
2665         (ptr_deref_may_alias_ref_p): Likewise.
2666         (ref_maybe_used_by_call_p_1): Handle builtins that are not
2667         covered by looking at the ESCAPED solution.
2668         (call_may_clobber_ref_p_1): Likewise.
2669         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
2670         Handle NULL_TREE offset.  Do not produce redundant constraints.
2671         (process_all_all_constraints): New helper function.
2672         (do_structure_copy): Use it.
2673         (handle_lhs_call): Likewise.
2674         (find_func_aliases): Handle some builtins with pointer arguments
2675         and/or return values explicitly.
2676
2677 2009-06-19  Ian Lance Taylor  <iant@google.com>
2678
2679         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
2680
2681 2009-06-19  Ian Lance Taylor  <iant@google.com>
2682
2683         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
2684
2685 2009-06-19  Ian Lance Taylor  <iant@google.com>
2686
2687         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
2688         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
2689         version.
2690
2691         * c-decl.c (finish_decl): If -Wc++-compat, warn about
2692         uninitialized const.
2693
2694 2009-06-19  Ian Lance Taylor  <iant@google.com>
2695
2696         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
2697         all uses.
2698
2699         * c-decl.c (in_struct, struct_types): Remove.
2700         (struct c_binding): Add in_struct field.
2701         (c_binding_ptr): Define type, along with VEC.
2702         (struct c_struct_parse_info): Define.
2703         (struct_parse_info): New static variable.
2704         (bind): Initialize in_struct field.
2705         (start_struct): Remove enclosing_in_struct and
2706         enclosing_struct_types parameters.  Add
2707         enclosing_struct_parse_info parameter.  Change all callers.  Set
2708         struct_parse_info rather than in_struct and struct_types.
2709         (grokfield): If -Wc++-compat and there is a symbol binding for the
2710         field name, set the in_struct flag and push it on the
2711         struct_parse_info->fields vector.
2712         (warn_cxx_compat_finish_struct): New static function.
2713         (finish_struct): Remove enclosing_in_struct and
2714         enclosing_struct_types parameters.  Add
2715         enclosing_struct_parse_info parameter.  Change all callers.  Don't
2716         set C_TYPE_DEFINED_IN_STRUCT here.  Call
2717         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
2718         parameter.  Only push on struct_types if warn_cxx_compat.
2719         (finish_enum): Only push on struct_types if warn_cxx_compat.
2720         (declspecs_add_type): Add loc parameter.  Change all callers.
2721         Change all error calls to error_at.  Pass loc, not input_location,
2722         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
2723         defined in a struct.  If -Wc++-compat and parsing a struct, record
2724         that a typedef name was used.
2725         * c-parser.c (c_parser_declspecs): Get location to pass to
2726         declspecs_add_type.
2727         (c_parser_struct_or_union_specifier): Update calls to start_struct
2728         and finish_struct.
2729         * c-tree.h (struct c_struct_parse_info): Declare.
2730         (finish_struct, start_struct): Update declarations.
2731         (declspecs_add_type): Update declaration.
2732
2733 2009-06-19  Ian Lance Taylor  <iant@google.com>
2734
2735         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
2736         variable with an anonymous type.
2737
2738 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2739
2740         * see.c: Remove for real.
2741
2742 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2743
2744         * optabs.h (enum optab_index): Add new OTI_significand.
2745         (significand_optab): Define corresponding macro.
2746         * optabs.c (init_optabs): Initialize significand_optab.
2747         * genopinit.c (optabs): Implement significand_optab using
2748         significand?f2 patterns.
2749         * builtins.c (expand_builtin_mathfn): Handle
2750         BUILT_IN_SIGNIFICAND{,F,L}.
2751         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
2752         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2753
2754         * config/i386/i386.md (significandxf2, significand<mode>2): New
2755         expanders to implement significandf, significand and significandl
2756         built-ins as inline x87 intrinsics.
2757
2758 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
2759
2760         * config/avr/avr.c (avr_override_options): Remove setting value of
2761         PARAM_INLINE_CALL_COST.
2762
2763 2009-06-18  Richard Henderson  <rth@redhat.com>
2764
2765         PR 40488
2766         * tree-pass.h (TDF_ASMNAME): New.
2767         * tree-dump.c (dump_options): Add asmname.
2768         * doc/invoke.texi: Document it.
2769
2770         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
2771         (dump_decl_name): ...here.
2772         (dump_function_name): New flags arg; mind TDF_ASMNAME.
2773         (dump_generic_node): Update dump_function_name calls.
2774         (print_call_name): New flags arg; update all dump calls.
2775         * diagnostic.h (print_call_name): Update.
2776         * gimple-pretty-print.c (dump_gimple_call): Update.
2777
2778 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2779
2780         PR target/40470
2781         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
2782
2783 2009-06-18  Diego Novillo  <dnovillo@google.com>
2784
2785         * doc/plugins.texi: Document plugin_is_GPL_compatible.
2786         * plugin.c (str_license): Declare.
2787         (try_init_one_plugin): Assert that the symbol
2788         'plugin_is_GPL_compatible' exists.
2789
2790 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
2791
2792         * see.c: Remove.
2793         * Makefile.in (OBJS-common): Remove see.o.
2794         (see.o): Remove.
2795         * common.opt (fsee): Mark as preserved for backward compatibility.
2796         * opts.c (common_handle_option): Add OPT_fsee to the backward 
2797         compatibility section.
2798         * passes.c (init_optimization_passes, pass_see): Remove pass.
2799         * timevar.def (TV_SEE): Remove.
2800         * tree-pass.h (pass_see): Remove declaration.
2801         * doc/invoke.texi (-fsee): Remove documentation.
2802         
2803 2009-06-18  Martin Jambor  <mjambor@suse.cz>
2804
2805         * tree-sra.c: Include statistics.h
2806         (sra_stats): New variable.
2807         (sra_initialize): Clear sra_stats.
2808         (create_access_replacement): Increment sra_stats.replacements.
2809         (get_access_replacement): Do not return twice.
2810         (analyze_all_variable_accesses): Increment statistics counter by the
2811         number of scalarized aggregates.
2812         (generate_subtree_copies): Increment sra_stats.subtree_copies.
2813         (sra_modify_expr): Increment sra_stats.exprs.
2814         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
2815         (sra_modify_assign): Increment sra_stats.exprs,
2816         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
2817         (perform_intra_sra): Update statistics counters.
2818         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
2819
2820 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2821
2822         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2823         (arm_scalar_mode_supported_p): New function.
2824
2825 2009-06-18  Paul Brook  <paul@codesourcery.com>
2826             Sandra Loosemore  <sandra@codesourcery.com>
2827
2828         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
2829         (__extendhfsf2, __truncsfhf2): Define.
2830         * config/arm/fp16.c: New file.
2831         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2832         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
2833
2834 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2835
2836         * doc/extend.texi (Half-Precision): New section.
2837         * doc/invoke.texi (Option Summary): List -mfp16-format.
2838         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
2839         * config/arm/arm.opt (mfp16-format=): New.
2840         * config/arm/arm.c: Include intl.h.
2841         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
2842         (TARGET_INVALID_RETURN_TYPE): Redefine.
2843         (TARGET_PROMOTED_TYPE): Redefine.
2844         (TARGET_CONVERT_TO_TYPE): Redefine.
2845         (arm_fp16_format): Define.
2846         (all_fpus): Add entry for neon-fp16.
2847         (fp_model_for_fpu): Likewise.
2848         (struct fp16_format): Declare.
2849         (all_fp16_formats): Define.
2850         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
2851         functions.
2852         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
2853         and no ldrh.
2854         (arm_legitimate_index_p): Treat HFmode like HImode.
2855         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
2856         (coproc_secondary_reload_class): Special-case HFmode.
2857         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
2858         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
2859         (arm_init_fp16_builtins): New.
2860         (arm_init_builtins): Call it.
2861         (arm_invalid_parameter_type): New.
2862         (arm_invalid_return_type): New.
2863         (arm_promoted_type): New.
2864         (arm_convert_to_type).
2865         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
2866         format.
2867         (arm_emit_fp16_const): New function.
2868         (arm_mangle_type): Mangle __fp16 as "Dh".
2869         * config/arm/arm.h (TARGET_VFPD32): Make it know about
2870         FPUTYPE_NEON_FP16.
2871         (TARGET_NEON_FP16): New.
2872         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
2873         (enum fputype): Add FPUTYPE_NEON_FP16.
2874         (enum arm_fp16_format_type): Declare.
2875         (arm_fp16_format): Declare.
2876         (LARGEST_EXPONENT_IS_NORMAL): Define.
2877         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
2878         * config/arm/arm-modes.def (HFmode): Define.
2879         * config/arm/vfp.md: (*movhf_vfp): New.
2880         (extendhfsf2): New.
2881         (truncsfhf2): New.
2882         * config/arm/arm.md: (fpu): Add neon_fp16.
2883         (floatsihf2, floatdihf2): New.
2884         (fix_trunchfsi2, fix_trunchfdi2): New.
2885         (truncdfhf2): New.
2886         (extendhfdf2): New.
2887         (movhf): New.
2888         (*arm32_movhf): New.
2889         (*thumb1_movhf): New.
2890         (consttable_2): Add check for HFmode constants.
2891         (consttable_4): Handle HFmode constants.
2892
2893 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
2894
2895         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
2896
2897 2009-06-17  Olivier Hainque  <hainque@adacore.com>
2898
2899         * collect2.c (main): Use CONST_CAST2 to perform char ** to
2900         const char ** conversion in AIX specific section.
2901         
2902 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
2903
2904         * config/i386/i386.c (ix86_special_builtin_type): Remove
2905         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
2906         (bdesc_special_args): Updated.
2907         (ix86_init_mmx_sse_builtins): Likewise.
2908         (ix86_expand_special_args_builtin): Likewise.
2909
2910 2009-06-17  Richard Henderson  <rth@redhat.com>
2911
2912         * tree-pretty-print.c (maybe_dump_asm_name): New.
2913         (dump_decl_name): Use it.
2914         (PRINT_FUNCTION_NAME): Merge into...
2915         (dump_function_name): ... here.  Use maybe_dump_asm_name.
2916
2917 2009-06-17  Cary Coutant  <ccoutant@google.com>
2918
2919         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
2920         Change caller.
2921         * debug.c (struct gcc_debug_hooks): Change placeholder for
2922         source_line hook.
2923         (debug_nothing_int_charstar_int): Replaced by...
2924         (debug_nothing_int_charstar_int_bool): ...this.
2925         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
2926         source_line prototype.
2927         (debug_nothing_int_charstar_int): Replaced by...
2928         (debug_nothing_int_charstar_int_bool): ...this.
2929         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
2930         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
2931         Output is_stmt operand when necessary.
2932         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
2933         (notice_source_line): Add is_stmt parameter.
2934         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
2935         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
2936         Change callers.
2937         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
2938         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
2939
2940 2009-06-17  Ian Lance Taylor  <iant@google.com>
2941
2942         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
2943         Change all uses.
2944         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
2945         call uses.
2946
2947 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
2948
2949         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
2950         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
2951         tree_strip_sign_nop_conversions and
2952         tree_ssa_strip_useless_type_conversions rather than stripping
2953         the operations here.
2954         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
2955         Declare them.
2956         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
2957         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
2958         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
2959         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
2960         functions.
2961
2962 2009-06-17  Michael Eager  <eager@eagercon.com>
2963
2964         * config/rs6000/constraints.md (register_constraint "d"): New.
2965         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
2966         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2967         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
2968         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
2969         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2970         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
2971         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
2972         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
2973         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
2974         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
2975         __fctiwz): Same.
2976         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
2977         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
2978         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
2979         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
2980         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2981         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
2982         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
2983         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
2984         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
2985         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
2986         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
2987         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
2988         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
2989         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
2990
2991 2009-06-16  Ian Lance Taylor  <iant@google.com>
2992
2993         * profile.c (total_num_never_executed): Don't define.
2994         (compute_branch_probabilities): Don't count or print
2995         num_never_executed.
2996         (init_branch_prob): Don't set total_num_never_executed.
2997         (end_branch_prob): Don't print total_num_never_executed.
2998
2999 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
3000
3001         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
3002
3003 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
3004
3005         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
3006         (nabstd2_fpr): Same.
3007
3008 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
3009
3010         * expr.c (expand_assignment): Change complex type check.
3011
3012 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
3013
3014         * doc/plugins.texi (Building GCC plugins): Added new section. 
3015
3016 2009-06-17  Ian Lance Taylor  <iant@google.com>
3017
3018         * c-pch.c (get_ident): Don't set size of templ array.
3019         (pch_init): Don't set size of partial_pch array.
3020
3021         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
3022         string constant to intialize an array whose size is the length of
3023         the string.
3024
3025 2009-06-17  Richard Guenther  <rguenther@suse.de>
3026
3027         PR tree-optimization/40389
3028         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
3029         to addressable types.
3030         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
3031
3032 2009-06-17  Richard Guenther  <rguenther@suse.de>
3033
3034         PR middle-end/40460
3035         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
3036         if there is no evolution of left in the loop bail out.
3037         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
3038         chrec_fold_multiply.
3039
3040 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
3041             Janis Johnson  <janis187@us.ibm.com>
3042
3043         PR target/39254
3044         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
3045         for the symbol ref of a constant that is the source of a move
3046         - nor for any other not-obvious-label-ref constants.
3047
3048 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
3049
3050         * plugin.c (position_pass): Skip newly inserted pass during list
3051         traversal to avoid repeated insertion.
3052
3053 2009-06-16  Ian Lance Taylor  <iant@google.com>
3054
3055         * vec.h (VEC_stack_alloc): Define different version if
3056         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
3057         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
3058         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
3059         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
3060
3061 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
3062
3063         * config.gcc (extra_headers): Add ia32intrin.h for x86.
3064
3065         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
3066         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
3067         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
3068         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
3069         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
3070         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
3071         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
3072         (bdesc_special_args): Add __builtin_ia32_rdtsc and
3073         __builtin_ia32_rdtscp.
3074         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
3075         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
3076         and __builtin_ia32_rorhi.
3077         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
3078         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
3079         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
3080         (ix86_expand_args_builtin): Likewise.
3081         (ix86_expand_special_args_builtin): Likewise.
3082
3083         * config/i386/i386.md (UNSPECV_RDTSCP): New.
3084         (UNSPECV_RDTSC): Likewise.
3085         (UNSPECV_RDPMC): Likewise.
3086         (*bsr): Renamed to ...
3087         (bsr): This
3088         (*bsr_rex64): Renamed to ...
3089         (bsr_rex64): This.
3090         (rdpmc): New.
3091         (*rdpmc): Likewise.
3092         (*rdpmc_rex64): Likewise.
3093         (rdtsc): Likewise.
3094         (*rdtsc): Likewise.
3095         (*rdtsc_rex64): Likewise.
3096         (rdtscp): Likewise.
3097         (*rdtscp): Likewise.
3098         (*rdtscp_rex64): Likewise.
3099
3100         * config/i386/ia32intrin.h: New.
3101
3102         * config/i386/x86intrin.h: Include <ia32intrin.h>.
3103
3104 2009-06-16  Ian Lance Taylor  <iant@google.com>
3105
3106         * ira-build.c (copy_info_to_removed_store_destinations):
3107         Initialize parent_a.
3108
3109 2009-06-16  Ian Lance Taylor  <iant@google.com>
3110
3111         * c-decl.c (grokdeclarator): Change size_varies to bool.
3112
3113 2009-06-16  Ian Lance Taylor  <iant@google.com>
3114
3115         * sel-sched.c: Make forward declarations of move_op_hooks and
3116         fur_hooks explicitly extern.
3117
3118 2009-06-16  Ian Lance Taylor  <iant@google.com>
3119
3120         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
3121         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
3122
3123 2009-06-16  Ian Lance Taylor  <iant@google.com>
3124
3125         * resource.c (mark_referenced_resources): Change
3126         include_delayed_effects parameter to bool.  Change all callers.
3127         (mark_end_of_function_resources): Likewise.
3128         * reorg.c (insn_references_resource_p): Likewise.
3129         (insn_sets_resource_p): Likewise.
3130         * resource.h (mark_referenced_resources): Update declaration.
3131         (mark_end_of_function_resources): Update declaration.
3132
3133 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
3134
3135         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
3136
3137 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
3138
3139         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
3140         GCC can bootstrap on AIX with GNU Binutils 2.20.
3141
3142 2009-06-16  Ian Lance Taylor  <iant@google.com>
3143
3144         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
3145
3146 2009-06-16  Ian Lance Taylor  <iant@google.com>
3147
3148         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
3149         inline, not extern inline.
3150         (exact_log2): Likewise.
3151         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
3152         test CLZ_HWI.
3153         (exact_log2): Likewise, but don't test CTZ_HWI.
3154
3155 2009-06-16  Ian Lance Taylor  <iant@google.com>
3156
3157         * bitmap.c (bitmap_clear): Don't declare as inline.
3158         * gimple.c (gimplify_assign): Likewise.
3159         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
3160         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
3161         (sched_scan_info): Remove duplicate definition.
3162
3163 2009-06-16  Ian Lance Taylor  <iant@google.com>
3164
3165         * c-common.c (skip_evaluation): Don't define.
3166         (c_inhibit_evaluation_warnings): Define global variable.
3167         (overflow_warning): Check c_inhibit_evaluation_warnings rather
3168         than skip_evaluation.
3169         (convert_and_check, warn_for_div_by_zero): Likewise.
3170         * c-common.h (skip_evaluation): Don't declare.
3171         (c_inhibit_evaluation_warnings): Declare.
3172         * c-parser.c (c_parser_typeof_specifier): Set
3173         c_inhibit_evaluation_warnings rather than skip_evaluation.
3174         (c_parser_conditional_expression): Likewise.
3175         (c_parser_binary_expression): Likewise.
3176         (c_parser_sizeof_expression): Likewise.
3177         (c_parser_alignof_expression): Likewise.
3178         * c-typeck.c (build_indirect_ref): Check
3179         c_inhibit_evaluation_warnings rather than skip_evaluation.
3180         (build_conditional_expr, build_binary_op): Likewise.
3181
3182 2009-06-16  Richard Guenther  <rguenther@suse.de>
3183
3184         * tree-ssa-alias.c (is_escape_site): Remove.
3185         * tree-ssa-alias.h (enum escape_type): Remove.
3186         (is_escape_site): Likewise.
3187         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
3188         via casts and asms without deferring to is_escape_site.
3189
3190 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
3191
3192         PR middle-end/40446
3193         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
3194         use gen_lowpart if op0 has complex mode.
3195
3196 2009-06-16  Richard Guenther  <rguenther@suse.de>
3197
3198         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
3199         variables add them to ESCAPED.
3200         (find_func_aliases): Do not make all indirectly stored values escaped.
3201
3202 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
3203
3204         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
3205         make_decl_one_only.
3206
3207 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3208
3209         PR tree-optimization/40432
3210         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
3211         check whether we need to force gimple register operand.
3212
3213 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3214
3215         PR tree-optimization/40413
3216         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
3217         build_ref_for_offset.
3218         (propagate_subacesses_accross_link): Fix a typo in a comment.
3219
3220 2009-06-16  Ira Rosen  <irar@il.ibm.com>
3221
3222         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
3223         with additional parameter.
3224         * tree-vectorizer.h (enum vect_def_type): Add new value
3225         vect_nested_cycle.
3226         (enum vect_relevant): Add comments.
3227         (vect_is_simple_reduction): Add new argument.
3228         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
3229         Detect nested cycles.
3230         (vect_is_simple_reduction): Update documentation, add an argument to
3231         distinguish inner-loop reduction from nested cycle, detect nested
3232         cycles, fix printings and indentation, don't swap operands in case
3233         of nested cycle.
3234         (get_initial_def_for_reduction): Handle subtraction.
3235         (vect_create_epilog_for_reduction): Add new argument to specify
3236         reduction variable.
3237         (vect_finalize_reduction): Handle subtraction, fix comments.
3238         (vectorizable_reduction): Handle nested cycles. In case of nested
3239         cycle keep track of the reduction variable position. Call 
3240         vect_is_simple_reduction with additional parameter. Use original
3241         statement code in reduction epilogue for nested cycle. Call
3242         vect_create_epilog_for_reduction with additional parameter.
3243         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
3244         inner-loop vectorization.
3245         (vect_recog_widen_sum_pattern): Likewise.
3246         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
3247         and reductions.
3248         (vect_mark_stmts_to_be_vectorized): Likewise.
3249         (vect_get_vec_def_for_operand): Handle nested cycles.
3250
3251 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3252
3253         * doc/invoke.texi (Debugging Options): Fix option index entries
3254         for -fdump-statistics, -frandom-seed add entries for
3255         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
3256         (FRV Options): Fix entries for -mTLS, -mtls.
3257         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
3258         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
3259         (M68hc1x Options): Fix @itemx for -mnominmax.
3260         (MCore Options): Fix entry for -mno-lsim.
3261         (MMIX Options): Fix entry for -mabi=mmixware.
3262         (PDP-11 Options): Fix entry for -mbcopy-builtin.
3263
3264 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
3265
3266         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
3267         Mention the plugin mode of gengtype.
3268         * doc/gty.texi (Source Files Containing Type Information): Likewise.
3269         * gengtype.c: Updated copyright.
3270         (plugin_files, nb_plugin_files) Added new static variables.
3271         (measure_input_list) Care about plugin_files.
3272         (write_rtx_next): Added early return in plugin mode.
3273         (create_file): Updated copyright year in generated file. Added
3274         asserts.
3275         (oprintf): Added early return if NULL outf.
3276         (get_output_file_with_visibility): Care of plugin_files.
3277         (get_output_file_name): May return null.
3278         (write_local): Added early return.
3279         (put_mangled_filename): Ditto.
3280         (finish_root_table): Added check for base_files.
3281         (write_roots): Care about null when plugins.
3282         (main): Added plugin mode.
3283
3284 2009-06-15  Ian Lance Taylor  <iant@google.com>
3285
3286         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
3287         * gcov.c (read_count_file): Add braces around variables declared
3288         before label.
3289
3290         * c.opt (Wjump-misses-init): New warning.
3291         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
3292         -Wall and -Wc++-compat if not already set.
3293         (c_common_post_options): Clear warn_jump_misses_init if it was not
3294         set.
3295         * c-decl.c (struct c_binding): Change type field to a union with
3296         new label field.  Make it the first field in the struct.  Update
3297         references to type to use u.type instead.
3298         (struct c_spot_bindings): Define.
3299         (struct c_goto_bindings): Define.
3300         (c_goto_bindings_p): Define, along with VECs.
3301         (struct c_label_vars): Define.
3302         (struct c_scope): Add has_label_bindings field.
3303         (bind_label, set_spot_bindings): New static functions.
3304         (decl_jump_unsafe, update_spot_bindings): New static functions.
3305         (update_label_decls): New static function.
3306         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
3307         Update binding u.label field to shadowed field.
3308         (c_binding_start_stmt_expr): New function.
3309         (c_binding_end_stmt_expr): New function.
3310         (pushdecl): Don't call c_begin_vm_scope.
3311         (make_label): Add defining and p_label_vars parameters.  Change
3312         all callers.
3313         (lookup_label): Correct test for whether a label has not yet been
3314         defined.  Call bind_label rather than bind.
3315         (warn_about_goto): New static function.
3316         (lookup_label_for_goto): New function.
3317         (declare_label): Call bind_label rather than bind.
3318         (check_earlier_gotos): New static function.
3319         (define_label): Don't give errors about jumping into statement
3320         expressions or scopes of variably modified types.  Call
3321         set_spot_bindings and check_earlier_gotos.  Call bind_label
3322         instead of bind.  Don't set label_context_stack_se or
3323         label_context_stack_vm.
3324         (c_get_switch_bindings): New function.
3325         (c_release_switch_bindings): New function.
3326         (c_check_switch_jump_warnings): New function.
3327         (start_function): Don't set label_context_stack_se or
3328         label_context_stack_vm.
3329         (finish_function): Likewise.
3330         * c-typeck.c (label_context_stack_se): Don't define.
3331         (label_context_stack_vm): Don't define.
3332         (c_finish_goto_label): Call lookup_label_for_goto rather than
3333         lookup_label.  Don't give errors about jumping into a statement
3334         expression or the scope of a variably modified type.  Don't set
3335         label_context_stack_se or label_context_stack_vm.
3336         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
3337         fields.  Add bindings field.
3338         (c_start_case): Don't set deleted fields.  Set bindings field.
3339         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
3340         or blocked_vm.  Call c_check_switch_jump_warnings.
3341         (c_finish_case): Don't test blocked_stmt_expr field.  Call
3342         c_release_switch_bindings.
3343         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
3344         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3345         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
3346         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
3347         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3348         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
3349         (c_begin_vm_scope, c_end_vm_scope): Don't define.
3350         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
3351         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
3352         (C_DECL_UNJUMPABLE_VM): Don't define.
3353         (C_DECL_UNDEFINABLE_VM): Don't define.
3354         (struct c_label_list): Don't define.
3355         (struct c_label_context_se): Don't define.
3356         (struct c_label_context_vm): Don't define.
3357         (struct c_spot_bindings): Declare.
3358         (c_bindings_start_stmt_expr): Declare.
3359         (c_bindings_end_stmt_expr): Declare.
3360         (lookup_label_for_goto): Declare.
3361         (c_get_switch_bindings, c_release_switch_bindings): Declare.
3362         (c_check_switch_jump_warnings): Declare.
3363         (label_context_stack_se, label_context_stack_vm): Don't declare.
3364         (c_finish_goto_label): Update declaration.
3365         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
3366         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
3367         (Warning Options): Document -Wjump-misses-init.
3368
3369 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
3370
3371         * tree-object-size.c (addr_object_size): Fix a pasto in the last
3372         change.
3373
3374 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3375
3376         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3377
3378 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3379
3380         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3381
3382 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3383
3384         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3385
3386 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3387
3388         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3389         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3390         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3391         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
3392         * dwarf2asm.c (dw2_force_const_mem): Update call to
3393         make_decl_one_only.
3394         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3395         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3396         * langhooks.c (lhd_comdat_group): Remove.
3397         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3398         * tree.h (DECL_COMDAT_GROUP): New.
3399         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3400         (tree_decl_with_vis): Add comdat_group. Remove one_only.
3401         (make_decl_one_only): Change signature.
3402         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3403         make_decl_one_only.
3404         (make_decl_one_only): Change signature.
3405         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3406
3407 2009-06-15  Richard Guenther  <rguenther@suse.de>
3408
3409         PR middle-end/40439
3410         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3411
3412 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3413
3414         * tree-ssa-math-opts.c: Remove extra divide.
3415
3416 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3417
3418         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3419
3420 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3421
3422         * passes.c: Add bswap pass.
3423         * tree-pass.h: Add pass_optimize_bswap declaration.
3424         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3425         Include rtl.h, expr.h and optabs.h for optab_handler check.
3426         (struct symbolic_number, pass_optimize_bswap): New definition.
3427         (do_shift_rotate, verify_symbolic_number_p): New functions.
3428         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3429         (gate_optimize_bswap): New function.
3430         * tree.c (widest_int_cst_value): New function.
3431         * tree.h (widest_int_cst_value): Prototype added.
3432
3433 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
3434
3435         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3436         REG_EQUAL/REG_EQUIV notes.
3437
3438 2009-06-14  Richard Guenther  <rguenther@suse.de>
3439
3440         PR middle-end/40389
3441         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3442         has its address taken if NRV was applied and it is addressable.
3443         * tree-ssa-structalias.c (get_constraint_for_address_of): New
3444         function split out from ...
3445         (get_constraint_for_1): ... here.
3446         (handle_rhs_call): Use it to mark the return slot escaped if
3447         it is addressable and NRV was applied.
3448
3449 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3450
3451         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3452         Change first argument type to location_t.
3453         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3454         Do not set input_location.
3455         Use loc instead of input_location throughout.
3456
3457 2009-06-13  Richard Guenther  <rguenther@suse.de>
3458
3459         PR tree-optimization/40421
3460         * tree-predcom.c (should_unroll_loop_p): Remove.
3461         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3462
3463 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3464
3465         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3466         Add location argument.
3467
3468 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3469
3470         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3471         build_decl.
3472         * config/s390/s390.c (s390_build_builtin_va_list): Same.
3473         (s390_gimplify_va_arg): Pass location to create_artificial_label.
3474         * config/spu/spu-protos.h: Add location to
3475         spu_resolve_overloaded_builtin.
3476         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3477         spu_build_builtin_va_list.
3478         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3479         argument.  Pass location to build_function_call_vec.
3480         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3481         build_decl.
3482         (emit_fpu_switch): Same.
3483         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3484         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3485         to build_decl and create_artificial_label.
3486         (xtensa_gimplify_va_arg_expr): Same.
3487         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3488         (xstormy16_gimplify_va_arg_expr): Same.
3489         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3490         * config/arm/arm.c (arm_build_builtin_va_list): Same.
3491         * config/mips/mips.c (mips_build_builtin_va_list): Same.
3492         (mips16_build_function_stub): Same.
3493         (mips16_build_call_stub): Same.
3494
3495 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
3496
3497         PR target/40327
3498         * arm/constraints.md (Pa, Pb): New constraints.
3499         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
3500         split pattern to deal with them.
3501
3502 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
3503
3504         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3505         fix index entry for -Xpreprocessor.
3506
3507 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3508
3509         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3510         Add location argument to build_decl call.
3511         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3512         (rs6000_init_builtins): Same.
3513         (spe_init_builtins): Same.
3514         (rs6000_gimplify_va_arg): Add location argument to
3515         create_artificial_label call.
3516
3517 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
3518
3519         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
3520         * combine-stack-adj.c (pass_stack_adjustments): Use it.
3521         * Makefile.in: Fix GGC dependency for gcse.o.
3522
3523 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3524
3525         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
3526         * gimple-pretty-print.c (dump_gimple_stmt): Same.
3527         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
3528         created.
3529         * c-parser.c (c_parser_binary_expression): Use current column while
3530         building binary operations.
3531         * common.opt (fshow-column): Enable by default.
3532         * tree-vrp.c (check_array_ref): Use warning_at.
3533         (check_array_bounds): Use location from call back if expr has no
3534         location.
3535         * tree.h: Add location argument to maybe_fold_*.
3536         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
3537         (maybe_fold_offset_to_array_ref): Add location argument and use it.
3538         (maybe_fold_offset_to_component_ref): Same.
3539         (maybe_fold_offset_to_reference): Same.
3540         (maybe_fold_offset_to_address): Same.
3541         (maybe_fold_stmt_indirect): Same.
3542         (maybe_fold_stmt_addition): Same.
3543         (fold_stmt_r): Pass location to maybe_fold_*.
3544         (fold_gimple_assign): Same.
3545         * c-tree.h: Add location argument to finish_decl,
3546         default_function_array_conversion, store_init_value.
3547         * c-decl.c (define_label): Use error_at.
3548         (c_make_fname_decl): Pass location to finish_decl.
3549         (finish_decl): New location argument.
3550         (build_compound_literal): Pass location to store_init_value.
3551         (grokdeclarator): Pass location to finish_decl.
3552         (grokfield): Same.
3553         * c-typeck.c (array_to_pointer_conversion): New location argument.
3554         (function_to_pointer_conversion): Same.
3555         (default_function_array_conversion): Same.
3556         (parser_build_unary_op): Pass location to overflow_warning.
3557         (parser_build_binary_op): Same.  Use warning_at.
3558         (build_unary_op): Pass location to array_to_pointer_conversion.
3559         (build_c_cast): Pass location to digest_init.
3560         (build_modify_expr): New location argument.
3561         (convert_for_assignment): Same.
3562         (store_init_value): Same.
3563         (digest_init): Same.
3564         (output_init_element): Pass location to digest_init and
3565         array_to_pointer_conversion.
3566         (c_finish_return): Pass location to convert_for_assignment.
3567         * gimplify.c (gimplify_conversion): Pass location to
3568         maybe_fold_offset_to_address.
3569         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
3570         to maybe_fold_stmt_addition.
3571         * c-omp.c (c_finish_omp_atomic): Pass new location to
3572         build_modify_expr.
3573         (c_finish_omp_for): Same.
3574         * c-common.c (overflow_warning): New argument.
3575         * c-common.h: New argument to build_modify_expr, overflow_warning.
3576         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
3577         finish_decl.
3578         (c_parser_initializer): Pass location to
3579         default_function_array_conversion.
3580         (c_parser_initelt): Same.
3581         (c_parser_initval): Same.
3582         (c_parser_asm_operands): Same.
3583         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
3584         (c_parser_conditional_expression): Same.
3585         (c_parser_binary_expression): Add location info to stack.  Use it.
3586         (c_parser_unary_expression): Pass location to
3587         default_function_array_conversion, parser_build_unary_op,
3588         build_indirect_ref, c_parser_postfix_expression_after_primary.
3589         (c_parser_postfix_expression_after_primary): New location argument.
3590         Use it.
3591         (c_parser_expression_conv): Pass location to
3592         default_function_array_conversion.
3593         (c_parser_expr_list): Same.
3594         (c_parser_omp_atomic): Same.
3595         (c_parser_omp_for_loop): Same.
3596         * c-tree.h: (struct c_declarator): Add comment to id_loc.
3597         (build_array_declarator): New argument.
3598         * c-decl.c (build_array_declarator): Add location argument.
3599         (grokdeclarator): Set id_loc for cdk_array.
3600         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
3601         build_array_declarator.
3602         * tree.c (build_omp_clause): Add location argument.
3603         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
3604         (OMP_CLAUSE_LOCATION): New macro.
3605         (struct tree_omp_clause): Add location field.
3606         (build_omp_clause): Add argument.
3607         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
3608         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
3609         build_omp_clause.
3610         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
3611         (cp_parser_omp_clause_collapse): Same.
3612         (cp_parser_omp_clause_default): Same.
3613         (cp_parser_omp_clause_if): Same.
3614         (cp_parser_omp_clause_nowait): Same.
3615         (cp_parser_omp_clause_num_threads): Same.
3616         (cp_parser_omp_clause_ordered): Same.
3617         (cp_parser_omp_clause_schedule): Same.
3618         (cp_parser_omp_clause_untied): Same.
3619         (cp_parser_omp_for_loop): Same.
3620         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3621         * c-tree.h (c_start_case): Add location argument.
3622         (c_process_expr_stmt): Same.
3623         (c_finish_goto_*): Same.
3624         * tree-parloops.c (initialize_reductions): Pass location to
3625         build_omp_clause.
3626         (create_parallel_loop): Same.
3627         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
3628         (gfc_trans_omp_reduction_list): Same.
3629         (gfc_trans_omp_clauses): Same.
3630         (gfc_trans_omp_do): Same.
3631         * c-typeck.c (c_finish_goto_label): Same.
3632         (c_finish_goto_ptr): New location argument.
3633         (c_start_case): Same.
3634         (emit_side_effect_warnings): Same.
3635         (c_process_expr_stmt): Same.
3636         (c_finish_stmt_expr): Same.
3637         (c_finish_omp_clauses): Use error_at instead of error.
3638         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
3639         build_omp_clause.
3640         * c-omp.c (c_split_parallel_clauses): New location argument.
3641         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
3642         to build_omp_clause.
3643         (convert_local_reference_stmt): Same.
3644         (convert_gimple_call): Same.
3645         * c-common.h (c_split_parallel_clauses): New argument.
3646         * c-parser.c (c_parser_statement_after_labels): Pass location to
3647         c_finish_goto_label.
3648         (c_parser_switch_statement): Pass location to c_start_case.
3649         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
3650         and c_process_expr_stmt.
3651         (c_parser_omp_variable_list): Add location argument.
3652         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
3653         (c_parser_omp_clause_default): Same.
3654         (c_parser_omp_clause_if): Same.
3655         (c_parser_omp_clause_num_threads): Same.
3656         (-c_parser_omp_clause_ordered): Same.
3657         (c_parser_omp_clause_reduction): Pass location to
3658         c_parser_omp_variable_list.
3659         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
3660         (c_parser_omp_clause_untied): Same.
3661         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
3662         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3663
3664         * c-tree.h (check_for_loop_decls, undeclared_variable,
3665         build_component_ref, build_array_ref, build_external_ref,
3666         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
3667         build_conditional_expr, build_compound_expr, c_cast_expr,
3668         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
3669         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
3670         argument.
3671         * c-semantics.c (build_stmt): Same.
3672         (build_case_label): Same.
3673         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
3674         (undeclared_variable): New argument.
3675         (make_label): Same.
3676         (lookup_label): Pass location on down.
3677         (define_label): Same.
3678         (finish_decl): Same.
3679         (build_compound_literal): Same.
3680         (finish_struct): Same.
3681         (finish_function): Do not set location here.
3682         (check_for_loop_decls): New argument.
3683         * tree.c (save_expr): Set location.
3684         (build_empty_stmt): New argument.
3685         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
3686         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
3687         * builtins.c (gimplify_va_arg_expr): Use locations.
3688         (expand_builtin_sync_operation): Same.
3689         * c-typeck.c (build_component_ref): New argument.
3690         (build_array_ref): Same.
3691         (build_external_ref): Same.
3692         (c_expr_sizeof_expr): Same.
3693         (c_expr_sizeof_type): Same.
3694         (parser_build_unary_op): Same.
3695         (build_conditional_expr): Same.
3696         (build_compound_expr): Pass location on down.
3697         (build_compound_expr): New argument.
3698         (build_c_cast): Same.
3699         (c_cast_expr): Same.
3700         (build_asm_expr): Same.
3701         (c_finish_return): Same.
3702         (c_process_expr_stmt): Pass location on down.
3703         (c_finish_stmt_expr): New argument.
3704         (push_clenaup): Same.
3705         (c_finish_omp_parallel): Same.
3706         (c_finish_omp_task): Same.
3707         * gimplify.c (gimplify_call_expr): Pass location on down.
3708         * c-omp.c (c_finish_omp_master): New argument.
3709         (c_finish_omp_critical): Same.
3710         (c_finish_omp_ordered): Same.
3711         (c_finish_omp_barrier): Same.
3712         (-c_finish_omp_taskwait): Same.
3713         (c_finish_omp_atomic): Same.
3714         (c_finish_omp_flush): Same.
3715         * tree-inline.c (copy_tree_body_r): Pass location on down.
3716         (inline_forbidden_p): Remove use of input_location.
3717         * c-gimplify.c (c_build_bind_expr): New argument.
3718         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
3719         (c_sizeof_or_alignof_type): New argument.
3720         (c_alignof_expr): Same.
3721         (build_va_arg): Same.
3722         (c_add_case_label): Same.
3723         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
3724         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
3725         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
3726         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
3727         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
3728         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
3729         New argument.
3730         * stub-objc.c (objc_build_selector_expr): Same.
3731         (objc_build_throw_stmt): Same.
3732         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
3733         (c_parser_initelt): Same.
3734         (c_parser_compound_statement): Same.
3735         (c_parser_compound_statement_nostart): Same.
3736         (c_parser_label): Same.
3737         (c_parser_statement_after_labels): Same.
3738         (c_parser_if_body): Same.
3739         (c_parser_else_body): Same.
3740         (c_parser_if_statement): Same.
3741         (c_parser_switch_statement): Same.
3742         (c_parser_while_statement): Same.
3743         (c_parser_do_statement): Same.
3744         (c_parser_for_statement): Same.
3745         (c_parser_asm_statement): Same.
3746         (c_parser_conditional_expression): Same.
3747         (c_parser_binary_expression): Same.
3748         (c_parser_cast_expression): Same.
3749         (c_parser_unary_expression): Same.
3750         (c_parser_sizeof_expression): Same.
3751         (c_parser_alignof_expression): Same.
3752         (c_parser_postfix_expression): Same.
3753         (c_parser_expression): Same.
3754         (c_parser_objc_receiver): Same.
3755         (c_parser_omp_variable_list): Same.
3756         (c_parser_omp_structured_block): Same.
3757         (c_parser_omp_atomic): New argument.
3758         (c_parser_omp_barrier): Same.
3759         (c_parser_omp_critical): Same.
3760         (c_parser_omp_flush): Pass location on down.
3761         (c_parser_omp_for_loop): New argument.
3762         (c_parser_omp_for): Same.
3763         (c_parser_omp_master): Same.
3764         (c_parser_omp_ordered): Same.
3765         (c_parser_omp_sections_scope): Same.
3766         (c_parser_omp_sections): Same.
3767         (c_parser_omp_parallel): Same.
3768         (c_parser_omp_single): Same.
3769         (c_parser_omp_task): Same.
3770         (c_parser_omp_taskwait): Pass location on down.
3771         (c_parser_omp_construct): Same.
3772         (c_parser_omp_threadprivate): Same.
3773         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
3774         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
3775         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
3776         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
3777         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
3778         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
3779         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
3780         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
3781         config/i386/i386.c, stmt.c:
3782         Add location argument to the following function definitions and/or
3783         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
3784         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
3785         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
3786         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
3787         do_case, c_finish_bc_stmt, build_compound_literal,
3788         build_function_call.
3789         * c-decl.c (build_compound_literal): Add location argument.
3790         Make all diagnostic calls use location.
3791         (start_struct): Same.
3792         (finish_struct): Same.
3793         (start_enum): Same.
3794         (build_enumerator): Same.
3795         (start_function): Same.
3796         (grokdeclarator): Make all diagnostic calls use location.
3797         (store_parm_decls_oldstyle): Same.
3798         * c-typeck.c (build_function_call): Add location argument.
3799         Make all diagnostic calls use location.
3800         (do_case): Same.
3801         (c_finish_bc_stmt): Same.
3802         * tree-nested.c (get_trampoline_type): Add argument.
3803         Pass location to build_decl.
3804         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
3805         * rtl.h (RTL_LOCATION): New.
3806         * c-common.c (c_add_case_label): Add location argument.
3807         Make all diagnostic calls use location.
3808         * c-common.h: Add location argument to make_fname_decl, do_case,
3809         c_add_case_label, build_function_call, resolve_overloaded_builtin.
3810         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
3811         Set it appropriately for every case.  Pass enum_loc to start_enum
3812         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
3813         parser_xref_tag.
3814         (c_parser_struct_or_union_specifier): Save location.  Use it for
3815         start_struct, finish_struct, and parser_xref_tag.
3816
3817 2009-06-12  Ian Lance Taylor  <iant@google.com>
3818
3819         * fold-const.c (fold_unary): Rename local variable and to and_expr.
3820
3821         * c-opts.c (c_common_handle_option): For -Wc++-compat set
3822         cpp_opts->warn_cxx_operator_names.
3823
3824 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3825
3826         PR tree-opt/38865
3827         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
3828         is returns NULL and OP is a VCE, look through the VCE.
3829
3830 2009-06-12  Ian Lance Taylor  <iant@google.com>
3831
3832         PR bootstrap/40430
3833         * collect2.c (main): Use CONST_CAST2 in code inside #if
3834         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
3835
3836 2009-06-12  Joey Ye  <joey.ye@intel.com>
3837
3838         PR middle-end/39146
3839         * cfgexpand.c (get_decl_align_unit): Update
3840         max_used_stack_slot_alignment with align instead of
3841         stack_alignment_needed.
3842
3843         * function.c (assign_stack_local_1): Update
3844         max_used_stack_slot_alignment with alignment_in_bits instead
3845         of stack_alignment_needed.
3846         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
3847         here.
3848
3849 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
3850
3851         * dwarf2out.c (last_var_location_insn): New variable.
3852         (dwarf2out_end_epilogue): Clear last_var_location_insn.
3853         (dwarf2out_var_location): Don't record anything after last real
3854         insn.  Only change labels if there were any real instructions
3855         in between last note and this one, or if changed sections.
3856
3857 2009-06-11  Richard Henderson  <rth@redhat.com>
3858
3859         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
3860         note when storing the frame pointer in a register.
3861         (FRP): Don't redefine to nothing for epilogue.
3862         (alpha_expand_epilogue): Mark register and sp restores.
3863         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
3864
3865         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
3866         when gen_lowpart is needed.
3867
3868 2009-06-11  Richard Henderson  <rth@redhat.com>
3869
3870         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
3871
3872         * dwarf2out.c (need_data_align_sf_opcode): New.
3873         (div_data_align): Move earlier.
3874         (def_cfa_1, reg_save): Use it.
3875
3876 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
3877
3878         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
3879         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
3880         (ix86_handle_option): Handle OPT_mcrc32.
3881         (ix86_target_string): Add -mcrc32.
3882         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
3883
3884         * config/i386/i386.h (TARGET_CRC32): New.
3885
3886         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
3887         (sse4_2_crc32di): Likewise.
3888
3889         * config/i386/i386.opt (mcrc32): New.
3890
3891         * doc/invoke.texi: Document -mcrc32.
3892
3893 2009-06-11  Richard Henderson  <rth@redhat.com>
3894
3895         * common.opt (gdwarf-): Accept a version number.
3896         * doc/invoke.texi (gdwarf-): Update docs.
3897         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
3898         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
3899         version level, and record it.
3900
3901         * dwarf2.h (DW_CIE_VERSION): Remove.
3902         * dwarf2out.c (DWARF_VERSION): Remove.
3903         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
3904         (output_call_frame_info): Use CIE version 3 for dwarf3,
3905         or if the return register column is out of range for version 1.
3906         (dwarf_stack_op_name): Add all dwarf3 values.
3907         (DEBUG_PUBTYPES_SECTION): New.
3908         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
3909         encoding change for dwarf3.
3910         (output_die) [dw_val_class_die_ref]: Likewise.
3911         (output_compilation_unit_header): Emit correct version for dwarf3.
3912         (output_line_info): Likewise.
3913         (output_pubnames): Update for DWARF_VERSION removal.
3914         (output_aranges): Likewise.
3915         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
3916         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
3917         (dwarf2out_finish): Likewise.
3918
3919 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3920
3921         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
3922         in r148403.
3923
3924 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3925
3926         PR c/39252
3927         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
3928         * builtins.c (expand_builtin_unreachable): New function.
3929         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
3930         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
3931         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
3932         successors.
3933         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
3934         searching for missing barriers.
3935
3936 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3937
3938         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
3939         when -fprofile-generate* was passed.
3940         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3941
3942 2009-06-11  Anthony Green  <green@moxielogic.com>
3943
3944         * config/moxie/moxie.md: Define length attribute for all instructions.
3945         (rCC): Define.
3946         (*b<cond:code>): Support limited branch ranges for new PC-relative
3947         branch instructions.
3948         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
3949
3950 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
3951
3952         * config/i386/i386.c (min_insn_size): Use get_attr_length
3953         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
3954         For __asm return 0.
3955
3956         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
3957         instead of emit_insn_before.
3958
3959 2009-06-10  Ian Lance Taylor  <iant@google.com>
3960
3961         PR bootstrap/40408
3962         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
3963         GIMPLE_SWITCH.
3964
3965 2009-06-10  Revital Eres  <eres@il.ibm.com>
3966
3967         * passes.c (init_optimization_passes): Reschedule
3968         predictive-commoning pass before complete unroll pass.
3969
3970 2009-06-10  Martin Jambor  <mjambor@suse.cz>
3971
3972         * cgraph.c (cgraph_node_can_be_local_p): New function.
3973         (cgraph_make_node_local): New function.
3974         * cgraph.h (cgraph_node_can_be_local_p): Declare.
3975         (cgraph_make_node_local): Declare.
3976
3977 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
3978
3979         * tree.h (tree_base): Add packed_flag and user_align fields.
3980         Decrease size of spare field.
3981         (TYPE_USER_ALIGN): Use user_align from tree_base.
3982         (DECL_USER_ALIGN): Likewise.
3983         (TYPE_PACKED): Use packed_flag from tree_base.
3984         (DECL_PACKED): Likewise.
3985         (tree_type): Delete packed_flag and user_align fields.  Widen
3986         precision field.  Widen mode field and shuffle fields to align
3987         mode on an 8-bit boundary.
3988         (tree_decl_common): Delete decl_flag_1 and user_align fields.
3989         Renumber decl_flag_* fields.  Fix comments.  Widen
3990         decl_common_unused field.
3991         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
3992         (DECL_EXTERNAL): Likewise.
3993         (DECL_BIT_FIELD): Likewise.
3994         (DECL_NONADDRESSABLE_P): Likewise.
3995         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
3996         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
3997
3998 2009-06-10  Ian Lance Taylor  <iant@google.com>
3999
4000         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
4001         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
4002         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
4003         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
4004         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
4005         DEF_VEC_ALLOC_FUNC_P.
4006         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
4007         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
4008         DEF_VEC_ALLOC_FUNC_O.
4009         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
4010         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
4011         DEF_VEC_ALLOC_FUNC_I.
4012         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
4013         (vec_stack_p_reserve_exact_1): Declare.
4014         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
4015         (vec_stack_free): Declare.
4016         (VEC_stack_alloc): Define.
4017         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
4018         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
4019         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
4020         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
4021         for void_p.
4022         (stack_vecs): New static variable.
4023         (vec_stack_p_reserve_exact_1): New function.
4024         (vec_stack_o_reserve_1): New static function.
4025         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
4026         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
4027         (vec_stack_free): New function.
4028         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
4029         (VEC_df_ref_stack_alloc): Define.
4030         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
4031         DEF_VEC_ALLOC_P_STACK.
4032         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
4033         (struct df_collection_rec): Change _vec fields to VEC.  Remove
4034         _use fields.
4035         (df_free_collection_rec): Adjust for new fields.
4036         (df_insn_rescan): Use new df_collection_rec fields.
4037         (df_notes_rescan, df_canonize_collection_rec): Likewise.
4038         (df_ref_create_structure, df_ref_record): Likewise.
4039         (df_get_conditional_uses, df_get_call_refs): Likewise.
4040         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
4041         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
4042         (df_record_exit_block_uses, df_bb_verify): Likewise.
4043         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
4044         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
4045         Remove count parameter.  Change return type to void.  Change all
4046         callers.
4047         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
4048         Remove count parameter.  Change return type to void.  Change all
4049         callers.
4050         (df_install_refs): Change old_vec parameter to VEC.  Remove count
4051         parameter.  Change all callers.
4052         (df_install_mws): Change old_vec parameter to VEC.  Remove count
4053         parameter.  Change all callers.
4054         (df_refs_verify): Change new_rec parameter to VEC.  Change call
4055         callers.
4056         (df_mws_verify): Likewise.
4057
4058 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
4059
4060         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
4061
4062 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
4063
4064         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
4065
4066 2009-06-10  Anthony Green  <green@moxielogic.com>
4067
4068         * config/moxie/crti.asm: New file.
4069         * config/moxie/crtn.asm: New file.
4070         * config/moxie/moxie.c: New file.
4071         * config/moxie/moxie.h: New file.
4072         * config/moxie/sfp-machine.h: New file.
4073         * config/moxie/moxie-protos.h: New file.
4074         * config/moxie/t-moxie: Created.
4075         * config/moxie/t-moxie-softfp: Created.
4076         * config/moxie/moxie.md: Created.
4077         * config/moxie/constraints.md: Created.
4078         * config.gcc: Add moxie support.
4079         * doc/md.texi (Machine Constraints): Add moxie constraints.
4080         * doc/contrib.texi (Contributors): Mention moxie port.
4081         * doc/install.texi (Specific): Mention the moxie port.
4082
4083 2009-06-09  Ian Lance Taylor  <iant@google.com>
4084
4085         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
4086         compiling with C++.
4087         * optabs.c (optab_table): Only use designated initializers if
4088         HAVE_DESIGNATED_INITIALIZERS is defined.
4089         (convert_optab_table): Likewise.
4090         (init_optabs): Always call init_insn_codes if
4091         HAVE_DESIGNATED_INITIALIZERS is not defined.
4092
4093 2009-06-09  Ian Lance Taylor  <iant@google.com>
4094
4095         * targhooks.c (default_builtin_vectorized_function): Change fn
4096         parameter to unsigned int.
4097         (default_builtin_vectorized_conversion): Change code parameter to
4098         unsigned int.
4099         (default_builtin_reciprocal): Change fn parameter to unsigned int.
4100         * targhooks.h: Update declarations.
4101         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
4102         parameter to unsigned int.
4103
4104         * c-typeck.c (comptypes_check_enum_int): New static function.
4105         (comptypes_internal): Add enum_and_int_p parameter.  Change all
4106         callers.
4107         (comp_target_types): Add location parameter.  Change all callers.
4108         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
4109         Change all callers.
4110         (function_types_compatible_p, type_lists_compatible_p): Likewise.
4111         (build_conditional_expr): Add colon_loc parameter.  Change all
4112         callers.
4113         (convert_for_assignment): Add location parameter.  Change all callers.
4114         * c-parser.c (c_parser_conditional_expression): Pass location of
4115         colon to build_conditional_expr.
4116         * c-tree.h (build_conditional_expr): Update declaration.
4117
4118 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
4119
4120         * graphite.c: Revert previous patch.
4121
4122 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
4123
4124         PR bootstrap/40103
4125         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
4126
4127 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
4128
4129         * tree-ssa-loop-prefetch.c
4130         (loop_prefetch_arrays): Fixed a portability problem in printf format
4131         string.
4132
4133 2009-06-09  Martin Jambor  <mjambor@suse.cz>
4134
4135         PR tree-optimization/40351
4136         * tree-sra.c (propagate_subacesses_accross_link): Check that a
4137         refrence to a potential artifical subaccess can be constructed.
4138
4139 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4140
4141         * config/sh/sh-protos.h (sh_optimization_options): Declare.
4142         (sh_override_options): Likewise.
4143         * config/sh/sh.c: Include params.h.
4144         (sh_optimization_options): New.
4145         (sh_override_options): Likewise.
4146         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
4147         (OVERRIDE_OPTIONS): Use sh_override_options.
4148
4149 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
4150
4151         * dwarf2out.c (emit_cfa_remember): New variable.
4152         (add_fde_cfi): If emit_cfa_remember, recurse to add
4153         DW_CFA_remember_state first.
4154         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
4155         instead just set emit_cfa_remember.
4156
4157 2009-06-08  Jan Hubicka  <jh@suse.cz>
4158
4159         PR debug/40126
4160         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
4161
4162 2009-06-08  Jan Hubicka  <jh@suse.cz>
4163
4164         PR middle-end/39834
4165         * cgraphunit.c (save_inline_function_body): Do not copy transform
4166         hooks for saved inline bodies.
4167         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
4168         for given function.
4169
4170 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
4171
4172         * jump.c (returnjump_p): Handle delayed branches.  Add missing
4173         function comment.
4174
4175 2009-06-08  Jan Hubicka  <jh@suse.cz>
4176
4177         PR middle-end/40102
4178         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
4179         original node might've been modified.
4180         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
4181
4182 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
4183
4184         * tree-object-size.c (addr_object_size): Add OSI argument.
4185         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
4186         (compute_builtin_object_size, expr_object_size): Adjust callers.
4187         (plus_stmt_object_size): Call addr_object_size instead of
4188         compute_builtin_object_size.
4189
4190 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
4191             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4192         
4193         * tree-ssa-loop-prefetch.c 
4194         (gather_memory_references): Introduced a counter for the number of 
4195         memory references.
4196         (anything_to_prefetch_p): Introduced a counter for the number of 
4197         prefetches.
4198         (is_loop_prefetching_profitable): New function with a cost model 
4199         for prefetching.
4200         (loop_prefetch_arrays): Use the new cost model to determine if 
4201         prefetching is profitable.
4202         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
4203         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4204         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
4205         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4206         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
4207         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4208         
4209 2009-06-08  Michael Matz  <matz@suse.de>
4210
4211         PR debug/40012
4212         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
4213         partitions use the same.
4214         (expand_one_var): Deal with DECL_RTL sometimes begin set also
4215         for basevars of SSA_NAMEs.
4216         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
4217         to not expand them twice.
4218         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
4219         multiple places.
4220
4221 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
4222
4223         * common.opt (fcompare-debug=, fcompare-debug-second): New.
4224         (fdump-final-insns=, gtoggle): New.
4225         * doc/invoke.texi: Document them.
4226         * final.c (rest_of_clean_state): Dump final insn stream.
4227         * gcc.c (invoke_as): Hook in -fcompare-debug.
4228         (static_spec_functions): Add compare-debug-dump-opt,
4229         compare-debug-self-opt and compare-debug-auxbase-opt.
4230         (compare_debug, compare_debug_second, compare_debug_opt): New.
4231         (switches_debug_check, n_switches_debug_check): New.
4232         (debug_auxbase_opt, debug_check_temp_file): New.
4233         (process_command): Handle -fno-compare-debug, -fcompare-debug and
4234         -fcompare-debug=*.
4235         (do_self_spec): Handle arguments after switches.
4236         (do_spec_1): Add .gk extension to temp file basenames for compare.
4237         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
4238         (cc1_options): Use it instead of normal auxbase computation for
4239         the second compare-debug compilation.
4240         (compare_files): New.
4241         (main): Set up and implement compare debug mode.
4242         (compare_debug_dump_opt_spec_function): New.
4243         (compare_debug_self_opt_spec_function): New.
4244         (compare_debug_auxbase_opt_spec_function): New.
4245         * toplev.c (process_options): Handle flag_gtoggle,
4246         flag_dump_final_insns.
4247         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
4248         during -fcompare-debug-second compilation.
4249
4250 2009-06-07  Ian Lance Taylor  <iant@google.com>
4251
4252         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
4253         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
4254
4255         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
4256         with no default node.  Change warning with %H to warning_at.
4257         Don't clear warn_switch around case checking.
4258         * doc/invoke.texi (Warning Options): Clarify distinction between
4259         -Wswitch and -Wswitch-enum.
4260
4261 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4262
4263         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
4264
4265 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4266
4267         * gbl-ctors.h: Add header guard.
4268
4269 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4270
4271         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
4272         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
4273         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
4274         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
4275         prototypes for removed functions.
4276         (expressions_equal_p): Move to ...
4277         * tree-ssa-sccvn.h: ... here and ...
4278         * matrix-reorg.c: ... adjust includes.
4279
4280 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4281
4282         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
4283
4284 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4285
4286         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
4287         (finish_function): Remove erroneous whitespace.
4288
4289 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4290
4291         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
4292         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
4293
4294 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4295
4296         * errors.c (internal_error): Commentary typo fix.
4297         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
4298         * tree-ssa-pre.c: Ditto.
4299
4300 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4301
4302         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
4303         them is supposed to hold actual statements.
4304
4305 2009-06-06  Ian Lance Taylor  <iant@google.com>
4306
4307         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
4308         empty statements can now have attributes.
4309
4310 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
4311
4312         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
4313         * config/mips/mips.md: Ditto.
4314
4315 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4316
4317         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
4318         _RELOCATABLE.
4319         (__eabi_uconvert): Likewise.
4320
4321 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4322
4323         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
4324         CFI_* definitions with IN_GCC.
4325
4326 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
4327
4328         * xcoffout.h (xcoffout_source_line): Update prototype.
4329
4330 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4331
4332         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
4333         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
4334
4335 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4336
4337         PR middle-end/40340
4338         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4339         inlined_function_outer_scope_p blocks for artificial inlines
4340         even at -g0/-g1.
4341         * tree.c (tree_nonartificial_location): Rewrite using
4342         block_nonartificial_location.
4343
4344 2009-06-05  Revital Eres  <eres@il.ibm.com>
4345             Leehod Baruch  <leehod@il.ibm.com>
4346
4347         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
4348         (expand_expr_real_1): Remove comment.
4349         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4350         Vectorize misaligned access when the target supports it.
4351         (vect_supportable_dr_alignment): Check for unaligned access support.
4352         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
4353         and remove asset.
4354
4355 2009-06-05  Julian Brown  <julian@codesourcery.com>
4356
4357         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
4358         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
4359
4360 2009-06-05  Richard Guenther  <rguenther@suse.de>
4361
4362         PR bootstrap/40350
4363         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
4364         as possibly unused.
4365
4366 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4367
4368         * config/s390/s390.c (global_not_special_regno_p): New static inline.
4369         (save_gprs): Don't tell unwinder when a global register is saved.
4370         (s390_emit_epilogue): Emit needed epilogue unwind info.
4371
4372 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4373
4374         * dwarf2out.c (deferred_asm_name): New.
4375         (add_name_and_src_coords_attributes): Defer creation of
4376         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
4377         computed yet.
4378         (move_linkage_attr): New.
4379         (dwarf2out_finish): Revisit deferrals and emit attributes at the
4380         right place.
4381
4382 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4383
4384         * tree-nested.c (finalize_nesting_tree_1): Declare the
4385         frame_decl in the binding tree.
4386
4387 2009-06-04  Cary Coutant  <ccoutant@google.com>
4388
4389         * basic-block.h (struct basic_block_def): Add discriminator field.
4390         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
4391         callers.
4392         * debug.c (do_nothing_debug_hooks): Add additional entry.
4393         (debug_nothing_int_charstar_int): New function.
4394         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
4395         (debug_nothing_int_charstar_int): New declaration.
4396         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
4397         discriminator value in .loc directive.
4398         * final.c (last_discriminator): New variable.
4399         (discriminator): New variable.
4400         (final_start_function): Initialize above variables, pass current
4401         discriminator to debug hook.
4402         (notice_source_line): Check for discriminator change.
4403         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
4404         * sdbout.c (sdbout_source_line): New parameter.
4405         * tree-cfg.c (struct locus_discrim_map): New structure type.
4406         (discriminator_per_locus): New hash table.
4407         (build_gimple_cfg): Allocate and free discriminator hash table.
4408         (make_edges): Call assign_discriminator.
4409         (locus_map_hash): New function.
4410         (locus_map_eq): New function.
4411         (next_discriminator_for_locus): New function.
4412         (same_line_p): New function.
4413         (assign_discriminator): New function.
4414         (make_cond_expr_edges): Call assign_discriminator.
4415         (make_gimple_switch_edges): Likewise.
4416         (first_non_label_stmt): New function.
4417         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
4418         all callers.
4419         * xcoffout.c (xcoffout_source_line): Add new parameter.
4420
4421         * configure.ac (gcc_cv_as_discriminator): New configury check for
4422         gas support for discriminator.
4423         * configure: Regenerate.
4424         * config.in: Regenerate.
4425
4426 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4427
4428         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
4429         val after checking for integers.
4430
4431 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
4432
4433         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
4434         X64_REGPARM_MAX.
4435         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
4436         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
4437         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
4438         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
4439         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
4440         X64_SSE_REGPARM_MAX.
4441         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
4442         X64_SSE_REGPARM_MAX.
4443
4444 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4445
4446         * gcc.c (report_times_to_file): New.
4447         (execute): Implement it.
4448         (process_command): Support -time=.
4449         * doc/invoke.texi: Document it.
4450
4451 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4452
4453         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
4454         that have value exprs.
4455
4456 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4457
4458         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
4459         declarations for constants until...
4460         (dw2_output_indirect_constant_1): ... this point.
4461
4462 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
4463
4464         PR target/10242
4465         * arm.md (arm_addsi3): Don't try to split an add with an
4466         eliminable register until after reload has completed.
4467
4468 2009-06-03  Ian Lance Taylor  <iant@google.com>
4469
4470         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
4471         * genattrtab.c (write_length_unit_log): Likewise.
4472         * genchecksum.c (dosum): Likewise.
4473         * gengtype.c (write_rtx_next): Likewise.
4474         (finish_root_table, write_roots): Likewise.
4475         * gimple.c (gimple_ops_offset_): Likewise.
4476         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
4477         * config/arc/arc.c (arc_attribute_table): Likewise.
4478         * config/arm/arm.c (arm_attribute_table): Likewise.
4479         * config/avr/avr.c (avr_attribute_table): Likewise.
4480         * config/crx/crx.c (crx_attribute_table): Likewise.
4481         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
4482         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
4483         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
4484         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
4485         * config/sh/sh.c (sh_attribute_table): Likewise.
4486         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
4487         * config/spu/spu.c (spu_attribute_table): Likewise.
4488         * config/v850/v850.c (v850_attribute_table): Likewise.
4489
4490         * config/alpha/alpha.c (vms_attribute_table): Make static.
4491         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
4492         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
4493         * config/mips/mips.c (mips_attribute_table): Likewise.
4494
4495         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
4496         $(SYSTEM_H).
4497         (cc1-checksum.o): Likewise.
4498
4499 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
4500
4501         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
4502
4503 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
4504
4505         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
4506         insn if it is changing sp.  Use gen_add3_insn instead of
4507         conditionally gen_addsi3 and gen_adddi3.
4508         (offset_below_red_zone_p): New static inline function.
4509         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
4510         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
4511         * config/rs6000/ppc-asm.h: Include auto-host.h.
4512         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
4513         CFI_RESTORE): Define.
4514         * config/rs6000/crtresxgpr.asm: Add unwind info.
4515         * config/rs6000/crtresxfpr.asm: Likewise.
4516         * config/rs6000/crtresgpr.asm: Likewise.
4517         * config/rs6000/crtresfpr.asm: Likewise.
4518         * config/rs6000/crtsavgpr.asm: Likewise.
4519         * config/rs6000/crtsavfpr.asm: Likewise.
4520
4521         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
4522         argument of DWARF2_FRAME_REG_OUT macros.
4523
4524 2009-06-03  Julian Brown  <julian@codesourcery.com>
4525
4526         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
4527         words or less (including TImode) in core registers.
4528
4529 2009-06-03  Richard Guenther  <rguenther@suse.de>
4530
4531         PR middle-end/40328
4532         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
4533
4534 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
4535
4536         * statistics.c (statistics_counter_event): Do not record event 
4537         in pass dump if its number == -1.
4538         (curr_statistics_hash): Add assert that we never get passes 
4539         with static number == -1.
4540
4541 2009-06-03  Richard Guenther  <rguenther@suse.de>
4542             Andrey Belevantsev  <abel@ispras.ru>
4543
4544         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
4545         non-BLKmode arrays addressable.
4546
4547 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
4548
4549         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
4550         * config/m68k/m68k.h: ... here.
4551         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
4552         m68k and fido.
4553
4554 2009-06-03  Martin Jambor  <mjambor@suse.cz>
4555
4556         PR tree-optimization/40323
4557         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
4558         assignment.
4559
4560 2009-06-03  Richard Guenther  <rguenther@suse.de>
4561
4562         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4563         consistently.
4564
4565 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
4566
4567         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
4568         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
4569         JUMP_TABLE_DATA_P where applicable.
4570         * config/sh/sh.c: Ditto.
4571         * config/sh/sh.h: Ditto.
4572         * config/sh/sh.md: Ditto.
4573         * config/sh/symbian.c: Ditto.
4574
4575 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
4576
4577         * config/i386/driver-i386.c (describe_cache): Optimize
4578         concatenation of strings.  Use snprintf instead of sprintf.
4579         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
4580         target when not compiling with GCC.
4581
4582 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4583
4584         * config/sh/sh.c: Revert last change.
4585         (sh_expand_epilogue): Emit a blockage insn before the frame
4586         pointer adjustment unconditionally.
4587
4588 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4589
4590         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
4591         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
4592         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
4593         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
4594         to COLLECT_GCC_OPTIONS.
4595
4596 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4597
4598         * collect2.c (target_system_root): New variable.
4599         (main): Handle --sysroot=.
4600         (ignore_library): Strip the sysroot from the library path.
4601
4602 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4603
4604         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
4605         (collect2.o): Depend on collect2-aix.h.
4606         (collect2-aix.o): New rule.
4607         * collect2-aix.h: New file.
4608         * collect2-aix.c: Likewise.
4609         * collect2.c: Include collect2-aix.h.  Don't undefine
4610         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
4611         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
4612         Use TARGET_AIX_VERSION instead of _AIX51.
4613         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
4614         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
4615         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
4616         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
4617         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
4618
4619 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4620
4621         * collect2.c (ignore_library): Avoid premature post-increment
4622         and null deference.
4623
4624 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4625
4626         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
4627         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
4628         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
4629         CROSS_DIRECTORY_STRUCTURE too.
4630         (LINK_LIBG_SPEC): Likewise.
4631         (LIB_SPEC): Add %R to sysroot paths.
4632         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
4633         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
4634         * config/rs6000/aix51.h: As for aix43.h.
4635         * config/rs6000/aix52.h: Likewise.
4636         * config/rs6000/aix53.h: Likewise.
4637         * config/rs6000/aix61.h: Likewise.
4638         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
4639         to the beginning of sysroot paths.
4640
4641 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4642
4643         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
4644         INSN_LISTs that are out of the REG_NOTE range.
4645
4646 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4647
4648         * loop-unroll.c (struct iv_to_split): Add pointer to next.
4649         (struct var_to_expand): Likewise.
4650         (struct opt_info): Add head and tail for linked lists of the above.
4651         (analyze_insn_to_expand_var): Initialize next.
4652         (analyze_iv_to_split_insn): Likewise.
4653         (analyze_insns_in_loop): Create linked lists.
4654         (allocate_basic_variable): Simplify for use without hash table.
4655         (insert_var_expansion_initialization): Likewise, make it type-safer.
4656         (combine_var_copies_in_loop_exit): Likewise.
4657         (apply_opt_in_copies): Walk lists rather than hash tables.
4658         (release_var_copies): Simplified and inlined by hand into...
4659         (free_opt_info): ... this function.
4660
4661 2009-06-02  Richard Guenther  <rguenther@suse.de>
4662
4663         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4664         for field decls.
4665
4666 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4667
4668         * cfgexpand.c (gimple_expand_cfg): Discard the source location
4669         only for builtins that are not overridden.
4670
4671 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4672
4673         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
4674         label string.
4675
4676 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4677
4678         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
4679
4680 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4681
4682         * combine.c (move_deaths): Compare LUIDs within the same BB only.
4683
4684 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4685
4686         * common.opt (fdump-unnumbered-links): New.
4687         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
4688         * print-rtl.c (flag_dump_unnumbered_links): New.
4689         (print_rtx): Test it.
4690
4691 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
4692
4693         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
4694         push/pop multiple to 8-byte alignment.
4695
4696 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
4697
4698         * config/i386/i386.c (queued_cfa_restores): New static variable.
4699         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
4700         functions.
4701         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
4702         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
4703         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
4704         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
4705         note unconditionally.
4706         (ix86_emit_restore_regs_using_mov): Likewise.
4707         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4708         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
4709         it through to ix86_emit_restore_reg_using_pop.
4710         (ix86_emit_leave): Add RED_OFFSET argument.  Call
4711         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
4712         instead of adding REG_CFA_OFFSET note unconditionally.
4713         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
4714         the above functions.  Call ix86_add_queued_cfa_restore_notes when
4715         needed.
4716
4717         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
4718         force output of the label even for dwarf2out_do_cfi_asm.
4719         (add_fde_cfi): If -g2 and above and cfi might change CFA,
4720         force creation of CFI label and chain DW_CFA_set_loc jumping to it
4721         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
4722         caller.
4723         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4724         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
4725         dwarf2out_cfi_label callers.
4726         * tree.h (dwarf2out_cfi_label): Adjust prototype.
4727         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
4728         Adjust dwarf2out_cfi_label callers.
4729         * config/vax/vax.c (vax_output_function_prologue): Likewise.
4730
4731         * config/i386/i386.h (struct machine_cfa_state,
4732         struct machine_function): Guard with ifndef USED_FOR_TARGET
4733         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
4734
4735         PR other/40024
4736         * emutls.c (__emutls_get_address): Change arr->size to mean number
4737         of allocated arr->data entries instead of # of slots + 1.
4738
4739         PR middle-end/40316
4740         * recog.c (peep2_reinit_state): New function.
4741         (peephole2_init_state): Use it at the end of a basic block and also
4742         when seeing a RTX_FRAME_RELATED_P insn.
4743
4744 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
4745
4746         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
4747         fixuns_truncrfdi2): New.
4748         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
4749         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
4750         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
4751         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
4752         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
4753         *recip_approx): Remove.
4754         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
4755         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
4756         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
4757         move to div.md.
4758         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
4759         setf_exp_rf): New.
4760
4761 2009-06-01  Ian Lance Taylor  <iant@google.com>
4762
4763         * attribs.c (register_attribute): Use CONST_CAST.
4764         * collect2.c (main): Use CONST_CAST2.
4765         (scan_prog_file): Likewise.
4766         * gcc.c (process_command, main): Likewise.
4767         * toplev.c (toplev_main): Likewise.
4768
4769         * c-typeck.c (handle_warn_cast_qual): New static function,
4770         partially broken out of build_c_cast.
4771         (build_c_cast): Call handle_warn_cast_qual.
4772         * doc/invoke.texi (Warning Options): Document new effect of
4773         -Wcast-qual.
4774
4775 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
4776
4777         * diagnostic.c (diagnostic_build_prefix): Always print columns.
4778         (diagnostic_report_current_module): Print columns.
4779         * common.opt (flag_show_column): Enable by default.
4780
4781 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
4782
4783         * alias.c (find_base_term): Check for NULL term before returning.
4784
4785 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4786
4787         Revert due to PR40320:
4788         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4789         * calls.c (emit_library_call_value_1): Don't force_operand for move
4790         and push insns.
4791
4792 2009-06-01  Olivier Hainque  <hainque@adacore.com>
4793             Eric Botcazou  <ebotcazou@adacore.com>
4794
4795         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
4796         to be processed as a bitfield for constructor output purposes.
4797         * output.h (initializer_constant_valid_for_bitfield_p): Declare
4798         new function.
4799         * varasm.c (oc_local_state): New type, output_constructor
4800         local state to support communication with helpers.
4801         (oc_outer_state): New type, output_constructor outer state of
4802         relevance in recursive calls.
4803         (output_constructor_array_range): New output_constructor helper,
4804         extracted code for an array range element.
4805         (output_constructor_regular_field): New output_constructor helper,
4806         extracted code for an element that is not a bitfield.
4807         (output_constructor_bitfield): New output_constructor helper,
4808         extracted code for a bitfield element.  Accept an OUTER state
4809         argument for recursive processing.  Recurse on record or array
4810         CONSTRUCTOR values, possibly past noop conversions.
4811         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
4812         VALUE is a valid constant-valued expression for use in a static
4813         bit-field initializer.
4814         (output_constructor): Rework to use helpers.  Accept and honor an
4815         OUTER state argument for recursive calls.  Return total size.  Be
4816         prepared for nested constructors initializing bitfields.
4817         (output_constant): Feed OUTER in calls to output_constructor.
4818
4819 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4820
4821         * calls.c (emit_library_call_value_1): Don't force_operand for move
4822         and push insns.
4823
4824 2009-06-01  Nick Clifton  <nickc@redhat.com>
4825
4826         * doc/invoke.texi (IA-64 Options): Fix typo.
4827
4828 2009-06-01  Ira Rosen  <irar@il.ibm.com>
4829
4830         PR tree-optimization/39129
4831         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
4832         printed message.
4833         (vect_do_peeling_for_loop_bound): Use
4834         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4835         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4836         (vect_loop_versioning): Likewise.
4837         (vect_create_cond_for_alias_checks): Fix indentation.
4838         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
4839         macros.
4840         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
4841         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
4842         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
4843         "control flow in loop".
4844         (vect_estimate_min_profitable_iters): Use
4845         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4846         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4847         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4848         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
4849         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
4850         statement belongs to a group of strided accesses with the exact code
4851         check.
4852         (vectorizable_load): Likewise.
4853         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
4854         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4855
4856 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
4857
4858         * config/freebsd-stdint.h: New file.
4859         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
4860         Add freebsd-stdint.h to tm_file.
4861
4862 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
4863
4864         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
4865         (thumb2_extendhidi2): Likewise.
4866
4867 2009-05-31  Ian Lance Taylor  <iant@google.com>
4868
4869         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
4870
4871 2009-05-31  Ian Lance Taylor  <iant@google.com>
4872
4873         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
4874         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
4875         (ipa-reference.o): Depend upon gt-ipa-reference.h.
4876
4877 2009-05-31  Jason Merrill  <jason@redhat.com>
4878
4879         * tree-pretty-print.c (print_call_name): Take the callee, not the
4880         call itself.  Make non-static.  Use dump_function_name for functions.
4881         (dump_generic_node): Adjust.
4882         * diagnostic.h: Declare print_call_name.
4883         * gimple-pretty-print.c (dump_gimple_call): Use it.
4884
4885 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4886
4887         * config/sh/sh.md (ashldi3_std): New define_expand.
4888         (ashldi3): Use it.
4889
4890 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4891
4892         PR target/40313
4893         * config/sh/sh.c: Include debug.h.
4894         (sh_expand_epilogue): Emit a blockage insn before the frame
4895         pointer adjustment also when dwarf2out_do_frame returns true.
4896
4897 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
4898
4899         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
4900         (thumb2_extendqidi2): New pattern.
4901
4902 2009-05-31  Ira Rosen  <irar@il.ibm.com>
4903
4904         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4905         mark phis for renaming.
4906         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
4907         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
4908         Call mark_sym_for_renaming.
4909         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
4910         * tree-vect-loop.c (vect_transform_loop): Remove
4911         vect_memsyms_to_rename initialization and a call to
4912         mark_set_for_renaming.
4913
4914 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
4915
4916         PR middle-end/40304
4917         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
4918         frame related even if !set_cfa && style < 0.
4919
4920 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
4921
4922         * config/i386/mingw-tls.c: New file.
4923         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
4924         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
4925         defining _WIN32 but not __CYGWIN__.
4926
4927 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4928
4929         * configure.ac: Add MPC support.
4930         
4931         * config.in, configure: Regenerate.     
4932
4933 2009-05-29  Richard Henderson  <rth@redhat.com>
4934
4935         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
4936         NOTE_INSN_BASIC_BLOCK.
4937         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
4938         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
4939         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
4940         to be deleted.
4941         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
4942         add in_use field.
4943         (add_cfi): Disable check redefining cfa away from drap.
4944         (lookup_cfa_1): Add remember argument; handle remember/restore.
4945         (lookup_cfa): Pass remember argument.
4946         (cfa_remember): New.
4947         (compute_barrier_args_size_1): Remove sibcall check.
4948         (dwarf2out_frame_debug_def_cfa): New.
4949         (dwarf2out_frame_debug_adjust_cfa): New.
4950         (dwarf2out_frame_debug_cfa_offset): New.
4951         (dwarf2out_frame_debug_cfa_register): New.
4952         (dwarf2out_frame_debug_cfa_restore): New.
4953         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
4954         (dwarf2out_begin_epilogue): New.
4955         (dwarf2out_frame_debug_restore_state): New.
4956         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
4957         DW_CFA_restore_state.
4958         (output_cfi_directive): Likewise.
4959         (convert_cfa_to_fb_loc_list): Likewise.
4960         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
4961         * dwarf2out.h: Update.
4962         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
4963         (copy_insn_1): Early out for null.
4964         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
4965         and dwarf2out_frame_debug_restore_state.
4966         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
4967         (prologue_insn_hash, epilogue_insn_hash): New.
4968         (free_after_compilation): Adjust freeing accordingly.
4969         (record_insns): Create hash table if needed; push insns into
4970         hash instead of array.
4971         (maybe_copy_epilogue_insn): New.
4972         (contains): Search hash table instead of array.
4973         (sibcall_epilogue_contains): Remove.
4974         (thread_prologue_and_epilogue_insns): Split eh_return insns
4975         and mark them as epilogues.
4976         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
4977         scanning in terms of basic blocks.
4978         * insn-notes.def (CFA_RESTORE_STATE): New.
4979         * jump.c (returnjump_p_1): Accept EH_RETURN.
4980         (eh_returnjump_p_1, eh_returnjump_p): New.
4981         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
4982         CFA_REGISTER, CFA_RESTORE): New.
4983         * rtl.def (EH_RETURN): New.
4984         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
4985
4986         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
4987         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
4988
4989         * config/i386/i386.c (gen_push): Update cfa state.
4990         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
4991         add a CFA_ADJUST_CFA note.
4992         (ix86_dwarf_handle_frame_unspec): Remove.
4993         (ix86_expand_prologue): Update cfa state.
4994         (ix86_emit_restore_reg_using_pop): New.
4995         (ix86_emit_restore_regs_using_pop): New.
4996         (ix86_emit_leave): New.
4997         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
4998         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
4999         * config/i386/i386.h (struct machine_cfa_state): New.
5000         (ix86_cfa_state): New.
5001         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
5002         (eh_return_internal): Merge from eh_return_<mode>,
5003         use eh_return rtx, split w/ epilogue.
5004
5005 2009-05-29  Ian Lance Taylor  <iant@google.com>
5006
5007         * builtins.c (validate_gimple_arglist): Don't use va_arg with
5008         enum type.
5009         * calls.c (emit_library_call_value_1): Likewise.
5010
5011         * c-typeck.c (c_build_va_arg): New function.
5012         * c-tree.h (c_build_va_arg): Declare.
5013         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
5014         instead of build_va_arg.
5015
5016 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5017
5018         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
5019         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
5020         (ptr_difference_cost): Use affine combinations to compute it.
5021         (difference_cost): Likewise.
5022         (get_computation_cost_at): Compute more accurate cost for addresses
5023         if the ratio is a multiplier allowed in addresses.
5024         For non-addresses, consider that an additional offset or symbol is
5025         added only once.
5026
5027 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5028
5029         * config/i386/i386.c (ix86_decompose_address): Avoid useless
5030         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
5031
5032         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
5033         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
5034         (prefix_rex): For UNIT_MMX don't imply the prefix by default
5035         if MODE_DI.
5036         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
5037         to 1 for TYPE_SSE{IADD1,CVT1}.
5038         (prefix_vex_imm8): Removed.
5039         (length_vex): Only pass 1 as second argument to
5040         ix86_attr_length_vex_default if prefix_extra is 0.
5041         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
5042         (length): For prefix vex computation use length_immediate
5043         attribute instead of prefix_vex_imm8.
5044         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
5045         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
5046         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
5047         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
5048         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
5049         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
5050         a space in between the operands.
5051         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
5052         if one operand is 0xff and the other one si, di, bp or sp.
5053         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
5054         other one si, di, bp or sp.
5055         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
5056         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
5057         type and mode attributes.
5058         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
5059         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
5060         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
5061         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
5062         prefix_data16 attribute iff MODE_DF.
5063         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
5064         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
5065         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
5066         constm128_operand in length_immediate computation.
5067         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
5068         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
5069         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
5070         length_immediate attribute to 1.
5071         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
5072         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
5073         for certain alternatives.
5074         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
5075         prefix_data16 attribute if MODE_V1DF.
5076         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
5077         length_immediate to 1.
5078         (set_got_rex64, set_rip_rex64): Remove length attribute, set
5079         length_address to 4, set mode attribute to MODE_DI.
5080         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
5081         (fxam<mode>2_i387): Set length attribute to 4.
5082         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
5083         *prefetch_3dnow_rex): Override length_address attribute.
5084         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
5085         attributes.
5086         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
5087         (constm128_operand): Removed.
5088         * config/i386/i386.c (memory_address_length): For
5089         disp && !index && !base in 64-bit mode account for SIB byte if
5090         print_operand_address can't optimize disp32 into disp32(%rip)
5091         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
5092         for fs: or gs: segment.
5093         (ix86_attr_length_immediate_default): When checking if shortform
5094         is possible, truncate immediate to the length of the non-shortened
5095         immediate.
5096         (ix86_attr_length_address_default): Ignore MEM_P operands
5097         with X constraint.
5098         (ix86_attr_length_vex_default): Only check for DImode on
5099         GENERAL_REG_P operands.
5100         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
5101         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
5102         (sse_cvttps2pi): Clear prefix_rep attribute.
5103         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
5104         attribute.
5105         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
5106         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
5107         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
5108         iff operand 2 is const_int_operand.
5109         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
5110         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
5111         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
5112         instead of vex.
5113         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
5114         prefix_data16.
5115         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
5116         prefix_data16 attribute for movlpd and movhpd instructions.
5117         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
5118         length_immediate for shufpd instruction.
5119         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
5120         (avx_cmpp<avxmodesuffixf2c><mode>3,
5121         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
5122         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
5123         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
5124         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
5125         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
5126         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
5127         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
5128         prefix_data16 attribute for the first alternative to 1.
5129         (*avx_loadlps): Override length_immediate for the first alternative.
5130         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
5131         attributes for second alternative.
5132         (*vec_concatv2sf_sse4_1): Override length_immediate and
5133         prefix_data16 attributes for second alternative.
5134         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
5135         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
5136         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
5137         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
5138         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
5139         prefix_data16 and length_immediate to 1.
5140         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
5141         to 1.
5142         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
5143         prefix_extra attribute for variants that don't have 0f prefix alone.
5144         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
5145         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
5146         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
5147         *sse4_1_pextrd): Set length_immediate to 1.
5148         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
5149         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
5150         to 1.
5151         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
5152         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
5153         length_immediate to 1 for second alternative.
5154         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
5155         prefix_extra and length_immediate attributes for the first
5156         alternative.
5157         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
5158         first alternative.
5159         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
5160         to 1 for the first and third alternative.
5161         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
5162         alternative.
5163         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
5164         attribute.
5165         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
5166         attribute to 0.
5167         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
5168         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
5169         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
5170         *avx_psign<mode>3): Set prefix_extra attribute to 1.
5171         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
5172         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
5173         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
5174         ssse3_psign<mode>3): Override prefix_rex attribute.
5175         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
5176         (ssse3_palignrti): Override length_immediate to 1.
5177         (ssse3_palignrdi): Override length_immediate to 1, override
5178         prefix_rex attribute.
5179         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
5180         (sse4a_extrqi): Override length_immediate to 2.
5181         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
5182         (sse4a_insertq): Override prefix_data16 to 0.
5183         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
5184         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
5185         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
5186         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
5187         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
5188         and length_immediate to 1.
5189         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
5190         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
5191         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
5192         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
5193         and length_immediate to 1.
5194         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
5195         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
5196         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
5197         avx_ptest256): Override prefix_extra to 1.
5198         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
5199         Override prefix_data16 and length_immediate to 1.
5200         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
5201         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
5202         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
5203         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
5204         prefix_data16 to 0 and prefix_extra to 2.
5205         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
5206         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
5207         attribute.
5208         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
5209         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
5210         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
5211         and prefix_extra to 2.
5212         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
5213         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
5214         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
5215         avx_vpermilvar<mode>3,
5216         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
5217         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
5218         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
5219         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
5220         Override prefix_extra to 1.
5221         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
5222         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
5223         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
5224         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
5225         prefix_extra and length_immediate to 1.
5226         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
5227         modrm to 0.
5228         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
5229         to 1 for the first alternative.
5230         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
5231         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
5232         cases.
5233         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
5234         *movv2sf_internal_avx, *movv2sf_internal): Override
5235         prefix_rep attribute for certain alternatives.
5236         (*mov<mode>_internal): Override prefix_rep or prefix_data16
5237         attributes for certain alternatives.
5238         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
5239         attributes for certain alternatives.
5240         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
5241         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
5242         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
5243         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
5244         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
5245         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
5246         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
5247         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
5248         length_immediate to 1 if operand 2 is const_int_operand.
5249         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
5250         *vec_extractv2si_1): Set length_immediate attribute to 1.
5251         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
5252         using old 3DNOW insn rather than SSE/3DNOW_A.
5253         (mmx_emms, mmx_femms): Clear modrm attribute.
5254
5255 2009-05-29  Martin Jambor  <mjambor@suse.cz>
5256
5257         * tree-sra.c:  New implementation of SRA.
5258
5259         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
5260         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
5261         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
5262         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
5263         (SRA_MAX_STRUCTURE_COUNT): Removed.
5264         (SRA_FIELD_STRUCTURE_RATIO): Removed.
5265         * doc/invoke.texi (sra-max-structure-size): Removed.
5266         (sra-field-structure-ratio): Removed.
5267
5268 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5269
5270         PR middle-end/40291
5271         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
5272         before expansion.
5273
5274 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
5275
5276         PR rtl-optimization/40101
5277         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
5278         seqno.  Adjust comment.
5279         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
5280         inserting bookkeeping before a jump, the jump is not scheduled.
5281         When no positive seqno found, provide a value.  Add comment.
5282
5283 2009-05-29  Richard Guenther  <rguenther@suse.de>
5284
5285         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
5286         short-cutting on the first component.
5287
5288 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5289
5290         PR middle-end/39958
5291         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
5292         for trees other than decls/types.
5293
5294 2009-05-29  Richard Guenther  <rguenther@suse.de>
5295
5296         * tree-ssa-operands.c (get_expr_operands): Do not handle
5297         INDIRECT_REFs in the handled-component case.  Remove
5298         unused get_ref_base_and_extent case.
5299         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
5300         tree_low_cst and host_integerp where possible.
5301         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
5302         codes for equivalence.
5303         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
5304
5305 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
5306
5307         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
5308         to tmake_file for i[34567]86-*-cygwin*. 
5309
5310 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5311
5312         PR target/40017
5313         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
5314         (altivec_categorize_keyword, init_vector_keywords,
5315         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
5316         similar to bool.
5317
5318 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
5319
5320         * tree.c (handle_dll_attribute): Check if node is
5321         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
5322
5323 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
5324
5325         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
5326         component.
5327         (thumb2_zero_extendqidi2): Likewise.
5328
5329 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5330
5331         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
5332         instead of gen_movrt.
5333         * config/sh/sh.md (movrt): Remove.
5334
5335 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
5336
5337         * doc/invoke.texi (IA-64 Options):
5338         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
5339         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
5340         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
5341         -msched-prefer-non-control-spec-insns,
5342         -msched-stop-bits-after-every-cycle,
5343         -msched-count-spec-in-critical-path,
5344         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
5345         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
5346         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
5347         and -msched-spec-verbose.
5348
5349 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
5350
5351         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
5352         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
5353         error if used.
5354         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
5355
5356 2009-05-28  Richard Guenther  <rguenther@suse.de>
5357
5358         * tree-ssa-alias.c (ao_ref_init): New function.
5359         (ao_ref_base): Likewise.
5360         (ao_ref_base_alias_set): Likewise.
5361         (ao_ref_alias_set): Likewise.
5362         (refs_may_alias_p_1): Change signature.
5363         (refs_may_alias_p): Adjust.
5364         (refs_anti_dependent_p): Likewise.
5365         (refs_output_dependent_p): Likewise.
5366         (call_may_clobber_ref_p_1): Change signature.
5367         (call_may_clobber_ref_p): Adjust.
5368         (stmt_may_clobber_ref_p_1): New function split out from ...
5369         (stmt_may_clobber_ref_p): ... here.
5370         (maybe_skip_until): Adjust signature.
5371         (get_continuation_for_phi): Likewise.
5372         (walk_non_aliased_vuses): Likewise.
5373         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
5374         (ao_ref_init): Declare.
5375         (ao_ref_base): Likewise.
5376         (ao_ref_alias_set): Likewise.
5377         (stmt_may_clobber_ref_p_1): Likewise.
5378         (walk_non_aliased_vuses): Adjust.
5379         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
5380         (get_ref_from_reference_ops): remove.
5381         (vn_reference_lookup_2): Adjust signature.
5382         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
5383         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
5384         (vn_reference_lookup): Adjust.
5385         (vn_reference_insert): Likewise.
5386         (vn_reference_insert_pieces): Adjust signature.
5387         (visit_reference_op_call): Adjust.
5388         * tree-ssa-pre.c (get_expr_type): Simplify.
5389         (phi_translate_1): Adjust.
5390         (compute_avail): Likewise.
5391         (translate_vuse_through_block): Do not re-build trees.
5392         (value_dies_in_block_x): Likewise.
5393         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
5394         fields.
5395         (vn_reference_lookup_pieces): Adjust declaration.
5396         (vn_reference_insert_pieces): Likewise.
5397
5398 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
5399
5400         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
5401         with checking disabled.
5402
5403 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
5404
5405         PR target/37216
5406
5407         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
5408         macro definition for support of three-operand format aligned
5409         .comm directive in assembler on cygwin/pe/mingw target OS.
5410         * configure:  Regenerate.
5411         * config.h:  Regenerate.
5412
5413         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
5414         aligned form of .comm directive if -mpe-aligned-commons is in effect.
5415         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
5416
5417         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
5418         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
5419
5420 2009-05-28  Ira Rosen  <irar@il.ibm.com>
5421
5422         PR tree-optimization/40254
5423         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
5424         in analysis of basic blocks.
5425
5426 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
5427
5428         PR middle-end/33699
5429         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
5430         * target-def.h (TARGET_CONST_ANCHOR): New macro.
5431         (TARGET_INITIALIZER): Use it.
5432         * cse.c (CHEAPER): Move it up to the other macros.
5433         (insert): Rename this ...
5434         (insert_with_costs): ... to this.  Add cost parameters.  Update
5435         function comment.
5436         (insert): New function.  Call insert_with_costs.
5437         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
5438         find_reg_offset_for_const, try_const_anchors): New functions.
5439         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
5440         when using a const-anchor.  Call insert_const_anchors.
5441         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
5442         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
5443
5444 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5445
5446         * tree-inline.c (remap_decls): Enable nonlocalized variables
5447         when not optimizing.
5448
5449 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5450
5451         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
5452         Simplify other tests involving optimize.
5453
5454 2009-05-27  Tom Tromey  <tromey@redhat.com>
5455
5456         * unwind-dw2.c (_Unwind_DebugHook): New function.
5457         (uw_install_context): Call _Unwind_DebugHook.
5458
5459 2009-05-27  Tom Tromey  <tromey@redhat.com>
5460
5461         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
5462
5463 2009-05-27  Ian Lance Taylor  <iant@google.com>
5464
5465         * Makefile.in (LINKER, LINKER_FLAGS): Define.
5466         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
5467         (ALL_LINKERFLAGS): Define.
5468         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
5469         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5470         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
5471         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5472         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
5473         $(LINKER_FOR_BUILD).
5474         (build/gcov-iov$(build_exeext)): Likewise.
5475
5476 2009-05-27  Julian Brown  <julian@codesourcery.com>
5477
5478         * gcse.c (target.h): Include.
5479         (can_assign_to_reg_without_clobbers_p): Check that the target allows
5480         copy of argument to a pseudo register.
5481
5482 2009-05-27  Diego Novillo  <dnovillo@google.com>
5483
5484         * tree-ssa-live.c (dump_scope_block): Document arguments.
5485         (dump_scope_blocks): Document.
5486         (debug_scope_blocks): New.
5487         * tree-flow.h (debug_scope_blocks): Declare.
5488
5489 2009-05-21  Denis Chertykov  <denisc@overta.ru>
5490
5491         * doc/contrib.texi (Contributors): Add myself to the list.
5492
5493 2009-05-27  Olivier Hainque  <hainque@adacore.com>
5494
5495         * expr.c (target_align): New function.  Alignment the TARGET of an
5496         assignment may be assume to have.
5497         (highest_pow2_factor_for_target): Use it instead of relying on
5498         immediate tree attributes of TARGET, not necessarily honored when
5499         intermediate bitfields are involved.
5500         
5501 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5502
5503         PR target/40266
5504         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5505         AVX, SSE4, AES, PCLMUL and POPCNT.
5506
5507 2009-05-27  Diego Novillo  <dnovillo@google.com>
5508
5509         * tree-pretty-print.c (dump_location): New.
5510         (dump_generic_node): Call it.
5511         Factor code to handle BLOCK nodes ...
5512         (dump_block_node): ... here.
5513
5514 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
5515
5516         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
5517         with it.
5518         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
5519         included.
5520         * gcc-plugin.h: Include config.h and system.h.
5521         (IN_GCC): Define if not defined.
5522
5523 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
5524
5525         PR middle-end/40249
5526         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
5527         with -fno-inline.
5528
5529 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
5530
5531         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
5532         applicable.
5533         * config/m32r/m32r.h: Ditto.
5534         * config/m32r/m32r.md: Ditto.
5535         * config/m32r/predicates.md: Ditto.
5536
5537 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
5538
5539         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
5540
5541 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
5542
5543         * doc/plugins.texi
5544         (Loading plugins): typo.
5545         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
5546         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5547         (Interacting with the GCC Garbage Collector): Added new section.
5548         (Giving information about a plugin): Added new section for
5549         PLUGIN_INFO.
5550         * ggc.h (ggc_register_root_tab): Added declaration.
5551         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
5552         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
5553         (register_callback): Improved comment in declaration.
5554         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
5555         (extra_root_vec) Added static variable for dynamic roots registration.
5556         (ggc_register_root_tab) Added new routine.
5557         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
5558         PLUGIN_GGC_MARKING event.
5559         * ggc-zone.c: Include plugin.h.
5560         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5561         * ggc-page.c: Include plugin.h.
5562         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5563         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
5564         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
5565         (register_callback): check lack of callbacks for
5566         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
5567         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
5568         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
5569         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5570         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
5571         dependency on plugin.h.
5572         (plugin.o): Added dependency on ggc.h...
5573
5574 2009-05-26  Richard Guenther  <rguenther@suse.de>
5575
5576         PR middle-end/40248
5577         Revert
5578         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
5579         with mismatched comparison modes.
5580
5581         * expr.c (expand_expr_real_1): Expand the operand of a
5582         VIEW_CONVERT_EXPR in its natural mode.
5583
5584 2009-05-26  Ian Lance Taylor  <iant@google.com>
5585
5586         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
5587         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
5588         (ALL_COMPILERFLAGS): Define.
5589         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
5590         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5591         (collect2$(exeext), collect2.o): Likewise.
5592         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
5593         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
5594         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
5595         (libbackend.o, intl.o, cppdefault.o): Likewise.
5596         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5597         (build/%.o): Use $(COMPILER_FOR_BUILD).
5598         (build/gen%$(build_exeext)): Likewise.
5599         (build/gcov-iov$(build_exeext)): LIkewise.
5600         * config/t-darwin (darwin.o): Use $(COMPILER).
5601         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
5602         * config/t-sol2 (sol2-c.o): Likewise.
5603         (sol2.o): Likewise.
5604         * config/t-vxworks (vxworks.o): Likewise.
5605         * config/x-darwin (host-darwin.o): Likewise.
5606         * config/x-hpux (host-hpux.o): Likewise.
5607         * config/x-linux (host-linux.o): Likewise.
5608         * config/x-solaris (host-solaris.o): Likewise.
5609         * config/alpha/x-alpha (driver-alpha.o): Likewise.
5610         * config/arm/t-arm (arm-c.o): Likewise.
5611         * config/arm/t-pe (pe.o): Likewise.
5612         * config/arm/t-wince-pe (pe.o): Likewise.
5613         * config/i386/t-cygming (winnt.o): Likewise.
5614         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
5615         * config/i386/t-cygwin (cygwin1.o): Likewise.
5616         (cygwin2.o): Likewise.
5617         * config/i386/t-i386 (i386-c.o): Likewise.
5618         * config/i386/t-interix (winnt.o): Likewise.
5619         * config/i386/t-netware (netware.o): Likewise.
5620         * config/i386/t-nwld (nwld.o): Likewise.
5621         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
5622         * config/i386/x-i386 (driver-i386.o): Likewise.
5623         * config/i386/x-cygwin (host-cygwin.o): Likewise.
5624         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
5625         * config/ia64/t-ia64 (ia64-c.o): Likewise.
5626         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
5627         * config/mips/x-native (driver-native.o): Likewise.
5628         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
5629         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
5630         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
5631         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
5632         * config/score/t-score-elf (score7.o): Likewise.
5633         (score3.o): Likewise.
5634         * config/sh/t-sh (sh-c.o): Likewise.
5635         * config/sh/t-symbian (sh-c.o): Likewise.
5636         (symbian.o): Likewise.
5637         * config/spu/t-spu-elf (spu-c.o): Likewise.
5638         * config/v850/t-v850 (v850-c.o): Likewise.
5639         * config/v850/t-v850e (v850-c.o): Likewise.
5640
5641 2009-05-26  Richard Guenther  <rguenther@suse.de>
5642
5643         PR tree-optimization/40122
5644         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
5645         VECTOR_CSTs if possible.
5646         (fold_gimple_assign): Likewise.
5647
5648 2009-05-26  Richard Guenther  <rguenther@suse.de>
5649
5650         PR middle-end/40252
5651         * fold-const.c (fold_binary): Use the correct types for building
5652         rotates.
5653
5654 2009-05-26  Richard Guenther  <rguenther@suse.de>
5655
5656         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
5657         redundant calls to merge_alias_info.
5658         (bump_vector_ptr): Likewise.
5659         * tree-ssa-copy.c (merge_alias_info): Remove.
5660         (replace_exp_1): Remove call to merge_alias_info.
5661         (propagate_tree_value): Likewise.
5662         (fini_copy_prop): Propagate points-to info.
5663         * tree-flow.h (merge_alias_info): Remove.
5664
5665 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5666
5667         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
5668
5669 2009-05-25  Jan Hubicka  <jh@suse.cz>
5670
5671         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5672         * cgraph.h (struct inline_summary): New filed self_wize,
5673         size_inlining_benefit, self_time and time_inlining_benefit.
5674         (struct cgraph_global_info): Replace insns by time ans size fields.
5675         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5676         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5677         (ipcp_update_callgraph): Do not touch function bodies.
5678         * ipa-inline.c: Include except.h
5679         (MAX_TIME): New constant.
5680         (overall_insns): Remove.
5681         (leaf_node_p): New.
5682         (overall_size, max_benefit): New static variables.
5683         (cgraph_estimate_time_after_inlining): New function.
5684         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5685         (cgraph_clone_inlined_nodes): Update size.
5686         (cgraph_mark_inline_edge): Update size.
5687         (cgraph_estimate_growth): Use size info.
5688         (cgraph_check_inline_limits): Check size.
5689         (cgraph_default_inline_p): Likewise.
5690         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5691         (cgraph_decide_recursive_inlining): Check size.
5692         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5693         and times.
5694         (cgraph_decide_inlining): Likewise.
5695         (cgraph_decide_inlining_incrementally): Likewise; honor
5696         PARAM_EARLY_INLINING_INSNS.
5697         (likely_eliminated_by_inlining_p): New predicate.
5698         (estimate_function_body_sizes): New function.
5699         (compute_inline_parameters): Use it.
5700         * except.c (must_not_throw_labels): New function.
5701         * except.h (must_not_throw_labels): Declare.
5702         * tree-inline.c (init_inline_once): Kill inlining_weigths
5703         * tree-ssa-structalias.c: Avoid uninitialized warning.
5704         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5705         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5706         (PARAM_INLINE_CALL_COST): Remove.
5707         (PARAM_EARLY_INLINING_INSNS): New.
5708
5709 2009-05-25  Richard Guenther  <rguenther@suse.de>
5710
5711         PR tree-optimization/36327
5712         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
5713         callback for reference translation or lookup at the point of may-defs.
5714         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
5715         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
5716         for union COMPONENT_REFs.
5717         (vn_reference_lookup_3): New callback.  Lookup from memset
5718         and CONSTRUCTOR assignment, translate through struct copies.
5719         (vn_reference_lookup_pieces): Make sure to not free the
5720         passed operands array.  Adjust walk_non_aliased_vuses call.
5721         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
5722         make sure we do not leak memory.
5723
5724 2009-05-25  Richard Guenther  <rguenther@suse.de>
5725
5726         * tree-ssa-alias.h (dump_points_to_solution): Declare.
5727         * tree-inline.c (expand_call_inline): Reset the escaped and
5728         callused solutions.
5729         * tree-ssa-structalias.c (pass_build_ealias): New.
5730         * tree-pass.h (pass_build_ealias): Declare.
5731         * passes.c (init_optimization_passes): Add PTA during 
5732         early optimizations.
5733         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
5734         and CALLUSED solutions.
5735         (dump_points_to_solution): New function, split out from ...
5736         (dump_points_to_info_for): ... here.
5737         * tree-parloops.c (parallelize_loops): Reset the escaped and
5738         callused solutions.
5739
5740 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5741
5742         PR bootstrap/40027
5743         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
5744         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
5745
5746 2009-05-25  Ira Rosen  <irar@il.ibm.com>
5747
5748         PR tree-optimization/40238
5749         * tree-vect-stmts.c (vect_init_vector): Insert initialization
5750         statements after basic block's labels.
5751         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
5752         to free the allocated memory.
5753
5754 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
5755
5756         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
5757         return address with a USE.
5758
5759 2009-05-24  Richard Guenther  <rguenther@suse.de>
5760
5761         PR middle-end/40233
5762         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
5763         array type from the main variant of the inner type.
5764
5765 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5766
5767         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
5768         definition to bool (from int) to un-break build.
5769         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
5770
5771 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
5772
5773         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
5774         discard_stmt_changes): Delete.
5775         * tree-ssa-operands.c (scb_stack): Delete.
5776         (init_ssa_operands): Do not initialize it.
5777         (fini_ssa_operands): Do not free it.
5778         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
5779
5780         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
5781         update_stmt, remove the others.  Fix comments.
5782         * tree-dfa.c (optimize_stack_restore): Likewise.
5783         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
5784         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
5785         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5786         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
5787         Likewise.
5788         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5789         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
5790         (dom_opt_finalize_block): Likewise, adjusting access to
5791         stmts_to_rescan.
5792         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
5793         (stmts_to_rescan): Change item type to gimple.
5794         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
5795
5796 2009-05-24  Ira Rosen  <irar@il.ibm.com>
5797
5798         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
5799         * tree-pass.h (pass_slp_vectorize): New pass.
5800         * params.h (SLP_MAX_INSNS_IN_BB): Define.
5801         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
5802         * tree-vectorizer.c (timevar.h): Include.
5803         (user_vect_verbosity_level): Declare.
5804         (vect_location): Fix comment.
5805         (vect_set_verbosity_level): Update user_vect_verbosity_level
5806         instead of vect_verbosity_level.
5807         (vect_set_dump_settings): Add an argument. Ignore user defined
5808         verbosity if dump flags require higher level of verbosity. Print to
5809         stderr only for loop vectorization.
5810         (vectorize_loops): Update call to vect_set_dump_settings.
5811         (execute_vect_slp): New function.
5812         (gate_vect_slp): Likewise.
5813         (struct gimple_opt_pass pass_slp_vectorize): New.
5814         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
5815         access its members.
5816         (vec_info_for_bb): New function.
5817         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
5818         (VECTORIZATION_ENABLED): New macro.
5819         (SLP_ENABLED, SLP_DISABLED): Likewise.
5820         (vect_is_simple_use): Add bb_vec_info argument.
5821         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
5822         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5823         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5824         vect_schedule_slp, vect_analyze_slp): Likewise.
5825         (vect_analyze_stmt): Add slp_tree argument.
5826         (find_bb_location): Declare.
5827         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
5828         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
5829         (vect_analyze_loop_operations, vect_analyze_loop,
5830         get_initial_def_for_induction, vect_create_epilog_for_reduction,
5831         vect_finalize_reduction, vectorizable_reduction,
5832         vectorizable_live_operation, vect_transform_loop): Likewise.
5833         * tree-data-ref.c (dr_analyze_innermost): Update comment,
5834         skip evolution analysis if analyzing a basic block.
5835         (dr_analyze_indices): Likewise.
5836         (initialize_data_dependence_relation): Skip the test whether the
5837         object is invariant for basic blocks.
5838         (compute_all_dependences): Skip dependence analysis for data
5839         references in basic blocks.
5840         (find_data_references_in_stmt): Don't fail in case of invariant
5841         access in basic block.
5842         (find_data_references_in_bb): New function.
5843         (find_data_references_in_loop): Move code to
5844         find_data_references_in_bb and add a call to it.
5845         (compute_data_dependences_for_bb): New function.
5846         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
5847         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
5848         that STEP is 0.
5849         (vect_analyze_data_ref_dependence): Check for interleaving in case of
5850         unknown dependence in basic block and fail in case of dependence in
5851         basic block.
5852         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
5853         dependence instances from either loop or basic block vectorization
5854         info.
5855         (vect_compute_data_ref_alignment): Check if it is loop vectorization
5856         before calling nested_in_vect_loop_p.
5857         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
5858         dependence instances from either loop or basic block vectorization
5859         info.
5860         (vect_verify_datarefs_alignment): Likewise.
5861         (vect_enhance_data_refs_alignment): Adjust function calls.
5862         (vect_analyze_data_refs_alignment): Likewise.
5863         (vect_analyze_group_access): Fix printing. Skip different checks if
5864         DR_STEP is 0. Keep strided stores either in loop or basic block
5865         vectorization data structure. Fix indentation.
5866         (vect_analyze_data_ref_access): Fix comments, allow zero step in
5867         basic blocks.
5868         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
5869         dependence instances from either loop or basic block vectorization
5870         info.
5871         (vect_analyze_data_refs): Update comment. Call
5872         compute_data_dependences_for_bb to analyze basic blocks.
5873         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
5874         case of loop vectorization. In case of basic block vectorization use
5875         data-ref itself as a base.
5876         (vect_create_data_ref_ptr): In case of basic block vectorization:
5877         don't advance the pointer, add new statements before the current
5878         statement.  Adjust function calls.
5879         (vect_supportable_dr_alignment): Support only aligned accesses in
5880         basic block vectorization.
5881         * common.opt (ftree-slp-vectorize): New flag.
5882         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
5883         (vect_pattern_recog_1): Likewise.
5884         * tree-vect-stmts.c (process_use): Likewise.
5885         (vect_init_vector): Add new statements in the beginning of the basic
5886         block in case of basic block SLP.
5887         (vect_get_vec_def_for_operand): Adjust function calls.
5888         (vect_finish_stmt_generation): Likewise.
5889         (vectorizable_call): Add assert that it is loop vectorization, adjust
5890         function calls.
5891         (vectorizable_conversion, vectorizable_assignment): Likewise.
5892         (vectorizable_operation): In case of basic block SLP, take
5893         vectorization factor from statement's type and skip the relevance
5894         check. Adjust function calls.
5895         (vectorizable_type_demotion): Add assert that it is loop
5896         vectorization, adjust function calls.
5897         (vectorizable_type_promotion): Likewise.
5898         (vectorizable_store): Check for outer loop only in case of loop
5899         vectorization. Adjust function calls. For basic blocks, skip the
5900         relevance check and don't advance pointers.
5901         (vectorizable_load): Likewise.
5902         (vectorizable_condition): Add assert that it is loop vectorization,
5903         adjust function calls.
5904         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
5905         that it is not reduction, get vector type, call only supported
5906         functions, skip loop specific parts.
5907         (vect_transform_stmt): Check for outer loop only in case of loop
5908         vectorization.
5909         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
5910         (vect_is_simple_use): Fix comment, add new argument, fix conditions
5911         for external definition.
5912         * passes.c (pass_slp_vectorize): New pass.
5913         * tree-vect-slp.c (find_bb_location): New function.
5914         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
5915         check for patterns only in loops.
5916         (vect_build_slp_tree): Add argument, adjust function calls, fail in
5917         case of multiple types in basic block SLP.
5918         (vect_mark_slp_stmts_relevant): New function.
5919         (vect_supported_load_permutation_p): Fix comment.
5920         (vect_analyze_slp_instance): Add argument. In case of basic block
5921         SLP, take vectorization factor from statement's type, check that
5922         unrolling factor is 1. Adjust function call. Save SLP instance in
5923         either loop or basic block vectorization structure. Return FALSE,
5924         if SLP failed.
5925         (vect_analyze_slp): Add argument. Get strided stores groups from
5926         either loop or basic block vectorization structure. Return FALSE
5927         if basic block SLP failed.
5928         (new_bb_vec_info): New function.
5929         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
5930         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
5931         (vect_schedule_slp): Add argument. Get SLP instances from either
5932         loop or basic block vectorization structure. Set vectorization factor
5933         to be 1 for basic block SLP.
5934         (vect_slp_transform_bb): New function.
5935         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
5936
5937 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
5938
5939         * final.c (shorten_branches): Do not align labels for jump tables.
5940         (final_scan_insn): Use JUMP_TABLE_DATA_P.
5941
5942 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5943
5944         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
5945         Remove outdated reference to flow.c and fix nits.
5946         * doc/gccint.texi: Tweak RTL description.
5947         * doc/rtl.texi: Likewise.
5948
5949 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
5950
5951         * config/avr/avr.c: Change my email address.
5952         * config/avr/avr.h: Likewise.
5953         * config/avr/avr.md: Likewise.
5954         * config/avr/avr-protos.h: Likewise.
5955         * config/avr/libgcc.S: Likewise.
5956
5957 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
5958
5959         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
5960         (spu_split_load, spu_split_store): Change return type to int.
5961         (spu_split_convert): Declare.
5962         * config/spu/predicates.md (spu_mem_operand): Remove.
5963         (spu_mov_operand): Update.
5964         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
5965         * config/spu/spu.c (regno_aligned_for_load): Remove.
5966         (reg_aligned_for_addr, spu_expand_load): Define.
5967         (spu_expand_extv): Reimplement and handle MEM.
5968         (spu_expand_insv): Handle MEM.
5969         (spu_sched_reorder): Handle insn's with length 0.
5970         (spu_legitimate_address_p): Reimplement.
5971         (store_with_one_insn_p): Return TRUE for any mode with size
5972         larger than 16 bytes.
5973         (address_needs_split): Define.
5974         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
5975         operands.
5976         (spu_convert_move): Define.
5977         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
5978         (spu_split_store): Change all MEM's to TImode.
5979         (spu_init_expanders): Preallocate registers that correspond to
5980         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
5981         mark_reg_pointer.
5982         (spu_split_convert): Define.
5983         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
5984         (_move<mode>, _movdi, _movti): Update predicate and condition.
5985         (load, store): Change to define_split.
5986         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
5987         extend<mode>ti2.
5988         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
5989         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
5990         define_insn_and_split of lshr<mode>3.
5991         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
5992         (<v>ashr<mode>3_imm): Define.
5993         (extv, extzv, insv): Allow MEM operands.
5994         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
5995         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
5996         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
5997         (_spu_convert2): Change to define_insn_and_split and remove the
5998         corresponding define_peephole2.
5999         (stack_protect_set, stack_protect_test, stack_protect_test_si):
6000         Change predicates to memory_operand.
6001
6002 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
6003
6004         * config/arm/thumb2.md: Add 16-bit multiply instructions.
6005
6006 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
6007
6008         PR tree-optimization/40219
6009         * tree.c (iterative_hash_expr): Make sure the builtin function is
6010         a normal builtin function and not a front end or back end builtin
6011         before indexing into the built_in_decls array.
6012
6013 2009-05-22  Richard Guenther  <rguenther@suse.de>
6014
6015         PR middle-end/38964
6016         * alias.c (write_dependence_p): Do not use TBAA for answering
6017         anti-dependence or output-dependence.
6018         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
6019         (emit_pointer_definition): Remove.
6020         (emit_alias_warning): Likewise.
6021         (find_what_var_points_to): Remove TBAA pruning code.
6022         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
6023         violations.
6024         (compute_points_to_sets): Remove code computing the set of
6025         dereferenced pointers.
6026         * tree-data-ref.c (dr_may_alias_p): Properly use the split
6027         oracle for querying anti and output dependencies.
6028         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
6029         if TBAA may be applied.
6030         (refs_anti_dependent_p): New function.
6031         (refs_output_dependent_p): Likewise.
6032         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
6033         (refs_output_dependent_p): Likewise.
6034         * doc/tree-ssa.texi (Memory model): New section.
6035         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
6036         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
6037         * cfgexpand.c (expand_gimple_basic_block): Do not handle
6038         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
6039         * expr.c (expand_expr_real_1): Likewise.
6040         * gimple-low.c (lower_stmt): Likewise.
6041         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
6042         (dump_gimple_cdt): Remove.
6043         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
6044         (gimple_size): Likewise.
6045         (walk_gimple_op): Likewise.
6046         (is_gimple_stmt): Likewise.
6047         (walk_stmt_load_store_addr_ops): Likewise.
6048         (gimple_build_cdt): Remove.
6049         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
6050         * gimple.h (gimple_cdt_new_type): Remove.
6051         (gimple_cdt_new_type_ptr): Likewise.
6052         (gimple_cdt_set_new_type): Likewise.
6053         (gimple_cdt_location): Likewise.
6054         (gimple_cdt_location_ptr): Likewise.
6055         (gimple_cdt_set_location): Likewise.
6056         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
6057         * tree-cfg.c (remove_useless_stmts_1): Do not handle
6058         GIMPLE_CHANGE_DYNAMIC_TYPE.
6059         (verify_types_in_gimple_stmt): Likewise.
6060         * tree-inline.c (estimate_num_insns): Likewise.
6061         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
6062         (copy_decl_to_var): Likewise.
6063         (copy_result_decl_to_var): Likewise.
6064         * tree-pretty-print.c (dump_generic_node): Do not handle
6065         CHANGE_DYNAMIC_TYPE_EXPR.
6066         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6067         * tree-ssa-operands.c (get_expr_operands): Likewise.
6068         * tree-ssa-structalias.c (struct variable_info): Remove
6069         no_tbaa_pruning member.
6070         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
6071         (unify_nodes): Do not copy it.
6072         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
6073         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
6074         (set_uids_in_ptset): Do not check it.
6075         (find_what_var_points_to): Likewise.
6076         (compute_tbaa_pruning): Remove.
6077         (compute_points_to_sets): Do not call it.
6078         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
6079         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
6080         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
6081         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
6082         (DECL_NO_TBAA_P): Likewise.
6083         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
6084         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
6085         (expand_omp_atomic_pipeline): Do not set it.
6086         * print-tree.c (print_node): Do not dump it.
6087         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6088         redundant check.
6089
6090 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
6091
6092         PR target/39856
6093         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
6094         for clobber.
6095
6096 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
6097
6098         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
6099         non-external.
6100
6101 2009-05-22  Ben Elliston  <bje@au.ibm.com>
6102
6103         * Makefile.in (bversion.h, s-bversion): New targets.
6104         (TOPLEV_H): Add bversion.h.
6105         * toplev.h: Include "bversion.h".
6106         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
6107         the __format__ attribute only if compiling with the same version
6108         of GCC as the sources (the "build version").
6109
6110 2009-05-22  Ben Elliston  <bje@au.ibm.com>
6111
6112         * c-format.c (handle_format_attribute): Fix comment typo.
6113
6114 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
6115
6116         PR target/37846
6117         * config/ia64/ia64.opt (mfused-madd): New.
6118         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
6119         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
6120         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
6121         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
6122         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
6123         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
6124         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
6125         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
6126         instruction if !TARGET_FUSED_MADD.
6127         (fpma, fpms): Remove colon from name.
6128
6129 2009-05-22  Richard Guenther  <rguenther@suse.de>
6130
6131         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
6132         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
6133         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
6134         TARGET_MEM_REF.
6135         (create_expression_by_pieces): Only convert if necessary.
6136         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
6137         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
6138
6139 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
6140
6141         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
6142         regular pattern from a template and rename it ...
6143         (*extzv_truncsi_exts): ... to this.
6144
6145 2009-05-21  Richard Guenther  <rguenther@suse.de>
6146
6147         * cgraph.h (struct cgraph_node): Remove inline_decl member.
6148         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
6149         (cgraph_default_inline_p): Likewise.
6150         (cgraph_decide_inlining_incrementally): Likewise.
6151
6152 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6153             Uros Bizjak  <ubizjak@gmail.com>
6154
6155         * config/i386/cpuid.h (bit_MOVBE): New.
6156
6157         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
6158
6159         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
6160         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
6161         (ix86_handle_option): Handle OPT_mmovbe.
6162         (ix86_target_string): Add -mmovbe.
6163         (pta_flags): Add PTA_MOVBE.
6164         (processor_alias_table): Add PTA_MOVBE to "atom".
6165         (override_options): Handle PTA_MOVBE.
6166
6167         * config/i386/i386.h (TARGET_MOVBE): New.
6168
6169         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
6170         (*bswapsi_movbe): New.
6171         (*bswapdi_movbe): Likewise.
6172         (bswapdi2): Renamed to ...
6173         (*bswapdi_1): This.
6174         (bswapdi2): New expander.
6175
6176         * config/i386/i386.opt (mmovbe): New.
6177
6178         * doc/invoke.texi: Document -mmovbe.
6179
6180 2009-05-21  Taras Glek  <tglek@mozilla.com>
6181
6182         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
6183         * gcc-plugin.h (plugin_init): Updated signature.
6184         * gcc-plugin.h (plugin_name_args): Moved to this header.
6185         * doc/plugins.texi (plugin_init): Updated documention to reflect
6186         API change.
6187         * doc/plugins.texi (plugin_name_args): Added to documention.
6188
6189 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
6190
6191         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
6192         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
6193
6194 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
6195
6196         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
6197         JUMP_TABLE_DATA_P predicates where applicable.
6198         * config/i386/predicates.md: Ditto.
6199         * config/i386/sse.md: Ditto.
6200
6201 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
6202
6203         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
6204         operand2 -128 override length_immediate attribute to 1.
6205         * config/i386/predicates.md (constm128_operand): New predicate.
6206
6207         * config/i386/i386.c (memory_address_length): Handle %r12
6208         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
6209         also check REGNO.
6210         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
6211         mode look through optional ZERO_EXTEND and SUBREG.
6212         * config/i386/i386.md (R12_REG): New define_constant.
6213         (prefix_data16): For sse unit set also for MODE_TI insns.
6214         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
6215         insns set if operand 1 is ext_QIreg_operand.
6216         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
6217         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
6218         immediate.
6219         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
6220         mode from MODE_DI to MODE_SI.
6221         (movdi_1_rex64): Override modrm and length_immediate attributes
6222         only for movabs (TYPE_IMOV, alternative 2).
6223         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
6224         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6225         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6226         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6227         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
6228         prefix_rex attribute if DImode.
6229         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
6230         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
6231         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
6232         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
6233         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
6234         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
6235         Likewise.  For TYPE_IMOV clear length_immediate attribute.
6236         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
6237         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
6238         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
6239         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
6240         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
6241         or one operand TYPE_ISHIFT.
6242         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
6243         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
6244         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
6245         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
6246         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
6247         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
6248         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
6249         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
6250         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
6251         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
6252         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
6253         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
6254         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
6255         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
6256         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
6257         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
6258         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
6259         set mode attribute, don't override length attribute.
6260         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
6261         to 1.
6262         (return_internal_long): Set length attribute to 2 instead of 1.
6263         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
6264         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
6265         prefix_rex attribute.
6266         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
6267         New predicates.
6268         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
6269
6270 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6271
6272         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
6273
6274 2009-05-20  Ian Lance Taylor  <iant@google.com>
6275
6276         * tree.c (build_tree_list_vec_stat): New function.
6277         (ctor_to_vec): New function.
6278         (build_nt_call_vec): New function.
6279         (build_call_array): Change args to be a const pointer.
6280         (build_call_vec): New function.
6281         * tree.h (build_nt_call_vec): Declare.
6282         (build_tree_list_vec_stat): Declare.
6283         (build_tree_list_vec): Define.
6284         (build_call_array): Update declaration.
6285         (build_call_vec): Declare.
6286         (ctor_to_vec): Declare.
6287         * c-common.c (tree_vector_cache): New static variable.
6288         (make_tree_vector): New function.
6289         (release_tree_vector): New function.
6290         (make_tree_vector_single): New function.
6291         (make_tree_vector_copy): New function.
6292         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
6293         (make_tree_vector_single, make_tree_vector_copy): Declare.
6294         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
6295         (c_parser_expr_list): Don't manage cache here, instead call
6296         make_tree_vector.
6297         (c_parser_release_expr_list): Remove static function.
6298         (c_parser_vec_to_tree_list): Remove static function.
6299         (c_parser_attributes): Call build_tree_list_vec instead of
6300         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
6301         c_parser_release_expr_list.
6302         (c_parser_postfix_expression_after_primary): Likewise.
6303         (c_parser_objc_keywordexpr): Likewise.
6304
6305 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6306
6307         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
6308         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
6309         TARGET_CONVERT_TO_TYPE.
6310         * hooks.c (hook_tree_const_tree_null): Define.
6311         * hooks.h (hook_tree_const_tree_null): Declare.
6312         * target.h (struct gcc_target):  Add invalid_parameter_type,
6313         invalid_return_type, promoted_type, and convert_to_type fields.
6314         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
6315         (TARGET_INVALID_RETURN_TYPE): Define.
6316         (TARGET_PROMOTED_TYPE): Define.
6317         (TARGET_CONVERT_TO_TYPE): Define.
6318         (TARGET_INITIALIZER): Update for new fields.
6319         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
6320         (grokparms): Check targetm.invalid_parameter_type.
6321         * c-typeck.c (default_conversion): Check targetm.promoted_type.
6322         * c-convert.c (convert): Check targetm.convert_to_type.
6323
6324 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
6325
6326         * config/mips/mips.md (*extenddi_truncate<mode>,
6327         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
6328         defintions.
6329         (*extendhi_truncateqi): New define_insn_and_sptit.
6330
6331 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR middle-end/40204
6334         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
6335         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6336
6337 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
6338
6339         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
6340         the operand of VIEW_CONVERT_EXPR.
6341
6342 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6343
6344         * config/i386/driver-i386.c (host_detect_local_cpu): Check
6345         extended family and model for Intel processors.  Support Intel Atom.
6346
6347 2009-05-20  Olivier Hainque  <hainque@adacore.com>
6348
6349         * gstab.h (stab_code_type): Define, to be used instead of the
6350         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
6351         notice.
6352         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
6353         occurrences by stab_code_type.
6354         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
6355
6356 2009-05-20  Martin Jambor  <mjambor@suse.cz>
6357
6358         * tree-flow.h (insert_edge_copies_seq): Undeclare.
6359         (sra_insert_before): Likewise.
6360         (sra_insert_after): Likewise.
6361         (sra_init_cache): Likewise.
6362         (sra_type_can_be_decomposed_p): Likewise.
6363         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
6364         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
6365         (sra_insert_before): Likewise.
6366         (sra_insert_after): Likewise.
6367         (sra_init_cache): Likewise.
6368         (insert_edge_copies_seq): Made static and moved upwards.
6369
6370         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
6371         case.
6372
6373         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
6374
6375         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
6376         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
6377         simple copies.
6378
6379 2009-05-20  Richard Guenther  <rguenther@suse.de>
6380
6381         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6382         with mismatched comparison modes.
6383
6384 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6385
6386         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
6387         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
6388         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
6389         with shifts for Thumb2.
6390         (orsi_notsi): New for orn.
6391         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
6392         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
6393         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
6394         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
6395         Don't invert remainder for IOR.
6396         
6397 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
6398
6399         PR tree-optimization/40087
6400         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
6401         number_of_iterations_ne): Rename never_infinite argument.
6402         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
6403         number_of_iterations_le): Handle pointer-type ivs when
6404         exit_must_be_taken is false.
6405         (number_of_iterations_cond):  Do not always assume that
6406         exit_must_be_taken if the control variable is a pointer.
6407
6408 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6409
6410         * c-typeck.c (build_binary_op): Allow % on integal vectors.
6411         * doc/extend.texi (Vector Extension): Document that % is allowed too.
6412
6413 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6414
6415         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
6416         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
6417
6418 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6419
6420         PR c/40172
6421         * c.opt (Wlogical-op): Disabled by default.
6422         * c-opt (c_common_post_options): Do not enable Wlogical-op with
6423         Wextra.
6424         * doc/invoke.texi (Wlogical-op): Likewise.
6425         
6426 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6427
6428         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
6429         into CASE_CONVERT.
6430         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
6431         Propagate the type of the first operand.
6432         <ASSERT_EXPR>: Simplify.
6433         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
6434         Rewrite using the RHS code as discriminant.
6435         <NOP_EXPR>: Turn into CASE_CONVERT.
6436         <PLUS_EXPR>: Propagate the type of the first operand.
6437
6438 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
6439
6440         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
6441         (ia64_dconst_0_375): New.
6442         * config/ia64/ia64.c (ia64_override_options): Remove
6443         -minline-sqrt-min-latency warning.
6444         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
6445         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
6446         * config/ia64/ia64.md (*sqrt_approx): Remove.
6447         (sqrtsf2): Remove #if 0.
6448         (sqrtsf2_internal_thr): Rewrite and move to div.md.
6449         (sqrtdf): Remove assert.
6450         (sqrtdf2_internal_thr): Rewrite and move to div.md.
6451         (sqrtxf2): Remove #if 0.
6452         (sqrtxf2_internal_thr): Rewrite and move to div.md.
6453         * div.md (sqrt_approx_rf): New.
6454         (sqrtsf2_internal_thr): New implementation.
6455         (sqrtsf2_internal_lat): New.
6456         (sqrtdf2_internal_thr: New implementation.
6457         (sqrtxf2_internal): New implementation.
6458
6459 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6460             Hans-Peter Nilsson  <hp@axis.com>
6461
6462         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
6463         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
6464         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
6465         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
6466         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
6467         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
6468         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
6469         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
6470         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
6471         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
6472         * c-common.c: ...from here.
6473
6474 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6475
6476         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
6477
6478 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6479
6480         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
6481
6482 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6483
6484         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
6485         assignments with memcpy calls.
6486         (add_fdes): Likewise.
6487         (binary_search_unencoded_fdes): Likewise.
6488         (linear_search_fdes): Eliminate type puns.
6489         
6490 2009-05-19  Richard Guenther  <rguenther@suse.de>
6491
6492         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
6493         not falsely claim to have propagated into all uses.
6494
6495 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6496
6497         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
6498         version to v3.0.
6499
6500 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6501
6502         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
6503         * config/sh/sh.c (sh_legitimate_address_p): Make static.
6504         (TARGET_LEGITIMATE_ADDRESS_P): New.
6505         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6506         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6507         
6508 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
6509
6510         PR debug/40109
6511         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
6512         child of the containing namespace's DIE.
6513
6514 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
6515
6516         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
6517         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
6518         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
6519         extend patterns.
6520
6521 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6522
6523         PR target/39942
6524         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
6525         gen_align with gen_pad.
6526         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
6527         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
6528
6529         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
6530         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
6531
6532         * config/i386/i386.md (align): Renamed to ...
6533         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
6534         ASM_OUTPUT_MAX_SKIP_PAD.
6535
6536 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
6537
6538         * config.gcc: Fix variable syntax.
6539
6540         PR target/39531
6541         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
6542         before calling exact_log2.
6543         (output_iorsi3): Likewise.
6544         (output_xorsi3): Likewise.
6545
6546 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6547
6548         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
6549         for the none zero constant operand except for EQ and NE
6550         comprisons even when the first operand is R0.
6551
6552 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6553
6554         * config/s390/2064.md: Remove trailing whitespaces.
6555         * config/s390/2084.md: Likewise.
6556         * config/s390/constraints.md: Likewise.
6557         * config/s390/fixdfdi.h: Likewise.
6558         * config/s390/libgcc-glibc.ver: Likewise.
6559         * config/s390/s390-modes.def: Likewise.
6560         * config/s390/s390-protos.h: Likewise.
6561         * config/s390/s390.c: Likewise.
6562         * config/s390/s390.h: Likewise.
6563         * config/s390/s390.md: Likewise.
6564         * config/s390/tpf-unwind.h: Likewise.
6565
6566 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6567
6568         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
6569
6570 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6571
6572         M68K TLS support.
6573         * configure.ac (m68k-*-*): Check if binutils support TLS.
6574         * configure: Regenerate.
6575         * config/m68k/predicates.md (symbolic_operand): Extend comment.
6576         * config/m68k/constraints.md (Cu): New constraint.
6577         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
6578         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
6579         (movsi): Handle TLS symbols.
6580         (addsi3_5200): Handle XTLS symbols, indent.
6581         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
6582         (m68k_tls_reference_p): Declare.
6583         (m68k_legitimize_address): Declare.
6584         (m68k_unwrap_symbol): Declare.
6585         * config/m68k/m68k.opt (mxtls): New option.
6586         * config/m68k/m68k.c (ggc.h): Include.
6587         (m68k_output_dwarf_dtprel): Implement hook.
6588         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
6589         (m68k_expand_prologue): Load GOT pointer when function needs it.
6590         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
6591         (m68k_legitimate_constant_address_p): Same.
6592         (m68k_decompose_address): Handle TLS references.
6593         (m68k_get_gp): New static function.
6594         (enum m68k_reloc): New contants.
6595         (TLS_RELOC_P): New macro.
6596         (m68k_wrap_symbol): New static function.
6597         (m68k_unwrap_symbol): New function.
6598         (m68k_final_prescan_insn_1): New static function.
6599         (m68k_final_prescan_insn): New function.
6600         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
6601         functions.
6602         (legitimize_pic_address): Handle TLS references..
6603         (m68k_tls_get_addr, m68k_get_tls_get_addr)
6604         (m68k_libcall_value_in_a0_p)
6605         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
6606         (m68k_call_m68k_read_tp): Helper variables and functions for ...
6607         (m68k_legitimize_tls_address): Handle TLS references.
6608         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
6609         New functions.
6610         (m68k_legitimize_address): Handle TLS symbols.
6611         (m68k_get_reloc_decoration): New static function.
6612         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
6613         UNSPEC_RELOC32.
6614         (m68k_output_dwarf_dtprel): Implement hook.
6615         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
6616         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
6617         m68k_call_* routines.
6618         (sched_attr_op_type): Handle TLS symbols.
6619         (gt-m68k.h): Include.
6620         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
6621         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
6622
6623 2009-05-18  Martin Jambor  <mjambor@suse.cz>
6624
6625         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
6626         (visit_store_addr_for_mod_analysis): New function.
6627         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
6628         (determine_cst_member_ptr): Use gimple_assign_single_p.
6629         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
6630         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
6631         operands.  Don't check number of operands of a NOP_EXPR.
6632
6633 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
6634
6635         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
6636
6637 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6638
6639         PR c/40172
6640         * c-common.c (warn_logical_operator): Don't warn if one of
6641         expression isn't always true or false.
6642
6643 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
6644
6645         * config/i386/biarch32.h: New file.
6646         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
6647
6648 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
6649
6650         * config/mips/mips.md (*zero_extend<mode>_trunchi,
6651         *zero_extend<mode>_truncqi): Merge these into ...
6652         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
6653         Name the pattern following this as *zero_extendhi_truncqi.
6654
6655 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
6656
6657         PR middle-end/39301
6658         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
6659         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
6660         (output_info): Make field HOST_WIDEST_INT.
6661         (print_statistics): Use HOST_WIDEST_INT_PRINT.
6662         (dump_bitmat_statistics): Same.
6663
6664 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6665
6666         * config.gcc (use_gcc_stdint):  Set to wrap.
6667         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6668         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6669         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6670         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6671         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6672         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6673         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6674         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6675
6676 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
6677
6678         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
6679         tune_64.
6680         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
6681         Move definitions earlier.
6682         (OPT_ARCH64, OPT_ARCH32): Define.
6683         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
6684         and tune_64.
6685
6686 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6687
6688         PR target/40153
6689         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
6690         implies.
6691
6692 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6693
6694         * arm.md (movdi2): Copy non-reg values to DImode registers.
6695
6696 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
6697
6698         PR target/39942
6699         * final.c (label_to_max_skip): New function.
6700         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
6701         CODE_LABEL_NUMBER <= max_labelno.
6702         * output.h (label_to_max_skip): New prototype.
6703         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
6704         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
6705         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
6706         Handle CODE_LABELs with >= 16 byte alignment or with
6707         max_skip == (1 << align) - 1.
6708         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
6709         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
6710
6711         PR target/39942
6712         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
6713         .p2align 3 if MAX_SKIP is smaller than 7.
6714         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
6715
6716 2009-05-15  Ian Lance Taylor  <iant@google.com>
6717
6718         * alias.c (struct alias_set_entry_d): Rename from struct
6719         alias_set_entry.  Change all uses.
6720         * except.c (struct call_site_record_d): Rename from struct
6721         call_site_record.  Change all uses.
6722         * except.h (struct eh_region_d): Rename from struct eh_region.
6723         Change all uses.
6724         * gcse.c (struct hash_table_d): Rename from struct hash_table.
6725         Change all uses.
6726         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
6727         ivtype_map_elt.  Change all uses.
6728         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
6729         Change all uses.
6730         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
6731         * graphite.h (struct name_tree_d): Rename from struct name_tree.
6732         Change all uses.
6733         (struct sese_d): Rename from struct sese.  Change all uses.
6734         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
6735         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
6736         * optabs.h (struct optab_d): Rename from struct optab.  Change all
6737         uses.
6738         (struct convert_optab_d): Rename from struct convert_optab.
6739         Change all uses.
6740         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
6741         ipa_opt_pass.  Change all uses.
6742         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
6743         all uses.
6744
6745         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
6746         defined as a typedef.
6747         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
6748         defined as a tag.
6749
6750 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6751
6752         PR 16302
6753         * fold-const.c (make_range,build_range_check,merge_ranges): Move
6754         declaration to...
6755         (merge_ranges): Returns bool. 
6756         * tree.h (make_range): .. to here.
6757         (build_range_check): Likewise.
6758         (merge_ranges): Likewise. Renamed from merge_ranges.
6759         * c-typeck.c (parser_build_binary_op): Update calls to
6760         warn_logical_operator.
6761         * c-common.c (warn_logical_operator): Add new warning.
6762         * c-common.h (warn_logical_operator): Update declaration.
6763         
6764 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6765
6766         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
6767         
6768 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6769
6770         * doc/install.texi: Document MPC requirements, flags etc.
6771
6772         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
6773         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
6774         Evaluate constant arguments.
6775         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
6776         (fold_builtin_1): Likewise, also evaluate constant arguments.
6777         Remove superfluous break.
6778         (do_mpc_ckconv): New.
6779         * real.h: Include mpc.h.
6780         * toplev.c (print_version): Output MPC version info if available.
6781
6782 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6783
6784         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
6785
6786 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6787
6788         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
6789         only once.
6790
6791 2009-05-15  Jan Hubicka  <jh@suse.cz>
6792
6793         * doc/invoke.texi (max-early-inliner-iterations): New flag.
6794         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
6795         (try_inline): Fix return value.
6796         (cgraph_decide_inlining_incrementally): Honor new value.
6797         (cgraph_early_inlining): Handle indirect inlining.
6798         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
6799
6800 2009-05-15  Jan Hubicka  <jh@suse.cz>
6801
6802         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
6803         * cgraphunit.c (cgraph_finalize_function): Set it.
6804         (cgraph_expand_function): Use it.
6805
6806 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6807
6808         * real.c (encode_ieee_half): Define.
6809         (decode_ieee_half): Define.
6810         (ieee_half_format): Define.
6811         (arm_half_format): Define.
6812         * real.h (ieee_half_format): Declare.
6813         (arm_half_format): Declare.
6814
6815 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6816
6817         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
6818         swapped, and reversed optabs exist before trying to use them.
6819
6820 2009-05-15  Paul Brook  <paul@codesourcery.com>
6821             Sandra Loosemore  <sandra@codesourcery.com>
6822
6823         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
6824         loads.  Allow PRE_DEC.
6825         (output_move_neon): Handle PRE_DEC.
6826         (arm_print_operand): Add 'A' for neon structure loads.
6827         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
6828         * config/arm/neon.md (neon_mov): Update comment.
6829         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
6830         calls.
6831         (Um): New constraint.
6832
6833 2009-05-15  Jan Hubicka  <jh@suse.cz>
6834
6835         Revert the following patch until testsuite fallout is fixed:
6836         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6837         * cgraph.h (struct inline_summary): New filed self_wize,
6838         size_inlining_benefit, self_time and time_inlining_benefit.
6839         (struct cgraph_global_info): Replace insns by time ans size fields.
6840         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6841         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6842         (ipcp_update_callgraph): Do not touch function bodies.
6843         * ipa-inline.c: Include except.h
6844         (MAX_TIME): New constant.
6845         (overall_insns): Remove
6846         (overall_size, max_benefit): New static variables.
6847         (cgraph_estimate_time_after_inlining): New function.
6848         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6849         (cgraph_clone_inlined_nodes): Update size.
6850         (cgraph_mark_inline_edge): Update size.
6851         (cgraph_estimate_growth): Use size info.
6852         (cgraph_check_inline_limits): Check size.
6853         (cgraph_default_inline_p): Likewise.
6854         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6855         (cgraph_decide_recursive_inlining): Check size.
6856         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6857         and times.
6858         (cgraph_decide_inlining): Likewise.
6859         (cgraph_decide_inlining_incrementally): Likewise; honor
6860         PARAM_EARLY_INLINING_INSNS.
6861         (likely_eliminated_by_inlining_p): New predicate.
6862         (estimate_function_body_sizes): New function.
6863         (compute_inline_parameters): Use it.
6864         * except.c (must_not_throw_labels): New function.
6865         * except.h (must_not_throw_labels): Declare.
6866         * tree-inline.c (init_inline_once): Kill inlining_weigths
6867         * tree-ssa-structalias.c: Avoid uninitialized warning.
6868         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6869         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6870         (PARAM_INLINE_CALL_COST): Remove.
6871         (PARAM_EARLY_INLINING_INSNS): New.
6872
6873 2009-05-15  Richard Guenther  <rguenther@suse.de>
6874
6875         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
6876         not TODO_update_ssa.
6877
6878 2009-05-15  Richard Guenther  <rguenther@suse.de>
6879
6880         PR tree-optimization/39999
6881         * gimple.h (gimple_expr_type): Use the expression type looking
6882         through useless conversions.
6883         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
6884         (vn_nary_op_insert_stmt): Likewise.
6885         (simplify_binary_expression): Likewise.
6886
6887 2009-05-15  Richard Guenther  <rguenther@suse.de>
6888
6889         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6890         New options, enabled by default.
6891         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6892         Document.
6893         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
6894         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
6895         * tree-ssa-structalias.c (gate_tree_pta): New function.
6896         (pass_build_alias): Use it.
6897
6898 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
6899
6900         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
6901         recurse on an invariant address if a conversion from a pointer
6902         type to a wider integer type is involved.
6903
6904 2009-05-15  Jan Hubicka  <jh@suse.cz>
6905
6906         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6907         * cgraph.h (struct inline_summary): New filed self_wize,
6908         size_inlining_benefit, self_time and time_inlining_benefit.
6909         (struct cgraph_global_info): Replace insns by time ans size fields.
6910         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6911         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6912         (ipcp_update_callgraph): Do not touch function bodies.
6913         * ipa-inline.c: Include except.h
6914         (MAX_TIME): New constant.
6915         (overall_insns): Remove
6916         (overall_size, max_benefit): New static variables.
6917         (cgraph_estimate_time_after_inlining): New function.
6918         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6919         (cgraph_clone_inlined_nodes): Update size.
6920         (cgraph_mark_inline_edge): Update size.
6921         (cgraph_estimate_growth): Use size info.
6922         (cgraph_check_inline_limits): Check size.
6923         (cgraph_default_inline_p): Likewise.
6924         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6925         (cgraph_decide_recursive_inlining): Check size.
6926         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6927         and times.
6928         (cgraph_decide_inlining): Likewise.
6929         (cgraph_decide_inlining_incrementally): Likewise; honor
6930         PARAM_EARLY_INLINING_INSNS.
6931         (likely_eliminated_by_inlining_p): New predicate.
6932         (estimate_function_body_sizes): New function.
6933         (compute_inline_parameters): Use it.
6934         * except.c (must_not_throw_labels): New function.
6935         * except.h (must_not_throw_labels): Declare.
6936         * tree-inline.c (init_inline_once): Kill inlining_weigths
6937         * tree-ssa-structalias.c: Avoid uninitialized warning.
6938         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6939         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6940         (PARAM_INLINE_CALL_COST): Remove.
6941         (PARAM_EARLY_INLINING_INSNS): New.
6942         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
6943         (inline-call-cost): Remove.
6944         (early-inlining-insns): New.
6945
6946 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
6947
6948         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
6949         for bounds.
6950         (print_int_cst_bounds_in_octal_p): Likewise.
6951         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
6952         with subtypes.
6953         * dwarf2out.c (base_type_die): Likewise.
6954         (is_subrange_type): Delete.
6955         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
6956         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
6957         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
6958         if the destination type is boolean.
6959         (build_range_check): Do not special-case subtypes.
6960         (fold_sign_changed_comparison): Likewise.
6961         (fold_unary): Likewise.
6962         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
6963         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
6964         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
6965         * tree.c (subrange_type_for_debug_p): New predicate based on the
6966         former is_subrange_type.
6967         * tree.h (subrange_type_for_debug_p): Declare.
6968         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
6969         (convert_affine_scev): Remove call to above function.
6970         (chrec_convert_aggressive): Likewise.
6971         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
6972         false for conversions involving subtypes.
6973         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
6974         (vrp_val_min): Likewise.
6975         (needs_overflow_infinity): Likewise.
6976         (extract_range_from_unary_expr): Likewise.
6977
6978 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
6979
6980         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6981         * config/frv/frv.c: Likewise.
6982         * config/s390/s390.c: Likewise.
6983         * config/sparc/sparc.h: Likewise.
6984         * config/i386/i386.h: Likewise.
6985         * config/i386/i386.c: Likewise.
6986         * config/crx/crx.c: Likewise.
6987         * config/m68hc11/m68hc11.h: Likewise.
6988         * config/iq2000/iq2000.c: Likewise.
6989         * config/mn10300/mn10300.h: Likewise.
6990         * config/mn10300/mn10300.c: Likewise.
6991         * config/m68k/m68k.c: Likewise.
6992         * config/rs6000/rs6000.c: Likewise.
6993         * config/rs6000/xcoff.h: Likewise.
6994         * config/rs6000/linux64.h: Likewise.
6995         * config/rs6000/sysv4.h: Likewise.
6996         * config/score/score3.c: Likewise.
6997         * config/score/score7.c: Likewise.
6998         * config/score/score.c: Likewise.
6999         * config/arm/arm.md: Likewise.
7000         * config/mips/mips.c: Likewise.
7001         * config/mips/mips.md: Likewise.
7002         * config/bfin/bfin.h: Likewise.
7003         * config/pa/pa.c: Likewise.
7004         * config/pa/constraints.md: Likewise.
7005
7006         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
7007         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
7008         * config/pdp11/pdp11.h: Use memory_address_p instead.
7009
7010 2009-05-14  Ian Lance Taylor  <iant@google.com>
7011
7012         * passes.c (finish_optimization_passes): Change i to int.
7013         * plugin.c (plugins_active_p): Change event to int.
7014         (dump_active_plugins): Likewise.
7015         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
7016         Add cast.
7017         * tree.c (tree_range_check_failed): Change c to unsigned int.
7018         (omp_clause_range_check_failed): Likewise.
7019         (build_common_builtin_nodes): Change mode to int.  Add cast.
7020         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
7021         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
7022
7023         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
7024         ++ or -- with a variable of enum type.
7025
7026 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7027
7028         PR driver/40144
7029         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
7030
7031 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7032
7033         * store-motion.c: Do not include params.h
7034         * Makefile.in: Fix dependencies for various files.
7035
7036 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7037
7038         * auto-inc-dec.c: Fix pass description, remove apparent
7039         accidental duplication.
7040
7041 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
7042
7043         PR middle-end/40147
7044         * ipa-utils.h (memory_identifier_string): Moved to ...
7045         * tree.h (memory_identifier_string): Here.  Add GTY(()).
7046
7047 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
7048
7049         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
7050         in the former documentation of...
7051         (GO_IF_LEGITIMATE_ADDRESS): ... this.
7052         * ira-conflicts.c (get_dup_num): Use address_operand.
7053         * targhooks.c (default_legitimate_address_p): New.
7054         * targhooks.h (default_legitimate_address_p): New.
7055         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
7056         Call hook.
7057         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
7058         * target.h (struct target): Add legitimate_address_p.
7059         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
7060         (TARGET_INITIALIZER): Include it.
7061
7062         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7063         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
7064         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
7065         (TARGET_LEGITIMATE_ADDRESS_P): New.
7066
7067         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7068         (REG_OK_STRICT_P): Delete.
7069         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
7070         (frv_legitimate_address_p_1): ... this.
7071         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
7072         (frv_legitimate_address_p_1): ... the renamed old
7073         frv_legitimate_address_p.
7074         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
7075         (TARGET_LEGITIMATE_ADDRESS_P): New.
7076
7077         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7078         * config/s390/s390-protos.h (legitimate_address_p): Remove.
7079         * config/s390/s390.c (legitimate_address_p): Rename to...
7080         (s390_legitimate_address_p): ... this, make static.
7081         (legitimize_address): Adjust call.
7082         (TARGET_LEGITIMATE_ADDRESS_P): New.
7083         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
7084
7085         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7086         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
7087         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
7088         (TARGET_LEGITIMATE_ADDRESS_P): New.
7089
7090         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7091         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
7092         * config/spu/spu.c (spu_legitimate_address): Rename to...
7093         (spu_legitimate_address_p): ... this, make static.
7094         (TARGET_LEGITIMATE_ADDRESS_P): New.
7095
7096         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7097         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
7098         * config/sparc/sparc.c (legitimate_address_p): Rename to...
7099         (sparc_legitimate_address_p): ... this, make static and return bool.
7100         (legitimize_address): Adjust call.
7101         (TARGET_LEGITIMATE_ADDRESS_P): New.
7102
7103         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7104         * config/i386/i386-protos.h (legitimate_address_p): Remove.
7105         * config/i386/i386.c (legitimate_address_p): Rename to...
7106         (ix86_legitimate_address_p): ... this, make static.
7107         (constant_address_p): Move after it, adjust call.
7108         (TARGET_LEGITIMATE_ADDRESS_P): New.
7109
7110         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7111         * config/avr/avr-protos.h (legitimate_address_p): Remove.
7112         * config/avr/avr.c (legitimate_address_p): Rename to...
7113         (avr_legitimate_address_p): ... this, make static.
7114         (legitimize_address): Adjust call.
7115         (TARGET_LEGITIMATE_ADDRESS_P): New.
7116
7117         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7118         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
7119         * config/crx/crx.c (crx_legitimate_address_p): Make static.
7120         (TARGET_LEGITIMATE_ADDRESS_P): New.
7121
7122         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7123         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
7124         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
7125         (TARGET_LEGITIMATE_ADDRESS_P): New.
7126
7127         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7128         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
7129         Remove.
7130         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7131         Make static.
7132         (TARGET_LEGITIMATE_ADDRESS_P): New.
7133
7134         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7135         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
7136         Remove.
7137         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
7138         Rename to...
7139         (m68hc11_legitimate_address_p): ... this, make static.
7140         (go_if_legitimate_address_internal): Rename to...
7141         (m68hc11_legitimate_address_p_1): ... this.
7142         (legitimize_address): Adjust call.
7143         (TARGET_LEGITIMATE_ADDRESS_P): New.
7144
7145         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7146         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
7147         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
7148         (TARGET_LEGITIMATE_ADDRESS_P): New.
7149
7150         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7151         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
7152         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
7153         (mn10300_legitimate_address_p): ... this, make static.
7154         (TARGET_LEGITIMATE_ADDRESS_P): New.
7155
7156         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7157         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
7158         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
7159         (TARGET_LEGITIMATE_ADDRESS_P): New.
7160
7161         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7162         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
7163         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
7164         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7165         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
7166         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
7167         (rs6000_legitimate_address_p): ... this, make static.
7168         (TARGET_LEGITIMATE_ADDRESS_P): New.
7169         (REG_MODE_OK_FOR_BASE_P): Delete.
7170         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
7171
7172         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7173         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
7174         Delete.
7175         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
7176         static, adjust types.
7177         (TARGET_LEGITIMATE_ADDRESS_P): New.
7178
7179         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7180         * config/score/score.c (score_address_p): Rename to...
7181         (score_legitimate_address_p): ... this.
7182         (TARGET_LEGITIMATE_ADDRESS_P): New.
7183         * config/score/score3.c (score3_address_p): Rename to...
7184         (score3_legitimate_address_p): ... this.
7185         * config/score/score7.c (score7_address_p): Rename to...
7186         (score7_legitimate_address_p): ... this.
7187
7188         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
7189         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
7190         GO_IF_LEGITIMATE_ADDRESS): Delete.
7191         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
7192         thumb2_legitimate_address_p): Delete.
7193         (arm_legitimate_address_p): Rename to...
7194         (arm_legitimate_address_outer_p): ... this.
7195         * config/arm/constraints.md ("Uq"): Adjust call.
7196         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
7197         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
7198         to...
7199         (arm_legitimate_address_outer_p): ... this.
7200         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
7201         static.
7202         (TARGET_LEGITIMATE_ADDRESS_P): New.
7203
7204         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7205         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
7206         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
7207         (TARGET_LEGITIMATE_ADDRESS_P): New.
7208
7209         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7210         * config/vax/vax-protos.h (legitimate_address_p): Remove.
7211         * config/vax/vax.c (legitimate_address_p): Rename to...
7212         (vax_legitimate_address_p): ... this, make static.
7213         (TARGET_LEGITIMATE_ADDRESS_P): New.
7214
7215         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7216         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
7217         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
7218         (TARGET_LEGITIMATE_ADDRESS_P): New.
7219
7220         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7221         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
7222         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
7223         (mmix_legitimate_address_p): ... this, make static.
7224         (TARGET_LEGITIMATE_ADDRESS_P): New.
7225
7226         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7227         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
7228         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
7229         (TARGET_LEGITIMATE_ADDRESS_P): New.
7230
7231 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
7232
7233         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
7234         of MODE_COMPLEX_INT.
7235
7236 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7237
7238         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
7239         LCT_NORMAL in function call.
7240         * mips-tdump.c (print_file_desc): Add cast to enum type.
7241         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
7242         (mark_stabs): Add casts to enum types.
7243         (parse_stabs_common): Add casts to enum types.
7244
7245 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
7246
7247         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
7248         Check for invalid values of LETTER.
7249
7250 2009-05-13  Taras Glek  <tglek@mozilla.com>
7251
7252         * attribs.c (register_attribute): moved out attribute registration
7253         into register_attribute.
7254         * doc/plugins.texi: Documented register_attribute and
7255         PLUGIN_ATTRIBUTES.
7256         * gcc-plugin.h: Added forward decl for register_attribute.
7257         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
7258         * plugin.c (register_callback, invoke_plugin_callbacks): Added
7259         PLUGIN_ATTRIBUTES boilerplate.
7260
7261 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7262
7263         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
7264         values even in sentinel and empty entries.
7265         (ms_printf_flag_specs):  Likewise.
7266         (ms_scanf_flag_specs):  Likewise.
7267         (ms_strftime_flag_specs):  Likewise.
7268         (ms_print_char_table):  Likewise.
7269         (ms_scan_char_table):  Likewise.
7270         (ms_time_char_table):  Likewise.
7271
7272 2009-05-13  Doug Kwan  <dougkwan@google.com>
7273
7274         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
7275
7276 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
7277
7278         * config/mips/mips.md (store): Add attributes for QI and HI.
7279         Update comment.
7280         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
7281         (truncdi<mode>2): ... this new pattern.
7282
7283 2009-05-13  Brad Hards  <bradh@kde.org>
7284
7285         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
7286
7287 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
7288             Ben Elliston <bje@au.ibm.com>
7289
7290         PR middle-end/40035
7291         * dse.c (check_mem_read_rtx): Guard against width == -1.
7292
7293 2009-05-13  Michael Matz  <matz@suse.de>
7294
7295         PR middle-end/39976
7296         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
7297         (trivially_conflicts_p): New function.
7298         (insert_backedge_copies): Use it.
7299
7300 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
7301
7302         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
7303         (handle_stdc_pragma): Use new enum constant names.
7304         (handle_pragma_float_const_decimal64): Ditto.
7305
7306 2009-05-13  Ian Lance Taylor  <iant@google.com>
7307
7308         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
7309         tree.def.
7310
7311 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
7312
7313         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
7314         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
7315         multilibs.
7316         * config/m68k/m68k.h (FL_UCLINUX): Define.
7317
7318 2009-05-13  Jan Hubicka  <jh@suse.cz>
7319
7320         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
7321
7322 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7323
7324         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
7325         unless -fschedule-insns is specified.
7326
7327 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7328
7329         PR target/39561
7330         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
7331         TARGET_EXPAND_CBRANCHDI4.
7332         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
7333         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
7334         (cmpeqdi): Fix comment.
7335
7336 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7337
7338         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
7339         (sh_legitimate_address_p): Likewise.
7340         * config/sh/sh.c (sh_legitimate_index_p): New.
7341         (sh_legitimate_address_p): Likewise.
7342         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
7343         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
7344         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
7345         (MAYBE_BASE_REGISTER_RTX_P): New macro.
7346         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
7347         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
7348         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
7349         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
7350         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
7351
7352 2009-05-12  Jan Hubicka  <jh@suse.cz>
7353
7354         * tree-inline.c (estimate_operator_cost): Add operands;
7355         when division happens by constant, it is cheap.
7356         (estimate_num_insns): Loads and stores are not having cost of 0;
7357         EH magic stuff is cheap; when computing runtime cost of switch,
7358         use log2 base of amount of its cases; builtin_expect has cost of 0;
7359         compute cost for moving return value of call.
7360         (init_inline_once): Initialize time_based flags.
7361         * tree-inline.h (eni_weights_d): Add time_based flag.
7362
7363 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7364
7365         * df-core.c: Update head documentation.
7366
7367 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7368
7369         PR bootstrap/40118
7370         * rs6000.c (rs6000_generate_compare): Use op1b instead of
7371         shadowing exisiting variable op1.
7372
7373 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
7374
7375         PR target/37179
7376         * config/i386/driver-i386.c (processor_signatures): New enum.
7377         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
7378         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
7379         processor signature to detect geode processor.
7380
7381 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7382
7383         Revert:
7384
7385         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7386
7387         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7388         causes spurious differences between trunk and cond-optab branch.
7389
7390 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7391
7392         * dojump.c (compare_from_rtx): Delete.
7393         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
7394         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
7395         if the comparison does not satisfy the predicate; test predicates for
7396         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
7397         further if one existing pattern fails.
7398         * expr.h (compare_from_rtx): Delete.
7399         (prepare_operand): Declare it.
7400         * optabs.c: Change "lib call" to "libcall" throughout.
7401         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
7402         HAVE_conditional_trap, emit_cmp_insn): Delete.
7403         (can_compare_p): Delete cmp_optab case.
7404         (prepare_float_lib_cmp): Return an rtx and a machine mode.
7405         Accept other parameters by value.
7406         (prepare_operand): Make non-static.
7407         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
7408         other parameters by value.  Try to widen operands here based on
7409         an optab_methods argument and looking at cbranch_optab.
7410         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
7411         loop.  Use cbranch_optab directly.
7412         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
7413         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
7414         assertion.
7415         (emit_conditional_move, emit_conditional_add): Inline what's needed
7416         of compare_from_rtx, using new prepare_cmp_insn for the rest.
7417         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
7418         with COMPARE.  Move cmov_optab and cstore_optab above
7419         with cbranch_optab, move cmp_optab down with ucmp_optab,
7420         remove tst_otpab.  Do not initialize trap_rtx.
7421         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
7422         for trap code.  Do not check HAVE_conditional_trap.  Use
7423         prepare_cmp_insn.  Accept no predicate for operand 3.
7424         * optabs.h (OTI_cmp): Mark as used only for libcalls.
7425         (OTI_ctrap, ctrap_optab): New.
7426         (tst_optab): Delete.
7427         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
7428         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
7429         with lookup of ctrap_optab.
7430         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
7431         Delete.
7432         (ctrap_optab): New.
7433
7434         * combine.c (combine_simplify_rtx, simplify_set): Do not
7435         special case comparing against zero for cc0 machines.
7436         * simplify-rtx.c (simplify_binary_operation_1): Never remove
7437         COMPARE on cc0 machines.
7438         (simplify_relational_operation): Return a new expression when
7439         a COMPARE could be removed.
7440         * final.c (final_scan_insn): Compare cc_status values
7441         against LHS of a (compare FOO (const_int 0)) cc0 source.
7442         Also check if cc_status.value is the full compare.
7443
7444         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
7445         (cstoreMM4): Document.
7446         (conditional_trap): Document ctrapMM4 instead.
7447         (sync_compare_and_swapMM): Refer to cbranchcc4.
7448         (Dependent Patterns): Eliminate obsolete information referring to
7449         the old jump optimization phase.
7450         (Canonicalization): Include cbranchcc4 case, omit canonicalization
7451         of compares with 0 on cc0 machines.
7452         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
7453         avoiding references to cc0.  Remove text about storing operands
7454         in cmpMM.
7455         * doc/tm.texi (Condition Codes): Include blurb on different
7456         condition code representations, separate into subsections for
7457         CC0, MODE_CC and conditional execution.
7458
7459         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
7460         alpha_emit_setcc): Accept operands and a machine mode.
7461         * config/alpha/alpha.c (alpha_emit_conditional_branch):
7462         Get code/op0/op1 from operands, use machine mode argument
7463         instead of alpha_compare.fp_p.  Emit the branch here.
7464         (alpha_emit_setcc): Likewise, and return boolean.
7465         (alpha_emit_conditional_move): Likewise.  Assert that
7466         cmp_op_mode == cmp_mode, and simplify accordingly.
7467         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
7468         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
7469         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
7470         Delete.
7471         (stack probe test): Use cbranchdi4.
7472         * config/alpha/predicates.md (alpha_cbranch_operator): New.
7473
7474         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
7475         * config/arc/arc.h (movsicc, movsfcc): Use it.
7476         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
7477         (cbranchsi4, cstoresi4): New.
7478         (cmpsi, bCC and sCC expanders): Remove. 
7479
7480         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
7481         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
7482         * config/arm/predicates.md (arm_comparison_operator): Only include
7483         floating-point operators if there is a hardware floating-point unit.
7484         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
7485         deferring to cbranch_cc and cstore_cc respectively.
7486         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
7487         cbranch_cc, cstore_cc): New.
7488         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
7489         arm_compare_op1.
7490         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
7491
7492         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
7493         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
7494         as an argument.
7495         (adjust_insn_length): Adjust calls.
7496         (avr_reorg): Handle (compare (foo) (const_int 0)).
7497         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
7498         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
7499         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
7500         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
7501         (bCC): Remove.
7502         (cbranchqi4, cbranchhi4, cbranchsi4): New.
7503         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
7504
7505         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
7506         (cbranchsi4, cstorebi4, cstoresi4): New.
7507         (movbisi): This insn is duplicate, split it to zero_extend.
7508         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
7509         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
7510         (bfin_optimize_loop): Use cbranch expander.
7511         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
7512         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
7513         (bfin_bimode_comparison_operator): ... this.
7514         (bfin_direct_comparison_operator): New.
7515  
7516         * config/cris/cris.c (cris_normal_notice_update_cc): Look
7517         inside (compare FOO (const_int 0)).
7518         (cris_rtx_costs): Handle ZERO_EXTRACT.
7519         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
7520         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
7521         (*tstdi_v32): Delete.
7522         (*cmpdi_non_v32): Add M alternative for operand 1.
7523         (cmpsi, cmp<mode>): Make private.
7524         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
7525         with COMPARE.
7526         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
7527
7528         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
7529         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
7530         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
7531         (cc_reg_operand): New.
7532         (any_cond): Delete.
7533         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
7534         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
7535         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
7536         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
7537         crx_expand_scond): Delete.
7538
7539         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
7540         (cbranchsi4): New.
7541         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
7542         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
7543
7544         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
7545         cstoresi4, cstoresf4, cstoredf4): New.
7546         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
7547         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7548         Receive the entire operands array.
7549         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
7550         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
7551         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7552         Get test/op0/op1 from the operands array.
7553         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
7554
7555         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
7556         (h8300_expand_store): New.
7557         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
7558         (const_int 0)).
7559         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
7560         (h8300_expand_store): New.
7561         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
7562         or do not try to produce (set (cc0) REG).
7563         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
7564         change a compare into a move to a scratch register.  Disable some
7565         peepholes when comparing with zero.
7566         (tstsi, tsthi, tstsi, cmpqi): Make private.
7567         (cmphi): Delete.
7568         (bCC, sCC): Delete.
7569         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
7570         cstoresi4): New.
7571
7572         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
7573         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
7574         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
7575         (ix86_emit_i387_log1p): Use cbranchxf2.
7576         (ix86_expand_setcc): Return void.
7577         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
7578         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
7579         cmp<MODEF>, cmpcc): Remove.
7580         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
7581         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
7582         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
7583         (sCC and bCC expanders): Remove.
7584         (stack_protect_test): Use cbranchcc4.
7585
7586         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
7587         Delete.
7588         (ia64_expand_compare): Accept three rtx by reference and return void.
7589         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
7590         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
7591         from *expr.  Update *expr with the BImode comparison to do.
7592         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
7593         cmptf, bCC, sCC, conditional_trap): Delete.
7594         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
7595         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
7596         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
7597         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
7598         * config/ia64/predicates.md (ia64_cbranch_operator): New.
7599
7600         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
7601         type of last argument.
7602         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
7603         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
7604         use machine mode argument instead of branch_type.  Remove dead
7605         code for floating-point comparisons.
7606         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
7607         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
7608         Remove.
7609         (cbranchsi4, cstoresi4): New.
7610         * config/iq2000/predicates.md (reg_or_const_operand): New.
7611
7612         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
7613         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
7614         (b<code>_op): Rewrite to...
7615         (bcc_op): ... this, using match_operator.
7616         (s<code>_op): Rewrite to...
7617         (scc_op): ... this, using match_operator.
7618         (s<code>_24_op): Rewrite to...
7619         (scc_op_24): ... this, using match_operator.
7620         (s<code>_<mode>): Rewrite to...
7621         (cstore<mode>4): ... this, using match_operator.
7622         (s<code>_<mode>_24): Rewrite to...
7623         (cstore<mode>4_24): ... this, using match_operator.
7624         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
7625         m32c_unpend_compare, m32c_expand_scc): Delete.
7626         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
7627         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
7628         (m32c_expand_movcc): Change NE to EQ if necessary.
7629         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
7630
7631         * config/m32r/m32r-protos.h (gen_cond_store): New.
7632         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
7633         (gen_cond_store): New, from sCC patterns.
7634         (m32r_expand_block_move): Use cbranchsi4.
7635         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
7636         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
7637         (cbranchsi4, cstoresi4): New.
7638         
7639         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
7640         Delete.
7641         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
7642         (m68hc11_notice_update_cc): Look into a compare with 0.
7643         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
7644         Delete.
7645         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
7646         cmphi, cmpqi, bCC): Delete.
7647         (cbranchsi4, cbranchhi4, cbranchqi4): New.
7648         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
7649         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
7650         sets with COMPARE.
7651
7652         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
7653         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
7654         * config/m68k/constraints.md (H): New.
7655         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
7656         the define_insn below.
7657         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
7658         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
7659         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
7660         patterns): Wrap RHS with COMPARE.
7661         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
7662         (*cmpdi_internal): Name this pattern.
7663         (cmpdi): Change to define_insn.
7664         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
7665         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
7666         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
7667         predicate.
7668         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
7669         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
7670         (conditional_trap): Change to...
7671         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
7672         (*conditional_trap): Use the ordered_comparison_operator and
7673         const1_operand predicates.
7674         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
7675         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
7676         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
7677         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
7678
7679         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
7680         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
7681         (mcore_gen_compare): New. 
7682         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
7683         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
7684         (mcore_gen_compare): ... this.
7685         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
7686         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
7687         (stack probe pattern): Use cbranchsi4.
7688
7689         * config/mips/predicates.md (mips_cstore_operator): New.
7690         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
7691         * config/mips/mips.md (any_cond): Delete.
7692         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
7693         always succeed.
7694         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
7695         fixuns_truncsfdi2): Use cbranch patterns.
7696         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
7697         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
7698         Adjust call to mips_expand_conditional_branch.
7699         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
7700         cstore<GPR:mode>4.
7701         * config/mips/mips-protos.h (mips_expand_conditional_branch,
7702         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
7703         * config/mips/mips.c (cmp_operands): Delete.
7704         (mips_emit_compare): Get comparison operands from *op0/*op1.
7705         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
7706         that it succeeds.  Use op0/op1 instead of cmp_operands.
7707         (mips_expand_conditional_branch, mips_expand_conditional_move,
7708         mips_expand_conditional_trap): Likewise.
7709         (mips_block_move_loop): Use cbranch patterns. 
7710         * config/mips/mips.h (cmp_operands): Delete.
7711
7712         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
7713         (mmix_gen_compare_reg): Just return a register in the right CC mode.
7714         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
7715         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
7716         (*cmpcc_folded): Rename to...
7717         (*cmpdi_folded): this.
7718         (*cmpcc): Rename to...
7719         (*cmps): ... this.
7720         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
7721         (bCC): Remove.
7722         (cbranchdi4): New.
7723         (cbranchdf4): New.  Handle invalid comparisons here.
7724         * config/mmix/predicates.md (float_comparison_operator): New.
7725
7726         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
7727         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
7728         * config/mn10300/mn10300.md (tst): Delete.
7729         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
7730         Name these patterns and wrap RHS in a compare.
7731         (*cmpsi): Make this pattern private.  Include tst.
7732         (*cmpsf): Make this pattern private.
7733         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
7734         (compare with zero peepholes): Likewise.
7735         (bCC): Remove.
7736         (cbranchsi4, cbranchsf4): New.
7737         (casesi): Use cbranchsi4.
7738
7739         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
7740         hppa_branch_type): Delete.
7741         (return_addr_rtx): Use cbranchsi4.
7742         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
7743         Emit CCFPmode comparison here.
7744         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
7745         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
7746         hppa_branch_type): Delete.
7747         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
7748         (movsicc, movdicc): Remove references to hppa_compare_op0,
7749         hppa_compare_op1 and compare_from_rtx.
7750         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
7751         (casesi): Use cbranchsi4.
7752
7753         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
7754         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
7755         * config/pdp11/pdp11.md (register_or_const0_operand): New.
7756         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
7757         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
7758         (bCC): Delete.
7759         (cbranchdf4, cbranchhi4, cbranchqi4): New.
7760         (*branch, *branch_inverted): New.
7761
7762         * config/picochip/picochip.md (cbranchhi4): Use
7763         ordered_comparison_operator.
7764         (cmphi, bCC): Remove.
7765
7766         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
7767         (trap_comparison_operator): Delete.
7768         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
7769         rs6000_emit_cbranch): Accept mode and operands.
7770         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
7771         rs6000_compare_fp_p): Delete.   
7772         (rs6000_generate_compare): Accept mode and comparison.  Extract code
7773         and op0/op1 from there.  Replace references to rs6000_compare_op0
7774         and rs6000_compare_op1.
7775         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
7776         extract result from passed operands.
7777         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
7778         extract loc from passed operands.
7779         (rs6000_emit_cmove): Likewise.
7780         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
7781         rs6000_compare_fp_p): Delete.
7782         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
7783         (cbranch<GPR>4, cbranch<FP>4): New.
7784         (cstore<mode>4): New.  Consolidate here all choices about when to use
7785         portable or specialized sCC sequences.
7786         (stack_protect_test): Use cbranchsi4.
7787         (conditional_trap): Replace with ctrap<GPR>4.
7788         (conditional trap insn): Replace trap_comparison_operator with
7789         ordered_comparison_operator. 
7790
7791         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
7792         (s390_emit_prologue): Use ctrap.
7793         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
7794         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
7795         New predicates replacing...
7796         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
7797         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
7798         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
7799         (add<mode>cc): Do not use s390_compare_op0/op1.
7800         (s<code>): Change to...
7801         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
7802         (seq): Change to...
7803         (cstorecc4): ... this.  Handle EQ or NE equally.
7804         (*sne): Un-privatize for use in cstorecc4.
7805         (b<code>): Change to...
7806         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
7807         (conditional_trap): Replace with...
7808         (ctrap<GPR>4, ctrap<FP>4): ... these.
7809         (stack_protect): Use cbranchcc4.
7810
7811         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
7812         * config/score/score-protos.h (score_gen_cmp): Delete.
7813         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
7814         (score_block_move-loop): Use cbranchsi4.
7815         * config/score/score.md (cbranchsi4): New.
7816         (cmpsi, bCC): Delete.
7817         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
7818         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7819         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
7820         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7821         * config/score/score3.h (score3_gen_cmp): Delete.
7822         * config/score/score7.h (score7_gen_cmp): Delete.
7823
7824         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
7825         (sh_emit_scc_to_t): ... this.  Return void.
7826         (from_compare): Rename to...
7827         (sh_emit_compare_and_branch): ... this.
7828         (sh_emit_compare_and_set): New.
7829         (sh_expand_t_scc): Accept operands.
7830         * config/sh/predicates.md (sh_float_comparison_operator): New.
7831         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
7832         (prepare_scc_operands): Rename to...
7833         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
7834         arguments.
7835         (sh_emit_cheap_store_flag): New.
7836         (sh_emit_set_t_insn): New.
7837         (from_compare): Rename to...
7838         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
7839         handling of TARGET_SH2E floating point to avoid recursive call.
7840         Generate branch here.
7841         (sh_emit_compare_and_set): New.
7842         (sh_expand_t_scc): Get op0/op1 from arguments.
7843         (sh_emit_cheap_store_flag): New.
7844         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
7845         cases.
7846         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
7847         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
7848         (movsicc, movdicc): Do nothing when it recreated operands from
7849         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
7850         prepare_scc_operands (now sh_emit_scc_to_t).
7851         (udivdi3): Use cstoresi4.
7852         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
7853         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
7854         (cbranchint4_media, cbranchfp4_media): New.
7855         (casesi): Use cbranchdi4.
7856         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
7857         Delete.
7858         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
7859         (movnegt): Remove second operand.
7860         (cbranchsf4, cbranchdf4): New.
7861         (stack_protect): Use cbranchdi4/cbranchsi4.
7862
7863         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
7864         (gen_compare_reg): Accept comparison, extract part of it to...
7865         (gen_compare_reg_1): ... this. 
7866         (gen_compare_operator): Delete.
7867         (gen_v9_scc): Accept separate destination, comparison code and arms.
7868         Do not use sparc_compare_op0/sparc_compare_op1.
7869         (emit_scc_insn, emit_conditional_branch_insn): New.
7870         (emit_v9_brxx): Make static.  Remove useless assertion.
7871         (sparc_emit_float_lib_cmp): Return RTL instead of calling
7872         emit_cmp_insn.
7873         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
7874         * config/sparc/sparc-protos.h (gen_compare_reg,
7875         sparc_emit_float_lib_cmp): Adjust prototype.
7876         (emit_scc_insn, emit_conditional_branch_insn): New.
7877         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
7878         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
7879         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
7880         iterators to the top.
7881         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
7882         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
7883         snedi_special_trunc): Delete.
7884         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
7885         and snedi_special_trunc.
7886         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
7887         cbranchdi4, cbranch<F:mode>4): New.
7888         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
7889         here.  Use gen_compare_reg instead of gen_compare_operator.
7890         (conditional_trap): Replace with...
7891         (ctrapsi4, ctrapdi4): ... this.
7892         (stack_protect_test): Use cbranchcc4.
7893
7894         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
7895         argument to rtx.
7896         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
7897         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
7898         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
7899         from operands[0] or operands[3] depending on is_set.
7900         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
7901         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
7902         cmpdf, bCC), sCC: Remove.
7903         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
7904         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
7905         cstoredf4): New.
7906         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
7907         spu_emit_branch_or_set.
7908
7909         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
7910         Add two arguments.
7911         * config/stormy16/stormy16.h (xstormy16_compare_op0,
7912         xstormy16_compare_op1): Delete.
7913         * config/stormy16/stormy16.c (xstormy16_compare_op0,
7914         xstormy16_compare_op1): Delete. 
7915         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
7916         Adjust calls.
7917         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
7918         (cmphi, cmpsi, bCC): Remove.
7919
7920         * config/v850/v850.md (tstsi, cmpsi): Fold into...
7921         (*cmpsi): ... this one.
7922         (cbranchsi4, cstoresi4): New.
7923         (bCC expanders): Delete.
7924         (sCC insns): Fold into...
7925         (*setcc): ... this one.
7926         (casesi): Do not use gen_cmpsi and gen_bgtu. 
7927         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
7928         (movsicc): Simplify.
7929         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
7930
7931         * config/vax/vax-protos.h (cond_name): New.
7932         (vax_output_conditional_branch): Remove.
7933         * config/vax/vax.c (cond_name): New.
7934         (vax_output_conditional_branch): Remove.
7935         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
7936         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
7937         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
7938         (bit<VAXint>): Wrap source with (compare).
7939         (b<code> and following unnamed pattern): Rename to *branch and
7940         *branch_reversed.  Change macroization to match_operator.
7941         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
7942
7943         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
7944         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
7945         Change last argument to machine_mode.
7946         (xtensa_expand_scc): Add machine_mode argument.
7947         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
7948         (gen_conditional_move, xtensa_expand_conditional_branch,
7949         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
7950         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
7951         Adjust operand numbers.
7952         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
7953         Delete.
7954         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
7955         (cmpsi, cmpsf, b<code>, s<code>): Delete.
7956         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
7957
7958 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7959
7960         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7961         causes spurious differences between trunk and cond-optab branch.
7962
7963 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
7964
7965         PR target/37137
7966         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
7967
7968 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
7969
7970         * tree.c (iterative_hash_pointer): Delete.
7971         (iterative_hash_expr): Short-circuit handling of NULL pointer.
7972         Hash UIDs and versions of SSA names.  Don't special-case built-in
7973         function declarations.
7974
7975 2009-05-11  Ian Lance Taylor  <iant@google.com>
7976
7977         PR bootstrap/40103
7978         * graphite.c: Force -Wc++-compat to only be a warning before
7979         #including "cloog/cloog.h".
7980
7981 2009-05-11  Martin Jambor  <mjambor@suse.cz>
7982
7983         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
7984         
7985 2009-05-11  Jan Hubicka  <jh@suse.cz>
7986
7987         * tree-ssa-loop-ivcanon.c: Include target.h
7988         (struct loop_size): new structure.
7989         (constant_after_peeling): New predicate.
7990         (tree_estimate_loop_size): New function.
7991         (estimated_unrolled_size): Rewrite for new estimates.
7992         (try_unroll_loop_completely): Use new estimates.
7993         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
7994
7995 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7996
7997         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
7998         libcpp interface change.
7999         (spu_macro_to_expand): Likewise.
8000
8001 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
8002
8003         PR tree-optimization/40026
8004         * gimplify.c (gimplify_init_constructor): Change initial conditional
8005         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
8006         optimize_compound_literals_in_ctor.
8007
8008 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
8009
8010         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
8011         New devices.
8012         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
8013
8014 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
8015
8016         * tree-vect-data-refs.c (vect_analyze_group_access): Use
8017         HOST_WIDE_INT for gap.
8018
8019 2009-05-11  Ira Rosen  <irar@il.ibm.com>
8020
8021         PR tree-optimization/40074
8022         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
8023         account in group size and step comparison.
8024
8025 2009-05-11  Richard Guenther  <rguenther@suse.de>
8026
8027         * passes.c (init_optimization_passes): Strip now incorrect comment.
8028         (execute_function_todo): Do not set PROP_alias.
8029         * tree-pass.h (PROP_alias): Remove.
8030         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
8031         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
8032         * tree-nrv.c (pass_return_slot): Likewise.
8033         * tree-object-size.c (pass_object_sizes): Likewise.
8034         * tree-ssa-dom.c (pass_dominator): Likewise.
8035         (pass_phi_only_cprop): Likewise.
8036         * tree-ssa-dse.c (pass_dse): Likewise.
8037         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
8038         (pass_cselim): Likewise.
8039         * tree-ssa-pre.c (pass_pre): Likewise.
8040         (pass_fre): Likewise.
8041         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
8042         * tree-ssa-sink.c (pass_sink_code): Likewise.
8043         * tree-stdarg.c (pass_stdarg): Likewise.
8044         * tree-tailcall.c (pass_tail_calls): Likewise.
8045         * tree-vrp.c (pass_vrp): Likewise.
8046
8047 2009-05-10  Ian Lance Taylor  <iant@google.com>
8048
8049         * basic-block.h (enum profile_status): Break out of struct
8050         control_flow_graph.
8051         * cgraph.h (struct inline_summary): Break out of struct
8052         cgraph_local_info.
8053         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
8054         of struct cgraph_order_sort.
8055         * combine.c (enum undo_kind): New enum, broken out of struct undo.
8056         * cse.c (struct branch_path): Break out of struct
8057         cse_basic_block_data.
8058         * except.h (enum eh_region_type): Break out of struct eh_region.
8059         * gcc.c (enum add_del): Break out of struct modify_target.
8060         * genrecog.c (enum decision_type): Break out of struct decision_test.
8061         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
8062         ggc_pch_data.
8063         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
8064         * regmove.c (enum match_use): New enum, broken out of struct match.
8065         * sched-int.h (enum post_call_group): New enum, broken out of
8066         struct deps.
8067         (struct deps_reg): Break out of struct deps.
8068         * target.h (struct asm_int_op): Break out of struct gcc_target.
8069         * tree-eh.c (struct goto_queue_node): Break out of struct
8070         leh_tf_state.
8071         * tree-inline.h (enum copy_body_cge_which): Break out of
8072         copy_body_data.
8073         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
8074
8075         * c-decl.c (in_struct, struct_types): New static variables.
8076         (pushtag): Add loc parameter.  Change all callers.
8077         (lookup_tag): Add ploc parameter.  Change all callers.
8078         (check_compound_literal_type): New function.
8079         (parser_xref_tag): Add loc parameter.  Change all callers.  If
8080         -Wc++-compat, warn about struct/union/enum types defined within a
8081         struct or union.
8082         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
8083         and loc parameters.  Change all callers.  Change error calls to
8084         error_at, using loc.  For a redefinition, if the location of the
8085         original definition is known, report it.  Set in_struct and
8086         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
8087         (finish_struct): Add new parameters enclosing_in_struct and
8088         enclosing_struct_types.  Change all callers.  Set
8089         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
8090         in the struct.  If in a struct, add this struct to struct_types.
8091         (start_enum): Add loc parameter.  Change all callers.  Use
8092         error_at for errors, using loc.  For a redefinition, if the
8093         location of the original definition is known, report it.  If in a
8094         struct, add this enum type to struct_types.  If -Wc++-compat warn
8095         if in sizeof, typeof, or alignof.
8096         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
8097         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
8098         (c_parser_enum_specifier): Get enum location for start_enum.
8099         (c_parser_struct_or_union_specifier): Get struct location for
8100         start_struct.  Save in_struct and struct_types status between
8101         start_struct and finish_struct.
8102         (c_parser_cast_expression): Get location of cast.
8103         (c_parser_alignof_expression): Get location of type.
8104         (c_parser_postfix_expression): Likewise.
8105         (c_parser_postfix_expression_after_paren_type): Add type_loc
8106         parameter.  Change all callers.  Call check_compound_literal_type.
8107         Use type_loc for error about variable size type.
8108         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
8109         of an enum constant from an enum type defined in a struct or union.
8110         (c_cast_expr): Add loc parameter.  Change all callers.  If
8111         -Wc++-compat, warn about defining a type in a cast.
8112         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
8113         (start_enum, start_struct, finish_struct): Update declarations.
8114         (parser_xref_tag, c_cast_expr): Update declarations.
8115         (check_compound_literal_type): Declare.
8116
8117 2009-05-11  Ben Elliston  <bje@au.ibm.com>
8118
8119         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
8120         for recent libcpp interface change.
8121         (rs6000_macro_to_expand): Likewise.
8122
8123 2009-05-10  Michael Matz  <matz@suse.de>
8124
8125         PR target/40031
8126         * config/arm/arm.c (require_pic_register): Emit on entry edge,
8127         not at entry of function.
8128
8129 2009-05-10  Richard Guenther  <rguenther@suse.de>
8130
8131         PR tree-optimization/40081
8132         Revert
8133         * tree-sra.c (instantiate_element): Instantiate scalar replacements
8134         using the main variant of the element type.  Do not fiddle with
8135         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8136
8137         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
8138         structs with volatile fields.
8139
8140 2009-05-10  Jan Hubicka  <jh@suse.cz>
8141
8142         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
8143         (estimate_move_cost): Assert that it does not get called for
8144         VOID_TYPE_P.
8145         (estimate_num_insns): Skip VOID types in argument handling.
8146         (optimize_inline_calls): Delete unreachable blocks and verify that
8147         callgraph is valid.
8148
8149 2009-05-10  Jan Hubicka  <jh@suse.cz>
8150
8151         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
8152         * cgraph.c (cgraph_mark_address_taken_node): New function.
8153         (dump_cgraph_node): Dump new flag.
8154         * cgraph.h (struct cgraph_node): Add address_taken.
8155         (cgraph_mark_address_taken_node): New function.
8156         * ipa.c (cgraph_postorder): Prioritize functions with address taken
8157         since new direct calls can be born.
8158
8159 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8160
8161         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
8162         tok->val.node.node.
8163
8164 2009-05-10  Jan Hubicka  <jh@suse.cz>
8165
8166         PR middle-end/40084
8167         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
8168         argument; rewrite.
8169         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
8170         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
8171         * tree-inline.c (copy_bb): Set frequency correctly.
8172         (fold_marked_statements): Update call to
8173         cgraph_update_edges_for_call_stmt.
8174
8175 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8176
8177         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
8178         identifiers in diagnostics.
8179         * config/arm/arm.c (arm_handle_fndecl_attribute,
8180         arm_handle_isr_attribute): Likewise.
8181         * config/avr/avr.c (avr_handle_progmem_attribute,
8182         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
8183         * config/bfin/bfin.c (handle_int_attribute,
8184         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
8185         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
8186         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
8187         Likewise.
8188         * config/darwin.c (darwin_handle_kext_attribute,
8189         darwin_handle_weak_import_attribute): Likewise.
8190         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
8191         h8300_handle_eightbit_data_attribute,
8192         h8300_handle_tiny_data_attribute): Likewise.
8193         * config/i386/i386.c (ix86_handle_cconv_attribute,
8194         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
8195         * config/i386/winnt.c (ix86_handle_shared_attribute,
8196         ix86_handle_selectany_attribute): Likewise.
8197         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
8198         * config/m32c/m32c.c (function_vector_handler): Likewise.
8199         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
8200         m68hc11_handle_fntype_attribute): Likewise.
8201         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
8202         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
8203         * config/mips/mips.c (mips_insert_attributes,
8204         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
8205         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
8206         rs6000_handle_struct_attribute): Likewise.
8207         * config/sh/sh.c (sh_insert_attributes,
8208         sh_handle_resbank_handler_attribute,
8209         sh_handle_interrupt_handler_attribute,
8210         sh2a_handle_function_vector_handler_attribute,
8211         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
8212         Likewise.
8213         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
8214         * config/spu/spu.c (spu_handle_fndecl_attribute,
8215         spu_handle_vector_attribute): Likewise.
8216         * config/stormy16/stormy16.c
8217         (xstormy16_handle_interrupt_attribute): Likewise.
8218         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
8219         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
8220
8221 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8222
8223         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
8224         (pp_translate_identifiers): New.
8225         (pp_identifier): Only conditionally translate identifier to locale
8226         character set.
8227         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
8228         (pp_base_tree_identifier): Only conditionally translate identifier
8229         to locale character set.
8230         * c-pretty-print.c (M_): Define.
8231         (pp_c_type_specifier, pp_c_primary_expression): Mark English
8232         fragments for conditional translation with M_.
8233         * tree-pretty-print.c (maybe_init_pretty_print): Disable
8234         identifier translation.
8235
8236 2009-05-10  Richard Guenther  <rguenther@suse.de>
8237
8238         PR tree-optimization/40081
8239         * tree-sra.c (instantiate_element): Instantiate scalar replacements
8240         using the main variant of the element type.  Do not fiddle with
8241         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8242
8243 2009-05-09  Jan Hubicka  <jh@suse.cz>
8244
8245         PR middle-end/40080
8246         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
8247         indirect calls; verify cgraph afterwards.
8248
8249 2009-05-09  Jan Hubicka  <jh@suse.cz>
8250
8251         PR bootstrap/40082
8252         * ipa.c (update_inlined_to_pointer): New function.
8253         (cgraph_remove_unreachable_nodes): Use it.
8254
8255 2009-05-09  Jan Hubicka  <jh@suse.cz>
8256
8257         * tree-eh.c (struct leh_state): Remove prev_try.
8258         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
8259         not track prev_try.
8260         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
8261         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
8262         remove_eh_handler_and_replace, foreach_reachable_handler,
8263         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
8264         * except.h (struct eh_region): Remove eh_region_u_cleanup.
8265         (gen_eh_region_cleanup): Update prototype.
8266
8267 2009-05-09  Jan Hubicka  <jh@suse.cz>
8268
8269         PR middle-end/40043
8270         * except.c (copy_eh_region): Always set prev_try.
8271         (redirect_eh_edge_to_label): Find outer try.
8272         (foreach_reachable_handler): When looking for prev try
8273         handle case where previous try is not going to be taken.
8274
8275 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
8276
8277         PR tree-optimization/40049
8278         * tree-vect-stmts.c (vectorizable_operation): If the machine has
8279         only vector/vector shifts, convert the type of the constant to the
8280         appropriate type to avoid building incorrect trees, which
8281         eventually have problems with garbage collection.
8282
8283 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8284
8285         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
8286         -1 for complex floating-point types if honoring signed zeros.
8287
8288 2009-05-08  Jan Hubicka  <jh@suse.cz>
8289
8290         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
8291         argument; handle correctly when profile is absent.
8292         (build_cgraph_edges): Update.
8293         (rebuild_cgraph_edges): Update.
8294         * cgraph.c: Do not include varray.h.
8295         (cgraph_set_call_stmt_including_clones): New function.
8296         (cgraph_create_edge_including_clones): Likewise
8297         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
8298         (cgraph_update_edges_for_call_stmt): Handle clones.
8299         (cgraph_remove_node): Handle clone tree.
8300         (cgraph_remove_node_and_inline_clones): New function.
8301         (dump_cgraph_node): Dump clone tree.
8302         (cgraph_clone_node): Handle clone tree.
8303         (clone_function_name): Bring here from tree-inline.c.
8304         (cgraph_create_virtual_clone): New function.
8305         * cgraph.h (ipa_replace_map): Move here from ipa.h.
8306         (cgraph_clone_info): New function.
8307         (strut cgraph_node): Add clone_info and new clone tree pointers.
8308         (cgraph_remove_node_and_inline_clones,
8309         cgraph_set_call_stmt_including_clones,
8310         cgraph_create_edge_including_clones,
8311         cgraph_create_virtual_clone): Declare.
8312         (cgraph_function_versioning): Use VEC argument.
8313         (compute_call_stmt_bb_frequency): Update prototype.
8314         (cgraph_materialize_all_clones): New function.
8315         * ipa-cp.c (ipcp_update_cloned_node): Remove.
8316         (ipcp_create_replace_map): Update to VECtors.
8317         (ipcp_update_callgraph): Use virtual clones.
8318         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
8319         (ipcp_update_profiling): Do not update local profiling.
8320         (ipcp_insert_stage): Use VECtors and virtual clones.
8321         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
8322         (clone_of_p): New function.
8323         (cgraph_preserve_function_body_p): Use clone tree.
8324         (cgraph_optimize): Materialize clones.
8325         (cgraph_function_versioning): Update for VECtors.
8326         (save_inline_function_body): Use clone tree.
8327         (cgraph_materialize_clone): New function.
8328         (cgraph_materialize_all_clones): Likewise.
8329         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
8330         * ipa.c: Include gimple.h.
8331         (cgraph_remove_unreachable_nodes): Use clone tree.
8332         * ipa-prop.c (ipa_note_param_call): Update call to
8333         compute_call_stmt_bb_frequencycall.
8334         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
8335         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
8336         (copy_bb): Handle updating of clone tree; add new edge when new call
8337         appears.
8338         (expand_call_inline): Be strict about every call having edge.
8339         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
8340         (delete_unreachable_blocks_update_callgraph): New function.
8341         (tree_function_versioning): Use VECtors; always remove unreachable
8342         blocks and fold conditionals.
8343         * tree-inline.h: Do not include varray.h.
8344         (tree_function_versioning): Remove.
8345         * Makefile.in (GTFILES): Remove tree-inline.c
8346         * passes.c (do_per_function): Do only functions having body.
8347         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
8348         tree.
8349
8350 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
8351             Andrew Morrow  <acm@google.com>
8352
8353         PR c/36892
8354         * c-common.c (c_common_attribute_table): Permit deprecated
8355         attribute to take an optional argument.
8356         (handle_deprecated_attribute): If the optional argument to
8357         __attribute__((deprecated)) is not a string ignore the attribute
8358         and emit a warning.
8359
8360         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
8361         * c-typeck.c (build_component_ref): Likewise.
8362         (build_external_ref): Likewise.
8363
8364         * toplev.c (warn_deprecated_use): Add an attribute argument.
8365         Emit the message associated with __attribute__((deprecated)).
8366
8367         * toplev.h (warn_deprecated_use): Updated.
8368
8369         * doc/extend.texi: Document new optional parameter to
8370         __attribute__((deprecated))
8371
8372 2009-05-08  Michael Eager <eager@eagercon.com>
8373
8374         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
8375         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
8376
8377 2009-05-08  Richard Guenther  <rguenther@suse.de>
8378
8379         PR tree-optimization/40062
8380         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
8381         Avoid exponential behavior.
8382
8383 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8384
8385         PR rtl-optimization/33928
8386         PR 26854
8387         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
8388         process_uses, build_single_def_use_links): New.
8389         (update_df): Update use_def_ref.
8390         (forward_propagate_into): Use get_def_for_use instead of use-def
8391         chains.
8392         (fwprop_init): Call build_single_def_use_links and let it initialize
8393         dataflow.
8394         (fwprop_done): Free use_def_ref.
8395         (fwprop_addr): Eliminate duplicate call to df_set_flags.
8396         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
8397         df_rd_simulate_one_insn): New.
8398         (df_rd_bb_local_compute_process_def): Update head comment.
8399         (df_chain_create_bb): Use the new RD simulation functions.
8400         * df.h (df_rd_simulate_artificial_defs_at_top, 
8401         df_rd_simulate_one_insn): New.
8402         * opts.c (decode_options): Enable fwprop at -O1.
8403         * doc/invoke.texi (-fforward-propagate): Document this.
8404
8405 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8406
8407         PR c/24581
8408         * c-typeck.c (build_binary_op): Handle arithmetic between one real
8409         and one complex operand specially.
8410         * tree-complex.c (some_nonzerop): Do not identify a real value as
8411         zero if flag_signed_zeros.
8412
8413 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8414
8415         PR rtl-optimization/33928
8416         * loop-invariant.c (record_use): Fix && vs. || mishap.
8417
8418 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8419
8420         PR rtl-optimization/33928
8421         * loop-invariant.c (struct use): Add addr_use_p.
8422         (struct def): Add n_addr_uses.
8423         (struct invariant): Add cheap_address.
8424         (create_new_invariant): Set cheap_address.
8425         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
8426         (record_uses): Pass df_ref to record_use.
8427         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
8428         used only as such.
8429
8430 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8431
8432         * config/sh/sh.c: Do not include c-pragma.h.
8433
8434 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8435
8436         * config/spu/spu.c: Remove include of c-common.h.
8437
8438 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
8439
8440         PR c/39037
8441         * c-common.h (mark_valid_location_for_stdc_pragma,
8442         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
8443         clear_float_const_decimal64, float_const_decimal64_p): New.
8444         * c.opt (Wunsuffixed-float-constants): New.
8445         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
8446         unsuffixed float constant, handle new warning.
8447         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
8448         * c-decl.c (c_scope): New flag float_const_decimal64.
8449         (set_float_const_decimal64, clear_float_const_decimal64,
8450         float_const_decimal64_p): New.
8451         (push_scope): Set new flag.
8452         * c-parser.c (c_parser_translation_unit): Mark when it's valid
8453         to use STDC pragmas.
8454         (c_parser_external_declaration): Ditto.
8455         (c_parser_compound_statement_nostart): Ditto.
8456         * c-pragma.c (valid_location_for_stdc_pragma,
8457         mark_valid_location_for_stdc_pragma,
8458         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
8459         handle_pragma_float_const_decimal64): New.
8460         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
8461         * cp/semantics.c (valid_location_for_stdc_pragma_p,
8462         set_float_const_decimal64, clear_float_const_decimal64,
8463         float_const_decimal64_p): New dummy functions.
8464         * doc/extend.texi (Decimal Float): Remove statement that the
8465         pragma, and suffix for double constants, are not supported.
8466         * doc/invoke.texi (Warning Options): List new option.
8467         (-Wunsuffixed-float-constants): New.
8468
8469 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
8470
8471         * config/i386/i386.c: Do not include c-common.h.
8472
8473 2009-05-07  Mark Heffernan  <meheff@google.com>
8474
8475         * doc/invoke.texi (Debugging Options): Document change of debugging
8476         dump location.
8477         * opts.c (decode_options): Make dump_base_name relative to
8478         aux_base_name directory.
8479
8480 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
8481
8482         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
8483         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
8484
8485 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
8486
8487         * Makefile.in (install-plugin): Simplify a bit.
8488
8489 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
8490
8491         * Makefile.in (OBJS-common): Add regcprop.o.
8492         (regcprop.o): New.
8493         * timevar.def (TV_CPROP_REGISTERS): New.
8494         * regrename.c (regrename_optimize): Return 0.
8495         (rest_of_handle_regrename): Delete.
8496         (pass_rename_registers): Point to regrename_optimize.
8497         (struct value_data_entry, struct value_data, 
8498         kill_value_one_regno, kill_value_regno, kill_value,
8499         set_value_regno, init_value_data, kill_clobbered_value,
8500         kill_set_value, kill_autoinc_value, copy_value,
8501         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
8502         replace_oldest_value_reg, replace_oldest_value_addr,
8503         replace_oldest_value_mem, copyprop_hardreg_forward_1,
8504         debug_value_data, validate_value_data): Move...
8505         * regcprop.c: ... here.
8506         (rest_of_handle_cprop): Delete.
8507         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
8508
8509 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
8510
8511         PR middle-end/40057
8512         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
8513         GEN_INT for 1 << bitnum.
8514         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
8515         build_int_cst_type.
8516
8517 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
8518
8519         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
8520         Remove wrong description of "nand" operation.
8521
8522 2009-05-06  Richard Guenther  <rguenther@suse.de>
8523             Adam Nemet  <anemet@caviumnetworks.com>
8524
8525         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
8526         comment.  Add that if LHS is not a gimple register, then RHS1 has
8527         to be a single object (GIMPLE_SINGLE_RHS).
8528
8529 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
8530
8531         * expr.c (get_def_for_expr): Move it up in the file.
8532         (store_field): When expanding a bit-field store, look at the
8533         defining gimple stmt for the masking conversion.
8534
8535 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
8536
8537         PR middle-end/39986
8538         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
8539         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
8540         32-bit memcpy into long.
8541
8542 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
8543
8544         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
8545         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
8546         new_reg_loc_descr.
8547         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
8548         instead of appending DW_OP_deref*.
8549
8550 2009-05-06  Michael Matz  <matz@suse.de>
8551
8552         PR middle-end/40021
8553         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
8554         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
8555
8556 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
8557
8558         * Makefile.in (install-plugin): Fix srcdir handling.
8559
8560 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
8561
8562         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
8563         when processing for not_regs_needed bitmap.
8564         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
8565         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
8566         handling it for rhs. 
8567
8568 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8569
8570         * config/i386/i386.md (unnamed inc/dec peephole): Use
8571         optimize_insn_for_size_p instead of optimize_size.
8572         * config/i386/predicates.md (incdec_operand): Likewise.
8573         (aligned_operand): Likewise.
8574         * config/i386/sse.md (divv8sf3): Likewise.
8575         (sqrtv8sf2): Likewise.
8576
8577 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8578
8579         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
8580
8581         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
8582
8583 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8584
8585         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
8586         ssemodesuffixf2c with avxmodesuffixf2c.
8587
8588 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
8589
8590         PR c/40032
8591         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
8592
8593 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
8594
8595         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
8596         (struct tree_base): Adjust spacing for 8 bit boundaries.
8597         (struct tree_decl_common): Add decl_by_reference_flag bit.
8598         (DECL_BY_REFERENCE): Adjust.
8599         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
8600         print DECL_BY_REFERENCE bit.
8601         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
8602         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
8603         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
8604         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
8605         unconditionally.
8606
8607         PR middle-end/39666
8608         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
8609         range of the type, but default label is missing, add it with one
8610         of the existing labels instead of adding a new label for it.
8611
8612 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
8613
8614         * dwarf.h: Remove.
8615
8616 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
8617
8618         * Makefile.in (enable_plugin, plugin_includedir): New.
8619         (install): Depend on install-plugin.
8620         (PLUGIN_HEADERS): New.
8621         (install-plugin): New.
8622         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
8623
8624 2009-05-05  Richard Guenther  <rguenther@suse.de>
8625
8626         PR tree-optimization/40022
8627         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
8628         the only vuse.
8629         (phivn_valid_p): Fix tuplification error, simplify.
8630         (phiprop_insert_phi): Add dumps.
8631         (propagate_with_phi): Simplify.
8632
8633 2009-05-05  Richard Guenther  <rguenther@suse.de>
8634
8635         PR middle-end/40023
8636         * builtins.c (gimplify_va_arg_expr): Properly build the address.
8637
8638 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
8639
8640         * tree.h (strip_float_extensions): Remove duplicate declaration.
8641         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
8642         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
8643         block_ultimate_origin): Rearrange the declarations line to match the
8644         comment that indicates the .c file which the functions are defined.
8645         (dwarf2out_*, set_decl_rtl): Add comment.
8646         (get_base_address): Adjust comment.
8647         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
8648         declarations line and add comment.
8649         (is_builtin_name): Add blank after function name, for clarity.
8650
8651 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8652
8653         * attribs.c (decl_attributes): Use %qE for identifiers in
8654         diagnostics.
8655         * cgraphunit.c (verify_cgraph_node): Translate function names to
8656         locale character set in diagnostics.
8657         * coverage.c (get_coverage_counts): Use %qE for identifiers in
8658         diagnostics.
8659         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
8660         Document that functions are named in UTF-8.
8661         * expr.c (expand_expr_real_1): Translate function names to locale
8662         character set in diagnostics.
8663         * gimplify.c (omp_notice_variable, omp_is_private,
8664         gimplify_scan_omp_clauses): Use %qE for identifiers in
8665         diagnostics.
8666         * langhooks.c (lhd_print_error_function): Translate function names
8667         to locale character set.
8668         * langhooks.h (decl_printable_name): Document that return value is
8669         in internal character set.
8670         * stmt.c: Include pretty-print.h
8671         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
8672         diagnostics.
8673         (resolve_operand_name_1): Translate named operand name to locale
8674         character set.
8675         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
8676         diagnostics.
8677         * toplev.c (announce_function): Translate function names to locale
8678         character set.
8679         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
8680         (default_tree_printer): Use pp_identifier or translate identifiers
8681         to locale character set.  Mark "<anonymous>" for translation.
8682         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
8683         for identifiers in diagnostics.
8684         * tree.c (handle_dll_attribute): Use %qE for identifiers in
8685         diagnostics.
8686         * varasm.c (output_constructor): Use %qE for identifiers in
8687         diagnostics.
8688
8689 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
8690
8691         * configure.ac: use ` ` instead of $()
8692         * configure: Regenerate.
8693
8694 2009-05-05  Ben Elliston  <bje@au.ibm.com>
8695
8696         * config/pa/linux-atomic.c: Eliminate conditional include of
8697         errno.h on non-LP64 systems to simplify build requirements.
8698
8699 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8700
8701         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
8702         diagnostics.
8703         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
8704         and pass value to identifier_to_locale.
8705         (warn_variable_length_array): Make name a tree.
8706         (grokdeclarator): Separate diagnostic texts for named and unnamed
8707         declarators.  Use %qE for named declarators.
8708         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
8709         diagnostics.
8710         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
8711         identifiers in diagnostics.
8712         * c-typeck.c (push_member_name, start_init): Pass identifiers to
8713         identifier_to_locale.  Mark "anonymous" strings for translation.
8714
8715 2009-05-04  Michael Eager <eager@eagercon.com>
8716
8717         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
8718         address for DImode/DFmode only if double-precision FP regs.
8719
8720 2009-05-04  Michael Eager <eager@eagercon.com>
8721
8722         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
8723         TARGET_SINGLE_FLOAT check.
8724
8725 2009-05-04  Michael Eager <eager@eagercon.com>
8726
8727         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
8728
8729 2009-05-04  Michael Eager <eager@eagercon.com>
8730
8731         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
8732         * config/rs6000/t-xilinx: New
8733
8734 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
8735
8736         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
8737         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
8738         * gcc/explow.c (memory_address): Use target hook.
8739         * gcc/targhooks.c (default_legitimize_address): New.
8740         * gcc/targhooks.h (default_legitimize_address): New.
8741         * gcc/target.h (legitimize_address): New.
8742         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
8743         (TARGET_INITIALIZER): Include it.
8744         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
8745
8746         * config/bfin/bfin-protos.h (legitimize_address): Remove.
8747         * config/bfin/bfin.c (legitimize_address): Remove.
8748         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
8749         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
8750         Remove.
8751         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
8752         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
8753
8754         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
8755         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
8756         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
8757         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
8758         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
8759         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
8760         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
8761         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
8762         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
8763         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
8764         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
8765         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
8766         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
8767         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
8768         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
8769         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
8770         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
8771         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
8772         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
8773         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
8774         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
8775         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
8776         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
8777
8778         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
8779         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
8780         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
8781         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
8782         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
8783         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
8784         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
8785         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
8786         (thumb_legitimize_address): Delete.
8787         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
8788         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
8789         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
8790         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
8791         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
8792         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
8793         Delete.
8794         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
8795         Delete.
8796
8797         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
8798         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
8799         * config/m32r/m32r.c (m32r_legitimize_address): New.
8800         * config/m68k/m68k.c (m68k_legitimize_address): New.
8801         * config/score/score.c (score_legitimize_address): Standardize.
8802         * config/score/score3.c (score3_legitimize_address): Standardize.
8803         * config/score/score3.h (score3_legitimize_address): Adjust.
8804         * config/score/score7.c (score7_legitimize_address): Standardize.
8805         * config/score/score7.h (score7_legitimize_address): Adjust.
8806         * config/sh/sh.c (sh_legitimize_address): New.
8807         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
8808
8809         * gcc/config/s390/s390.c (legitimize_address): Rename to...
8810         (s390_legitimize_address): ... this.
8811         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
8812         (sparc_legitimize_address): ... this.
8813         * gcc/config/i386/i386.c (legitimize_address): Rename to...
8814         (ix86_legitimize_address): ... this.
8815         * gcc/config/avr/avr.c (legitimize_address): Rename to...
8816         (avr_legitimize_address): ... this.
8817         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
8818         (mn10300_legitimize_address): ... this.
8819         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
8820         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
8821         (alpha_expand_mov): Adjust call.
8822
8823         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
8824         * config/spu/spu.c (spu_legitimize_address): Likewise.
8825         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
8826         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
8827
8828 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8829
8830         * intl.c (locale_encoding, locale_utf8): New.
8831         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
8832         * intl.h (locale_encoding, locale_utf8): Declare.
8833         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
8834         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
8835         New.
8836         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
8837         argument.
8838         (pp_tree_identifier): Define to call pp_base_tree_identifier.
8839         (pp_base_tree_identifier): Declare as function.
8840         (identifier_to_locale): Declare.
8841         * Makefile.in (pretty-print.o): Update dependencies.
8842         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
8843
8844 2009-05-04  Richard Guenther  <rguenther@suse.de>
8845
8846         PR middle-end/40015
8847         * builtins.c (fold_builtin_memory_op): Do not decay to element
8848         type if the size matches the whole array.
8849
8850 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8851
8852         * expmed.c (synth_mult): When trying out a shift, pass the result
8853         of a signed shift.
8854
8855 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8856
8857         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
8858         (shiftsub1_cost): New.
8859         (init_expmed): Compute shiftsub1_cost.
8860         (synth_mult): Optimize multiplications by constants of the form
8861         -(2^^m-1) for some constant positive integer m.
8862
8863 2009-05-03  Richard Guenther  <rguenther@suse.de>
8864
8865         PR c/39983
8866         * c-typeck.c (array_to_pointer_conversion): Do not built
8867         ADDR_EXPRs of arrays of pointer-to-element type.
8868         * c-gimplify.c (c_gimplify_expr): Revert change fixing
8869         up wrong ADDR_EXPRs after-the-fact.
8870         * c-common.c (strict_aliasing_warning): Strip pointer
8871         conversions for obtaining the original type.
8872         * builtins.c (fold_builtin_memset): Handle array types.
8873         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
8874         and array types
8875
8876 2009-05-03  Richard Guenther  <rguenther@suse.de>
8877
8878         PR middle-end/23329
8879         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
8880         Do not lose casts from array types with unknown extent to array
8881         types with known extent.
8882         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
8883         alias set compatibility.
8884
8885 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8886
8887         * flags.h (extra_warnings): Delete.
8888         * toplev.c (process_options): Handle Wuninitialized here.
8889         * opts.c (extra_warnings): Delete.
8890         (set_Wextra): Delete.
8891         (common_handle_option): -Wextra can be handled automatically.
8892         * c-opts.c (c_common_handle_option): Delete obsolete code.
8893         (c_common_post_options): Simplify comment.
8894         * common.opt (W): Add Var.
8895         (Wextra): Add Var.
8896         (Wuninitialized): Initialize to -1.
8897
8898 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
8899             Richard Guenther  <rguenther@suse.de>
8900
8901         * expr.c (get_def_for_expr): New function.
8902         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
8903         SSA rather than trees.
8904         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
8905         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
8906         
8907 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
8908
8909         * c-common.c (reswords): Add _Imaginary.
8910         * c-common.c (enum rid): Add RID_IMAGINARY.
8911
8912 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
8913
8914         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
8915         Patch by Richard Guenther.
8916
8917 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
8918
8919         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
8920         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
8921         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
8922         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
8923         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
8924         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
8925         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
8926         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
8927         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
8928         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
8929         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
8930         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
8931         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
8932         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
8933         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
8934         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
8935         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
8936         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
8937
8938 2009-05-02  Richard Guenther  <rguenther@suse.de>
8939
8940         PR tree-optimization/39940
8941         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
8942         doing so.
8943
8944 2009-05-02  Richard Guenther  <rguenther@suse.de>
8945
8946         PR middle-end/40001
8947         * tree-ssa.c (execute_update_addresses_taken): Properly check
8948         if we can mark a variable DECL_GIMPLE_REG_P.
8949         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
8950         back to the end of the function.
8951         (is_gimple_reg_type): Remove complex type special casing.
8952         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
8953         if not optimizing.
8954
8955 2009-05-02  Ben Elliston  <bje@au.ibm.com>
8956
8957         * doc/collect2.texi (Collect2): Document search path behaviour
8958         when configured with --with-ld.
8959
8960 2009-05-02  Jan Hubicka  <jh@suse.cz>
8961
8962         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
8963         parameter; update callers.
8964         (coalesce_cost_edge): EH edges are costier because they needs
8965         splitting even if not critical and even more costier when there are
8966         multiple EH predecestors.
8967
8968 2009-05-02  Jan Hubicka  <jh@suse.cz>
8969
8970         * except.c (remove_eh_handler_and_replace): Handle updating after
8971         removing TRY blocks.
8972
8973 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8974
8975         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
8976
8977 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
8978
8979         * varasm.c: Do not include c-pragma.h.
8980         * attribs.c: Do not incude c-common.h.
8981
8982 2009-05-01  Michael Matz  <matz@suse.de>
8983
8984         * calls.c (initialize_argument_information): Handle SSA names like
8985         decls with a non MEM_P DECL_RTL.
8986
8987 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
8988
8989         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
8990         * ipa-utils.c: Likewise.
8991         * ipa-type-escape.c: Likewise.
8992         * cgraphunit.c Do not include c-common.h.
8993         * ipa-pure-const.c: Likewise.
8994         * tree-if-conv.c: Likewise.
8995         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
8996         * ipa-struct-reorg.c: Likewise.
8997         * tree-nomudflap.c: Likewise.
8998         * tree-ssa-structalias.c: Likewise.
8999
9000 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
9001
9002         * store-motion.c: Many cleanups to make this pass a first-class
9003         citizen instead of an appendix to gcse load motion.  Add TODO list
9004         to make this pass faster/cleaner/better.
9005
9006         (struct ls_expr): Post gcse.c-split cleanups.
9007         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
9008         "stores" field to "avail_stores".
9009         (pre_ldst_mems): Rename to store_motion_mems.
9010         (pre_ldst_table): Rename to store_motion_mems_table.
9011         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
9012         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
9013         (ldst_entry): Rename to st_expr_entry, update users.
9014         (free_ldst_entry): Rename to free_st_expr_entry, update users.
9015         (free_ldst_mems): Rename to free_store_motion_mems, update users.
9016         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
9017         update caller.
9018         (first_ls_expr): Rename to first_st_expr, update users.
9019         (next_ls_expr): Rename to next_st_expr, update users.
9020         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
9021         fields properly for store motion instead of names inherited from load
9022         motion in gcse.c.
9023         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
9024         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
9025         are done with it.
9026
9027         (ae_kill): Rename to st_kill, update users.
9028         (ae_gen): Rename to st_avloc, update users.
9029         (transp): Rename to st_transp, update users.
9030         (pre_insert_map): Rename to st_insert_map, update users.
9031         (pre_delete_map): Rename to st_delete_map, update users.
9032         (insert_store, build_store_vectors, free_store_memory,
9033         one_store_motion_pass): Update for abovementioned changes.
9034
9035         (gcse_subst_count, gcse_create_count): Remove.
9036         (one_store_motion_pass): New statistics counters "n_stores_deleted"
9037         and "n_stores_created", local variables.
9038
9039         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
9040         use for_each_rtx.
9041
9042         (regvec, compute_store_table_current_insn): Remove.
9043         (reg_set_info, reg_clear_last_set): Remove.
9044         (compute_store_table): Use DF caches instead of local dataflow
9045         solvers.
9046
9047 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
9048
9049         * c-objc-common.c (c_tree_printer): Print identifiers with
9050         pp_identifier, not pp_string.  Mark "({anonymous})" for
9051         translation.
9052         * c-pretty-print.c (pp_c_ws_string): New.
9053         (pp_c_cv_qualifier, pp_c_type_specifier,
9054         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
9055         pp_c_storage_class_specifier, pp_c_function_specifier,
9056         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
9057         pp_c_primary_expression, pp_c_postfix_expression,
9058         pp_c_unary_expression, pp_c_shift_expression,
9059         pp_c_relational_expression, pp_c_equality_expression,
9060         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
9061         use pp_string and pp_c_ws_string in place of pp_identifier and
9062         pp_c_identifier for non-identifiers.  Mark English strings for
9063         translation.
9064         * c-pretty-print.h (pp_c_ws_string): Declare.
9065
9066 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
9067             Roland McGrath <roland@redhat.com>
9068
9069         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
9070         (ENABLE_LD_BUILDID): New configuration option.
9071         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
9072         (LINK_BUILDID_SPEC): New macro.
9073         (init_spec): If defined, prepend it between LINK_EH_SPEC and
9074         link_spec.
9075         * doc/install.texi: Document --enable-linker-build-id option.
9076         * configure: Rebuild.
9077         * config.in: Rebuild.
9078
9079 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
9080
9081         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
9082         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
9083         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
9084         MIPS_GP_SAVE_AREA_SIZE.
9085         * config/mips/mips.c (struct mips_frame_info): Update comment
9086         before arg_pointer_offset and hard_frame_pointer_offset.
9087         (mips_compute_frame_info): Update diagram before function: to
9088         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
9089         indicate the position of frame_pointer_rtx with -fstack-protector and
9090         to show args_size.  Don't allocate cprestore area for leaf functions
9091         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
9092         cprestore_size.
9093         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
9094
9095 2009-04-30  Michael Matz  <matz@suse.de>
9096
9097         PR tree-optimization/39955
9098         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
9099
9100 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
9101
9102         * ira.c (setup_cover_and_important_classes):  Use safe macro
9103         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
9104         directly.
9105         * genpreds.c (write_tm_preds_h):  Output suitable definition of
9106         REG_CLASS_FOR_CONSTRAINT.
9107
9108 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
9109
9110         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
9111         instead of an int.
9112         * bitmap.c (bitmap_descriptor): Likewise.
9113         * ggc-common.c (loc_descriptor): Likewise.
9114         * varray.c (varray_descriptor): Likewise.
9115         * vec.c (vec_descriptor): Likewise.
9116
9117 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
9118
9119         * Makefile.in (dce.o): Add $(EXCEPT_H).
9120         * dce.c: Include except.h and delete redundant vector definitions.
9121         (deletable_insn_p): Return false for non-call insns that can throw
9122         if DF is running.
9123
9124 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
9125
9126         * gcse.c (ae_gen): Remove.
9127         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
9128         and make non-static function to make it available in store-motion.c.
9129         Update call sites with search-and-replace.
9130         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
9131         extract_mentioned_regs, extract_mentioned_regs_helper,
9132         find_moveable_store, compute_store_table, load_kills_store, find_loads,
9133         store_killed_in_insn, store_killed_after, store_killed_before,
9134         build_store_vectors, insert_insn_start_basic_block, insert-store,
9135         remove_reachable_equiv_notes, replace_store_insn, delete_store,
9136         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
9137         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
9138         * store-motion.c: ...new file.  Also copy data structures from gcse.c
9139         and clean up to remove parts not used by store motion.
9140         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
9141         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
9142
9143 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9144
9145         PR target/38571
9146         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
9147         when optimizing for size.
9148
9149 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
9150
9151         * gcse.c (gcse_constant_p): Fix typo in last change.
9152
9153 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
9154
9155         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
9156
9157 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9158
9159         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
9160
9161 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
9162
9163         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
9164         CONST_HIGH_PART result.
9165
9166 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
9167
9168         * config/avr/avr.c (initial_elimination_offset): Rename to
9169         avr_initial_elimination_offset.
9170         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
9171         change return type to bool.
9172         (avr_can_eliminate): New function.
9173         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
9174         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
9175         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
9176         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
9177         avr_initial_elimination_offset.
9178         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
9179         (avr_initial_elimination_offset): Define.
9180
9181 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9182             Steven Bosscher  <steven@gcc.gnu.org>
9183
9184         PR rtl-optimization/39938
9185         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
9186         * cfgrtl.c: Include insn-attr.h.
9187         (rest_of_pass_free_cfg): New function.
9188         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
9189         * resource.c (init_resource_info): Remove call to df_analyze.
9190
9191 2009-04-29  Richard Guenther  <rguenther@suse.de>
9192
9193         PR target/39943
9194         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
9195         allow conversion to signed integers.
9196
9197 2009-04-29  Richard Guenther  <rguenther@suse.de>
9198
9199         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
9200         shifts of floating point vectors if the shift amount is
9201         a constant multiple of the element size.
9202
9203 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
9204             Michael Matz  <matz@suse.de>
9205
9206         PR middle-end/39927
9207         PR bootstrap/39929
9208         * tree-outof-ssa.c (emit_partition_copy): New function.
9209         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
9210         insert_part_to_rtx_on_edge): Perform the partition base var
9211         copy using emit_partition_copy.
9212         (insert_value_copy_on_edge): Convert constants to the right mode.
9213         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
9214         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
9215
9216 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9217
9218         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
9219         scan backwards to try to find a constant to initialize it.
9220
9221         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
9222         insn before the loop_end instruction, don't look past labels.
9223
9224 2009-04-29  Richard Guenther  <rguenther@suse.de>
9225
9226         PR middle-end/39937
9227         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
9228         loose type conversions.
9229         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
9230         stmts only if there are no uses of its definition.
9231
9232 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9233
9234         * config/bfin/bfin.h (splitting_loops): Declare.
9235         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
9236         Reorder bit definitions to be ascending.
9237         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
9238         * config/bfin/bfin.c (splitting_loops): New variable.
9239         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
9240         (struct loop_info): Remove members INIT and LOOP_INIT.
9241         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
9242         the LSETUP sequence.  Allow LC to be loaded from any register, but
9243         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
9244         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
9245         set to 1.
9246         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
9247         of reload_completed.
9248
9249         From Jie Zhang:
9250         * config/bfin/bfin.md (movsi_insn): Refine constraints.
9251
9252 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
9253
9254         * Makefile.in (PLUGIN_VERSION_H): New.
9255         (OBJS-common): Remove plugin-version.o.
9256         (plugin.o): Depend on (PLUGIN_VERSION_H).
9257         (plugin-version.o): Remove.
9258         * configure: Regenerate
9259         * configure.ac: Create plugin-version.h.
9260         * gcc-plugin.h (plugin_gcc_version): Remove.
9261         (plugin_default_version_check): Change signature.
9262         * plugin-version.c: Remove.
9263         * plugin.c: Include plugin-version.h.
9264         (str_plugin_gcc_version_name): Remove.
9265         (try_init_one_plugin): Pass gcc version to plugin_init.
9266         (plugin_default_version_check): Both gcc and plugin versions are now
9267         arguments.
9268
9269 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9270         
9271         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
9272         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
9273         Remove special case testing for last insn of inner loops. Don't fail
9274         if the loop ends with a jump, emit an extra nop instead.
9275
9276         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
9277         DREGS rather than comparing directly.  Remove code that tries to
9278         account for latencies.
9279
9280 2009-04-29  Richard Guenther  <rguenther@suse.de>
9281
9282         PR tree-optimization/39941
9283         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
9284         eliminating an indirect call.
9285
9286 2009-04-29  Richard Guenther  <rguenther@suse.de>
9287
9288         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
9289         parameter.  Allow invariants as base if !require_lvalue.
9290         (verify_gimple_assign_single): Adjust.
9291
9292 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9293
9294         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
9295         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
9296         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
9297         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
9298         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
9299         a VEC_SELECT.
9300         * config/bfin/bfin.c (bfin_expand_builtin,
9301         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
9302
9303 2009-04-28  Richard Guenther  <rguenther@suse.de>
9304
9305         * tree-vect-loop.c (get_initial_def_for_induction): Use
9306         correct types for pointer increment.
9307
9308 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9309
9310         * toplev.c (print_version): Update GMP version string calculation.
9311
9312 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9313
9314         PR rtl-optimization/39938
9315         * resource.c (init_resource_info): Add call to df_analyze.
9316
9317 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9318
9319         * config/alpha/alpha.md (usegp): Cast the result of
9320         alpha_find_lo_sum_using_gp to enum attr_usegp.
9321         * config/alpha/alpha.c (override_options): Remove end-of-structure
9322         marker element from cpu_table.  Use array size of cpu_table to handle
9323         -mcpu and -mtune options.
9324         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
9325
9326 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
9327
9328         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
9329         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
9330         tune_32 and tune_64.
9331         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9332         support on PowerPC.
9333         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
9334         * config/rs6000/option-defaults.h: ... here.  New file.
9335         (OPT_64, OPT_32): Define.
9336         (MASK_64BIT): Define to 0 if not already defined.
9337         (OPT_ARCH64, OPT_ARCH32): Define.
9338         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
9339         and tune_64.
9340
9341 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9342
9343         * config/arm/arm.c (arm_override_options): Emit error on using
9344         fpa with AAPCS.
9345
9346 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9347
9348         PR rtl-optimization/39914
9349         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9350         registers for allocnos created from user-defined variables only
9351         when not optimizing.
9352
9353 2009-04-28  Richard Guenther  <rguenther@suse.de>
9354
9355         PR middle-end/39937
9356         * fold-const.c (fold_binary): Use distribute_real_division only
9357         on float types.
9358
9359 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
9360
9361         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
9362         add hpux-stdint.h to tm_file.
9363         (hppa[12]*-*-hpux11*): Ditto.
9364         (ia64*-*-hpux*): Ditto.
9365         * config/hpux-stdint.h: New.
9366         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9367         __STDC_EXT__ for all compiles.
9368         * config/pa/pa-hpux.h: Ditto.
9369         * config/pa/pa-hpux10.h: Ditto.
9370         * config/pa/pa-hpux11.h: Ditto.
9371
9372 2009-04-28  Catherine Moore  <clm@codesourcery.com>
9373
9374         * debug.h (set_name): Add comment.
9375
9376 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
9377
9378         PR target/39929
9379         * config/darwin.c (machopic_gen_offset): Check
9380         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
9381         * config/arm/arm.c (require_pic_register): Likewise.
9382
9383 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
9384
9385         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
9386         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
9387         m32c_promote_prototypes): Delete.
9388
9389 2009-04-28  Michael Matz  <matz@suse.de>
9390
9391         PR middle-end/39922
9392         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
9393         constants.
9394
9395 2009-04-28  Richard Guenther  <rguenther@suse.de>
9396
9397         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
9398
9399 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9400
9401         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
9402         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
9403         * config/arm/arm-tune.md: Regenerate.
9404
9405 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
9406
9407         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
9408         block if there are complex incoming edges.
9409         (sel_merge_blocks): Remove useless assert.
9410         (sel_redirect_edge_and_branch): Check that edge was redirected.
9411         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
9412         (sel_find_rgns): Delete declaration.
9413         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
9414         the region when it is not a preheader.
9415
9416 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9417
9418         PR c/39323
9419         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
9420
9421 2009-04-28  Richard Guenther  <rguenther@suse.de>
9422
9423         * tree.h (SSA_NAME_VALUE): Remove.
9424         (struct tree_ssa_name): Remove value_handle member.
9425         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
9426         array for jump threading.
9427         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
9428         SSA_NAME_VALUEs.
9429         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
9430         * tree-flow.h (threadedge_initialize_values): Declare.
9431         (threadedge_finalize_values): Likewise.
9432         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
9433         (SSA_NAME_VALUE): Define.
9434         (threadedge_initialize_values): New function.
9435         (threadedge_finalize_values): Likewise.
9436         * tree-ssa-dom.c (ssa_name_values): New global variable.
9437         (SSA_NAME_VALUE): Define.
9438         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
9439
9440 2009-04-28  Ira Rosen  <irar@il.ibm.com>
9441
9442         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9443         Use REPORT_VECTORIZED_LOCATIONS instead 
9444         REPORT_VECTORIZED_LOOPS.
9445         * tree-vectorizer.c (vect_verbosity_level): Make static.
9446         (vect_loop_location): Rename to vect_location.
9447         (vect_set_verbosity_level): Update comment.
9448         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
9449         and vect_location.
9450         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
9451         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
9452         instead REPORT_UNVECTORIZED_LOOPS.
9453         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
9454         and vect_loop_def to vect_external_def and vect_internal_def.
9455         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
9456         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
9457         REPORT_UNVECTORIZED_LOCATIONS.
9458         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
9459         and vect_used_in_loop and to vect_unused_in_scope and 
9460         vect_used_in_scope.
9461         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
9462         (vect_verbosity_level): Remove declaration.
9463         (vect_analyze_operations): Likewise.
9464         (vect_analyze_stmt): Declare.
9465         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
9466         REPORT_UNVECTORIZED_LOCATIONS.
9467         (vect_get_loop_niters): Fix indentation.
9468         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
9469         (vect_analyze_loop_operations): New function.
9470         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
9471         vect_analyze_operations.
9472         (vect_is_simple_reduction): Use new names.
9473         (vectorizable_live_operation, vect_transform_loop): Likewise.
9474         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
9475         to specify whether the data references can be a part of interleaving
9476         chain.
9477         (vect_analyze_data_ref_dependence): Use new names.
9478         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
9479         (vect_create_addr_base_for_vector_ref): Remove redundant code.
9480         * tree-vect-patterns.c (widened_name_p): Use new names.
9481         (vect_recog_dot_prod_pattern): Likewise.
9482         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
9483         (process_use, vect_mark_stmts_to_be_vectorized, 
9484         vect_model_simple_cost, vect_model_store_cost,
9485         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
9486         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
9487         vectorizable_operation, vectorizable_type_demotion,
9488         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
9489         vectorizable_condition): Likewise.
9490         (vect_analyze_operations): Split into vect_analyze_loop_operations
9491         and ...
9492         (vect_analyze_stmt): ... new function.
9493         (new_stmt_vec_info): Use new names.
9494         (vect_is_simple_use): Use new names and fix comment.
9495         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
9496         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
9497
9498 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9499
9500         PR target/39911
9501         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
9502         and integer modes for x87 operands.  Do not ICE for unsupported size,
9503         generate error instead.  Generate error for unsupported operand types.
9504         ['z']: Do not handle HImode memory operands specially.  Warning
9505         for floating-point operands.  Fallthru to 'Z' for unsupported operand
9506         types.  Do not ICE for unsupported size, generate error instead.
9507         (output_387_binary_op): Use %Z to output operands.
9508         (output_fp_compare): Ditto.
9509         (output_387_reg_move): Ditto.
9510
9511 2009-04-28  Ben Elliston  <bje@au.ibm.com>
9512
9513         PR c++/35652
9514         Revert:
9515
9516         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9517
9518         * builtins.c (c_strlen): Do not warn here.
9519         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9520         * c-common.c (pointer_int_sum): Take an explicit location.
9521         Warn about offsets out of bounds.
9522         * c-common.h (pointer_int_sum): Adjust declaration.
9523
9524 2009-04-27  Ian Lance Taylor  <iant@google.com>
9525
9526         * collect2.c (is_ctor_dtor): Change type of ret field in struct
9527         names to symkind.
9528         * dce.c (run_fast_df_dce): Change type of old_flags to int.
9529         * df-core.c (df_set_flags): Change return type to int.  Change
9530         type of old_flags to int.
9531         (df_clear_flags): Likewise.
9532         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
9533         (df_get_conditional_uses): Likewise.
9534         * df.h (df_set_flags, df_clear_flags): Update declarations.
9535         * dwarf2out.c (struct indirect_string_node): Change type of form
9536         field to enum dwarf_form.
9537         (AT_string_form): Change return type to enum dwarf_form.
9538         * fixed-value.c (fixed_compare): Add cast to enum type.
9539         * fwprop.c (update_df): Change 0 to VOIDmode.
9540         * gensupport.c: Change 0 to UNKNOWN.
9541         * gimple.h (gimple_cond_code): Add cast to enum type.
9542         * haifa-sched.c (reemit_notes): Add cast to enum type.
9543         * hooks.c (hook_int_void_no_regs): Remove function.
9544         * hooks.h (hook_int_void_no_regs): Remove declaration.
9545         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
9546         * predict.c (combine_predictions_for_insn): Add casts to enum type.
9547         * real.c (real_arithmetic): Add cast to enum type.
9548         (real_compare): Likewise.
9549         * target.h (struct gcc_target): Change return type of
9550         branch_target_register_class to enum reg_class.
9551         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
9552         default_branch_target_register_class.
9553         * targhooks.c (default_branch_target_register_class): New function.
9554         * targhooks.h (default_branch_target_register_class): Declare.
9555         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
9556         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
9557         cast to int.
9558         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
9559         ERROR_MARK.
9560         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
9561         vect_uninitialized_def.  Change 0 to ERROR_MARK.
9562         * tree-vect-stmts.c (supportable_widening_operation): Don't
9563         initialize icode1 and icode2.
9564         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
9565         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
9566         and to STD_C89.
9567         (cmn_err_flag_specs): Change 0 to STD_C89.
9568         (cmn_err_char_table): Likewise.
9569         * config/arm/arm.c (get_arm_condition_code): Change type of code
9570         to enum arm_cond_code.
9571         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
9572         (IWMMXT_BUILTIN2): Likewise.
9573         (neon_builtin_type_bits): Don't define typedef.
9574         (neon_builtin_datum): Change type of bits field to int.
9575         (arm_expand_neon_args): Add cast to enum type.
9576         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
9577         TLS_MODEL_NONE.
9578         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
9579         casts to enum type.
9580         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
9581         MIPS_FP_COND_f.
9582         * config/mips/mips.md (jal_macro): Return enum constant.
9583         (single_insn): Likewise.
9584         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
9585         CODE_FOR_nothing.
9586         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9587         casts to enum type.
9588         * config/s390/s390.c (s390_tune_flags): Change type to int.
9589         (s390_arch_flags): Likewise.
9590         (s390_handle_arch_option): Change flags field of struct pta to int.
9591         * config/s390/s390.h (s390_tune_flags): Update declaration.
9592         (s390_arch_flags): Likewise.
9593         * config/sh/sh.c (prepare_move_operands): Compare
9594         tls_symbolic_operand result with enum constant.
9595         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
9596         (sh_expand_prologue): Add cast to enum type.
9597         (sh_expand_epilogue): Likewise.
9598         (tls_symbolic_operand): Change return type to enum tls_model.
9599         (fpscr_set_from_mem): Add cast to enum type.
9600         (legitimize_pic_address): Compare tls_symbolic_operand result with
9601         enum constant.
9602         (sh_target_reg_class): Change return type to enum reg_class.
9603         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
9604         PROCESSOR_xxx.
9605         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
9606         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
9607         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
9608         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
9609         (delayed_branch, tls_call_delay): Likewise.
9610         (eligible_for_sibcall_delay): Likewise.
9611         (eligible_for_return_delay): Likewise. 
9612         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
9613         (spu_expand_builtin_1): Likewise.
9614
9615         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
9616         for all types of conversions.
9617         (output_init_element): Issue -Wc++-compat warning if needed when
9618         initializing a bitfield with enum type.
9619         * c-parser.c (c_parser_expression): Set original_type to
9620         original_type of right hand operand of comman operator.
9621
9622 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9623
9624         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
9625         grammar nits.
9626         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
9627         * doc/cpp.texi (Standard Predefined Macros)
9628         (Implementation-defined behavior): Likewise.
9629         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
9630         * doc/gimple.texi (GIMPLE Exception Handling)
9631         (@code{GIMPLE_ASSIGN}): Likewise.
9632         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
9633         * doc/invoke.texi (Warning Options, Optimize Options)
9634         (AVR Options, Darwin Options): Likewise.
9635         (Optimize Options): Reformulate -fwhole-program description.
9636         * doc/loop.texi (Lambda): Likewise.
9637         * doc/md.texi (Output Template, Define Constraints)
9638         (Standard Names, Insn Splitting): Likewise.
9639         * doc/options.texi (Option properties): Likewise.
9640         * doc/passes.texi (Tree-SSA passes): Likewise.
9641         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
9642         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
9643         (File Names and DBX): Likewise.
9644         * doc/trouble.texi (Incompatibilities): Likewise.
9645
9646 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9647
9648         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
9649         instruction is correct.
9650
9651 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9652
9653         Allow non-constant arguments to conversion intrinsics.
9654         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
9655         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
9656         * spu.c (print_operand): Handle 'v' and 'w'.
9657         (exp2_immediate_p, spu_gen_exp2): Define.
9658         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
9659         spu_convtf_1): Update parameter descriptions.
9660         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
9661         * constraints.md ('v', 'w'): New.
9662         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
9663         Remove.
9664         (i2f, I2F): New define_mode_attr.
9665         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
9666         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
9667         fixuns_truncv4sfv4si2):  Update to use mode attribute.
9668         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
9669         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
9670         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
9671         patterns for combine.
9672
9673 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
9674
9675         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
9676         (cprop, hoist, pre, store_motion): New debug counters.
9677         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
9678         is not an RTL pass anymore.
9679         (pass_profiling): Remove extern decl for pass removed in 2005.
9680         (pass_gcse, pass_jump_bypass): Remove.
9681         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
9682         to 0 for clean state.
9683         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
9684         * cse.c (gate_handle_cse_after_global_opts,
9685         rest_of_handle_cse_after_global_opts): New functions.
9686         (pass_cse_after_global_opts): New pass, does local CSE.
9687         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
9688         (TV_CPROP): New timevar.
9689         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
9690         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
9691         (gcse_main, recompute_all_luids): Remove.
9692         (compute_hash_table_work): Call max_reg_num instead of reading
9693         max_gcse_regno.
9694         (cprop_jump): Don't set run_jump_opt_after_gcse.
9695         (constprop_register): Always allow to alter jumps.
9696         (cprop_insn): Likewise.
9697         (do_local_cprop): Likewise.
9698         (local_cprop_pass): Likewise.  Return non-zero if something changed.
9699         (cprop): Remove function, fold interesting bits into one_cprop_pass.
9700         (find_implicit_sets): Add note about missed optimization opportunity.
9701         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
9702         pass_rtl_cprop execute function.
9703         Don't bother tracking the pass number, each pass gets its own dumpfile
9704         now anyway.
9705         Always allow to alter jumpsand bypass jumps.
9706         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
9707         will just find no suitable set.
9708         (pre_edge_insert): Fix dumping, this function is for PRE only.
9709         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
9710         pass_rtl_pre execute function.
9711         (hoist_code): Return non-zero if something changed.  Keep track of
9712         substitutions and insertions for statistics gathering similar to PRE.
9713         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
9714         called from the pass_rtl_hoist execute function.  Show pass statistics.
9715         (compute_store_table): Use max_reg_num directly instead of using the
9716         formerly global max_gcse_regno.
9717         (build_store_vectors): Likewise.
9718         (replace_store_insn): Fix dumping.
9719         (store_motion): Rename to ...
9720         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
9721         pass, called from the pass_rtl_store_motion execute function.  Keep
9722         track of substitutions and insertions for statistics gathering similar
9723         to PRE.
9724         (bypass_jumps): Remove, fold interesting bits into ...
9725         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
9726         from the pass_rtl_cprop execute function.
9727         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
9728         pass_jump_bypass): Remove.
9729         (gate_handle_gcse, rest_of_handle_gcse): Remove.
9730         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
9731         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
9732         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
9733         (gate_rtl_store_motion, execute_rtl_store_motion,
9734         pass_rtl_store_motion): New.
9735         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
9736         make it clear that -fcse-skip-blocks is a no-op for backward compat.
9737         * passes.c (init_optimization_passes): Remove pass_gcse and
9738         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
9739         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
9740         instead of pass_jump_bypass.
9741
9742 2009-04-27  Richard Guenther  <rguenther@suse.de>
9743
9744         PR middle-end/39928
9745         * gimplify.c (gimplify_expr): If we are required to create
9746         a temporary make sure it ends up as register.
9747
9748 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9749
9750         PR target/39903
9751         * config/i386/i386.c (construct_container): Don't call
9752         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
9753         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
9754
9755 2009-04-27  Michael Matz  <matz@suse.de>
9756
9757         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
9758         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
9759         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
9760         (dump_replaceable_exprs): Take a bitmap.
9761         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
9762         array.
9763         (expand_gimple_basic_block): Likewise.
9764         * tree-ssa-ter.c (struct temp_expr_table_d): Make
9765         replaceable_expressions member a bitmap.
9766         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
9767         (mark_replaceable): Likewise.
9768         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
9769         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
9770
9771 2009-04-27  Richard Guenther  <rguenther@suse.de>
9772
9773         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
9774         (verify_stmts): Dispatch to gimple/type verification code.
9775         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
9776         issue with call argument types.
9777
9778 2009-04-27  Michael Matz  <matz@suse.de>
9779
9780         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
9781         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
9782         to above.
9783
9784 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
9785             Eric Botcazou  <ebotcazou@adacore.com>
9786
9787         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
9788         a label's basic block.
9789         (mark_target_live_regs): Tidy and rework obsolete comments.
9790         Change back DF problem to LIVE.  If a label starts a basic block,
9791         assume that all registers that used to be live then still are.
9792         (init_resource_info): If a label starts a basic block, set its
9793         BLOCK_FOR_INSN accordingly.
9794         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
9795
9796 2009-04-27  Richard Guenther  <rguenther@suse.de>
9797
9798         * tree-flow-inline.h (function_ann): Remove.
9799         (get_function_ann): Likewise.
9800         * tree-dfa.c (create_function_ann): Remove.
9801         * tree-flow.h (struct static_var_ann_d): Remove.
9802         (struct function_ann_d): Likewise.
9803         (union tree_ann_d): Remove fdecl member.
9804         (function_ann_t): Remove.
9805         (function_ann, get_function_ann, create_function_ann): Remove
9806         declarations.
9807
9808 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
9809
9810         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
9811
9812 2009-04-27  Jan Hubicka  <jh@suse.cz>
9813
9814         * ipa-pure-const.c (struct funct_state_d): New fields
9815         state_previously_known, looping_previously_known; remove
9816         state_set_in_source.
9817         (analyze_function): Use new fields.
9818         (propagate): Avoid assumption that state_set_in_source imply
9819         nonlooping.
9820
9821         * tree-ssa-loop-niter.c (finite_loop_p): New function.
9822         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
9823         * cfgloop.h (finite_loop_p): Declare.
9824
9825 2009-04-26  Michael Matz  <matz@suse.de>
9826
9827         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
9828
9829 2009-04-26  Michael Matz  <matz@suse.de>
9830
9831         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
9832         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
9833         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
9834         pass_mark_used_blocks): Remove.
9835         * tree-optimize.c (pass_free_datastructures,
9836         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
9837         * passes.c (init_optimization_passes): Don't call
9838         pass_mark_used_blocks, remove dead code.
9839
9840 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
9841
9842         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
9843         * tree-ssa-live.h (register_ssa_partition): Likewise.
9844
9845 2009-04-26  Michael Matz  <matz@suse.de>
9846
9847         Expand from SSA.
9848         * builtins.c (fold_builtin_next_arg): Handle SSA names.
9849         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
9850         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
9851         SSA names. 
9852         (compare_pairs): Swap cost comparison.
9853         (coalesce_ssa_name): Don't use change_partition_var.
9854         * tree-nrv.c (struct nrv_data): Add modified member.
9855         (finalize_nrv_r): Set it.
9856         (tree_nrv): Use it to update statements.
9857         (pass_nrv): Require PROP_ssa.
9858         * tree-mudflap.c (mf_decl_cache_locals,
9859         mf_build_check_statement_for): Use make_rename_temp.
9860         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
9861         * alias.c (find_base_decl): Handle SSA names.
9862         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
9863         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
9864         * rtl.h (set_reg_attrs_for_parm): Declare.
9865         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
9866         to "optimized", remove unused locals at finish.
9867         (execute_free_datastructures): Make global, call
9868         delete_tree_cfg_annotations.
9869         (execute_free_cfg_annotations): Don't call
9870         delete_tree_cfg_annotations.
9871
9872         * ssaexpand.h: New file.
9873         * expr.c (toplevel): Include ssaexpand.h.
9874         (expand_assignment): Handle SSA names the same as register variables.
9875         (expand_expr_real_1): Expand SSA names.
9876         * cfgexpand.c (toplevel): Include ssaexpand.h.
9877         (SA): New global variable.
9878         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
9879         (SSAVAR): New macro.
9880         (set_rtl): New helper function.
9881         (add_stack_var): Deal with SSA names, use set_rtl.
9882         (expand_one_stack_var_at): Likewise.
9883         (expand_one_stack_var): Deal with SSA names.
9884         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
9885         before unique numbers.
9886         (expand_stack_vars): Use set_rtl.
9887         (expand_one_var): Accept SSA names, add asserts for them, feed them
9888         to above subroutines.
9889         (expand_used_vars): Expand all partitions (without default defs),
9890         then only the local decls (ignoring those expanded already).
9891         (expand_gimple_cond): Remove edges when jumpif() expands an
9892         unconditional jump.
9893         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
9894         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
9895         SSA name.
9896         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
9897         members of SA; deal with PARM_DECL partitions here; expand
9898         all PHI nodes, free tree datastructures and SA.  Commit instructions
9899         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
9900         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
9901         info and statements at start, collect garbage at finish.
9902         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
9903         (VAR_ANN_PARTITION) Remove.
9904         (change_partition_var): Don't declare.
9905         (partition_to_var): Always return SSA names.
9906         (var_to_partition): Only accept SSA names.
9907         (register_ssa_partition): Only check argument.
9908         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
9909         member.
9910         (delete_var_map): Don't free it.
9911         (var_union): Only accept SSA names, simplify.
9912         (partition_view_init): Mark only useful SSA names as used.
9913         (partition_view_fini): Only deal with SSA names.
9914         (change_partition_var): Remove.
9915         (dump_var_map): Use ssa_name instead of partition_to_var member.
9916         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
9917         basic blocks.
9918         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
9919         (struct _elim_graph): New member const_dests; nodes member vector of
9920         ints.
9921         (set_location_for_edge): New static helper.
9922         (create_temp): Remove.
9923         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
9924         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
9925         (new_elim_graph): Allocate const_dests member.
9926         (clean_elim_graph): Truncate const_dests member.
9927         (delete_elim_graph): Free const_dests member.
9928         (elim_graph_size): Adapt to new type of nodes member.
9929         (elim_graph_add_node): Likewise.
9930         (eliminate_name): Likewise.
9931         (eliminate_build): Don't take basic block argument, deal only with
9932         partition numbers, not variables.
9933         (get_temp_reg): New static helper.
9934         (elim_create): Use it, deal with RTL temporaries instead of trees.
9935         (eliminate_phi): Adjust all calls to new signature.
9936         (assign_vars, replace_use_variable, replace_def_variable): Remove.
9937         (rewrite_trees): Only do checking.
9938         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
9939         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
9940         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
9941         contains_tree_r, MAX_STMTS_IN_LATCH,
9942         process_single_block_loop_latch, analyze_edges_for_bb,
9943         perform_edge_inserts): Remove.
9944         (expand_phi_nodes): New global function.
9945         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
9946         functions, initialize new parameter, remember partitions having a
9947         default def.
9948         (finish_out_of_ssa): New global function.
9949         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
9950         don't reset in_ssa_p here, don't disable TER when mudflap.
9951         (pass_del_ssa): Remove.
9952         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
9953         partition members.
9954         (execute_free_datastructures): Declare.
9955         * Makefile.in (SSAEXPAND_H): New variable.
9956         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
9957         * basic-block.h (commit_one_edge_insertion): Declare.
9958         * passes.c (init_optimization_passes): Move pass_nrv and
9959         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
9960         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
9961         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
9962         (redirect_branch_edge): Deal with super block when expanding, split
9963         out jump patching itself into ...
9964         (patch_jump_insn): ... here, new static helper.
9965
9966 2009-04-26  Michael Matz  <matz@suse.de>
9967
9968         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
9969         beyond num_ssa_names.
9970         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
9971         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
9972
9973 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
9974
9975         PR inline-asm/39543
9976         * fwprop.c (forward_propagate_asm): New function.
9977         (forward_propagate_and_simplify): Propagate also into __asm, if it
9978         doesn't increase the number of referenced registers.
9979
9980         PR c/39889
9981         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
9982
9983 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
9984
9985         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
9986         note_nonlocal_vla_type for nonlocal VLAs.
9987         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
9988         contains_remapped_vars, remap_vla_decls): New functions.
9989         (convert_nonlocal_reference_stmt): If not optimizing, call
9990         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
9991         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
9992         if it wasn't found in var_map.
9993         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
9994         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
9995         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
9996         declare_vars.
9997         * gimplify.c (nonlocal_vlas): New variable.
9998         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
9999         referenced VLAs.
10000         (gimplify_body): Create and destroy nonlocal_vlas.
10001
10002         * dwarf2out.c (loc_descr_plus_const): New function.
10003         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
10004         mem_loc_descriptor, loc_descriptor_from_tree_1,
10005         descr_info_loc, gen_variable_die): Use it.
10006
10007         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
10008         !TREE_STATIC VAR_DECLs.
10009         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
10010         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
10011         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
10012         DECL_BY_REFERENCE is valid.
10013         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
10014         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
10015         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
10016         Copy DECL_BY_REFERENCE.
10017         (struct nesting_copy_body_data): New type.
10018         (nesting_copy_decl): New function.
10019         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
10020         if they have variable length.
10021
10022 2009-04-26  Michael Matz  <matz@suse.de>
10023
10024         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
10025         mark new temporaries for renaming.
10026
10027 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
10028
10029         PR c/39581
10030         * c-decl.c (global_bindings_p): Return negative value.
10031         (c_variable_size): New.  Based on variable_size from
10032         stor-layout.c.
10033         (grokdeclarator): Call c_variable_size not variable_size.
10034
10035 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
10036
10037         * config/i386/i386.c (print_operand) ['z']: Fix typo.
10038
10039 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
10040
10041         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
10042         Redefine it to just use mingw/include.
10043         (ASM_SPEC): Rules for -m32 and -m64.
10044         (LINK_SPEC): Use Likewise.
10045         (SPEC_32): New define.
10046         (SPEC_64): Likewise.
10047         (SUB_LINK_SPEC): Likewise.
10048         (MULTILIB_DEFAULTS): New define.
10049         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
10050         Add multilib options.
10051         (MULTILIB_DIRNAMES): Likewise.
10052         (MULTILIB_OSDIRNAMES): Likewise.
10053         (LIBGCC): Likewise.
10054         (INSTALL_LIBGCC): Likewise.
10055
10056 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
10057
10058         PR c/39556
10059         * c-tree.h (enum c_inline_static_type): New.
10060         (record_inline_static): Declare.
10061         * c-decl.c (struct c_inline_static, c_inline_statics,
10062         record_inline_static, check_inline_statics): New.
10063         (pop_file_scope): Call check_inline_statics.
10064         (start_decl): Call record_inline_static instead of pedwarning
10065         directly for static in inline function.
10066         * c-typeck.c (build_external_ref): Call record_inline_static
10067         instead of pedwarning directly for static referenced in inline
10068         function.
10069
10070 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
10071
10072         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
10073         not new but only being rescanned.
10074         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
10075         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
10076         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
10077         record_set_info, compute_set, grealloc): Remove.
10078         (recompute_all_luids): New function.
10079         (gcse_main): Don't compute sets, and don't do related memory
10080         allocations/free-ing.  If something changed before the end of the
10081         pass, update LUIDs using recompute_all_luids.
10082         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
10083         (free_gcse_mem): Don't free it either.
10084         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
10085         Use the df insn LUIDs.
10086         (load_killed_in_block): Likewise.
10087         (compute_hash_table_work): Don't compute reg_set_in_block.
10088         (compute_transp): Use DF_REG_DEF_CHAINs.
10089         (local_cprop_pass): Don't use compute_sets and related functions.
10090         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
10091         Use get_max_uid() instead of max_cuid.
10092         (insert_insn_end_basic_block, pre_insert_copy_insn,
10093         update_ld_motion_stores): Don't try to
10094         keep reg_set tables up to date.
10095         (pre_insert_copies): Use df insn LUIDs.
10096         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
10097         (reg_set_info): Don't use extra bitmap argument.
10098         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
10099         information to compute regs_set_in_block.
10100         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
10101         (bypass_jumps): Don't use compute_sets and friends.
10102
10103 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10104
10105         PR testsuite/39710
10106         * opts.c (undocumented_msg): Do not leave blank even with
10107         ENABLE_CHECKING.
10108
10109 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
10110
10111         * c-decl.c (build_enumerator): Allow values folding to integer
10112         constants but not integer constant expressions with a pedwarn if
10113         pedantic.
10114
10115 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
10116
10117         PR c/39582
10118         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
10119         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
10120         type is an integer constant.
10121
10122 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
10123
10124         PR target/39897
10125         * config/i386/i386.c (print_operand) ['z']: Revert handling of
10126         HImode operands.
10127
10128 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
10129
10130         PR c/39564
10131         * c-decl.c (grokdeclarator): Diagnose declarations of functions
10132         with variably modified return type and no storage class
10133         specifiers, except for the case of nested functions.  Distinguish
10134         extern declarations of functions with variably modified return
10135         types from those of objects with variably modified types.
10136
10137 2009-04-25  Jan Hubicka  <jh@suse.cz>
10138
10139         * tree.c (list_equal_p): New function.
10140         * tree.h (list_equal_p): Declare.
10141         * coretypes.h (edge_def, edge, const_edge, basic_block_def
10142         basic_block_def, basic_block, const_basic_block): New.
10143         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
10144         (redirect_eh_edge): New function.
10145         (make_eh_edge_update_phi): EH edges are not abnormal.
10146         * except.c: Include tree-flow.h.
10147         (list_match): New function.
10148         (eh_region_replaceable_by_p): New function.
10149         (replace_region): New function.
10150         (hash_type_list): New function.
10151         (hash_eh_region): New function.
10152         (eh_regions_equal_p): New function.
10153         (merge_peers): New function.
10154         (remove_unreachable_regions): Verify EH tree when checking;
10155         merge peers.
10156         (copy_eh_region_1): New function.
10157         (copy_eh_region): New function.
10158         (push_reachable_handler): New function.
10159         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
10160         regions without label but with live RESX.
10161         * except.h (redirect_eh_edge_to_label): New.
10162         * tree-flow.h (redirect_eh_edge): New.
10163         * coretypes.h (edge_def, edge, const_edge, basic_block_def
10164         basic_block_def, basic_block, const_basic_block): Remove.
10165         * Makefile.in (except.o): Add dependency on tree-flow.h
10166         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
10167         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
10168         Remove.
10169
10170 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
10171
10172         PR bootstrap/39645
10173         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
10174         on the destination of memcpy.
10175
10176 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
10177
10178         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
10179         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
10180         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
10181
10182 2009-04-25  Jan Hubicka  <jh@suse.cz>
10183
10184         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
10185         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
10186         to be reached by different label than left.
10187         (update_eh_edges): Update comment; remove edge_to_remove if possible
10188         and return true if suceeded.
10189         (cleanup_empty_eh): Accept sharing map; handle shared regions.
10190         (cleanup_eh): Compute sharing map.
10191         * except.c (remove_eh_handler_and_replace): Add argument if we should
10192         update regions.
10193         (remove_unreachable_regions): Update for label sharing.
10194         (label_to_region_map): Likewise.
10195         (get_next_region_sharing_label): New function.
10196         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
10197         prev_try pointers.
10198         (remove_eh_handler): Update.
10199         (remove_eh_region_and_replace_by_outer_of): New function.
10200         * except.h (struct eh_region): Add next_region_sharing_label.
10201         (remove_eh_region_and_replace_by_outer_of,
10202         get_next_region_sharing_label): Declare.
10203         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
10204
10205 2009-04-25  Jan Hubicka  <jh@suse.cz>
10206
10207         * tree-cfg.c (split_critical_edges): Split also edges where we can't
10208         insert code even if they are not critical.
10209
10210 2009-04-25  Jan Hubicka  <jh@suse.cz>
10211
10212         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10213         (gimple_can_remove_branch_p): EH edges won't remove branch by
10214         redirection.
10215         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
10216         updating of non-abnormal EH edges.
10217         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10218         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
10219         (split_critical_edges): Split also edges where emitting code on them
10220         will lead to splitting later.
10221
10222 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
10223             H.J. Lu  <hongjiu.lu@intel.com>
10224
10225         PR target/39590
10226         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
10227         the configured assembler supports fildq and fistpq mnemonics.
10228         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
10229         * configure: Regenerated.
10230         * config.in: Ditto.
10231
10232         * config/i386/i386.c (print_operand): Handle 'Z'.
10233         ['z']: Remove handling of special fild/fist suffixes.
10234         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
10235         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
10236         suffix of fild insn.
10237         (*floatsi<mode>2_vector_mixed): Ditto.
10238         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
10239         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
10240         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
10241         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
10242         * config/i386/gas.h (GAS_MNEMONICS): Remove.
10243
10244 2009-04-25  Ben Elliston  <bje@au.ibm.com>
10245  
10246         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
10247         the source of a set operation.
10248
10249 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
10250
10251         * target.h (struct gcc_target): Add case_values_threshold field.
10252         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
10253         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
10254         * targhooks.c (default_case_values_threshold): New function.
10255         * targhooks.h (default_case_values_threshold): Declare function.
10256         * stmt.c (expand_case): Use case_values_threshold target hook.
10257         * expr.h (case_values_threshold): Remove declartation.
10258         * expr.c (case_values_threshold): Remove function.
10259         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
10260
10261         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
10262         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10263         (avr_case_values_threshold): Declare as static.
10264         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
10265
10266         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
10267         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10268         (mn10300_case_values_threshold): New function.
10269
10270 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10271
10272         * ira.c (setup_cover_and_important_classes): Add enum cast.
10273
10274 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
10275
10276         * genpreds.c (write_enum_constraint_num): Output definition of
10277         CONSTRAINT_NUM_DEFINED_P macro.
10278         * ira.c (setup_cover_and_important_classes): Use
10279         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
10280         
10281 2009-04-24  DJ Delorie  <dj@redhat.com>
10282
10283         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
10284         __SH2A_SINGLE_ONLY__ also.
10285
10286 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
10287
10288         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
10289         (movdf_internal): Ditto.
10290         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
10291         SFmode and DFmode constants.
10292         (ia64_print_operand): Add 'G' format for printing
10293         floating point constants.
10294
10295 2009-04-24  Richard Guenther  <rguenther@suse.de>
10296
10297         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
10298         from unsigned additions.
10299
10300 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
10301
10302         * c-typeck.c (set_init_index): Allow array designators that are
10303         not integer constant expressions with a pedwarn if pedantic.
10304
10305 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10306
10307         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
10308         zero if no overlap in nonzero bits between the operands.
10309
10310 2009-04-24  Ian Lance Taylor  <iant@google.com>
10311
10312         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
10313         (record_dead_and_set_regs): Likewise.
10314         * df.h (struct df_mw_hardreg): Change flags field to int.
10315         (struct df_base_ref): Likewise.
10316         (struct df): Change changeable_flags field to int.
10317         * df-scan.c (df_defs_record): Change clobber_flags to int.
10318         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
10319         constants rather than #define macros.
10320         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
10321         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
10322         (enum dwarf_calling_convention): Likewise.
10323         (enum dwarf_line_number_x_ops): Likewise.
10324         (enum dwarf_call_frame_info): Likewise.
10325         (enum dwarf_source_language): Likewise.
10326         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
10327         (add_calling_convention_attribute): Likewise.
10328         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
10329         (combine_comparisons): Change compcode to int.  Add cast to enum type.
10330         * genrecog.c (maybe_both_true_2): Change c to int.
10331         (write_switch): Likewise.  Add cast to enum type.
10332         * gimplify.c (gimplify_omp_for): Handle return values from
10333         gimplify_expr using MIN rather than bitwise or.
10334         (gimplify_expr): Add cast to enum type.
10335         * ipa-prop.c (update_jump_functions_after_inlining): Change
10336         IPA_BOTTOM to IPA_JF_UNKNOWN.
10337         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
10338         Add casts to enum type.
10339         (setup_cover_and_important_classes): Change cl to int.  Add casts
10340         to enum type.
10341         (setup_class_translate): Change cl and mode to int.
10342         (ira_init_once): Change mode to int.
10343         (free_register_move_costs): Likewise.
10344         (setup_prohibited_mode_move_regs): Add casts to enum type.
10345         * langhooks.c (add_builtin_function_common): Rework assertion that
10346         value fits bitfield.
10347         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
10348         * omega.c (omega_do_elimination): Avoid math on enum types.
10349         * optabs.c (expand_vec_shift_expr): Remove casts to int.
10350         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
10351         int local to handle integral_argment value.
10352         * regmove.c (try_auto_increment): Change PUT_MODE to
10353         PUT_REG_NOTE_KIND.
10354         * reload.c (push_secondary_reload): Add casts to enum type.
10355         (secondary_reload_class, find_valid_class): Likewise.
10356         * reload1.c (emit_input_reload_insns): Likewise.
10357         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
10358         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
10359         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
10360         constant.
10361         * tree.c (build_common_builtin_nodes): Add casts to enum type.
10362         * tree-complex.c (complex_lattice_t): Typedef to int rather than
10363         enum type.
10364         (expand_complex_libcall): Add casts to enum type.
10365         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
10366         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
10367         with ERROR_MARK, not NUM_TREE_CODES.
10368         (vect_create_epilog_for_reduction): Likewise.
10369         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
10370         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
10371         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
10372         enum machine_mode.
10373         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
10374         vect_unused_in_loop.  Change 0 to loop_vect.
10375         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
10376         * var-tracking.c (get_init_value): Change return type to enum
10377         var_init_status.
10378         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
10379         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
10380         arm_fp_model.
10381         (arm_override_options): Add casts to enum type.
10382         (arm_emit_tls_decoration): Likewise.
10383         * config/i386/i386.c (ix86_function_specific_restore): Add casts
10384         to enum type.
10385         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
10386         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
10387         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
10388         enum type.
10389         * config/s390/s390.c (code_for_builtin_64): Change to array of
10390         enum insn_code.
10391         (code_for_builtin_31): Likewise.
10392         (s390_expand_builtin): Change code_for_builtin to enum insn_code
10393         const *.
10394         * config/sparc/sparc.c (sparc_override_options): Change value
10395         field in struct code_model to enum cmodel.  In initializer change
10396         0 to NULL and add cast to enum type.
10397
10398         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
10399         Change all callers.  Issue a -Wc++-compat warning using
10400         lhs_origtype if necessary.
10401         (convert_for_assignment): Issue -Wc++-compat warnings about
10402         invalid conversions to enum type on assignment.
10403         * c-common.h (build_modify_expr): Update declaration.
10404
10405 2009-04-24  Nick Clifton  <nickc@redhat.com>
10406
10407         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
10408         (function_arg_advance): Likewise.
10409         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
10410         5th alternative.
10411
10412 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10413
10414         * config/s390/constraints.md ('I', 'J'): Fix condition.
10415
10416 2009-04-24  Diego Novillo  <dnovillo@google.com>
10417
10418         * gengtype-parse.c (parse_error): Add newline after message.
10419
10420 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10421
10422         * config/i386/sse.md (avxmodesuffixs): Removed.
10423         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
10424         (*avx_pinsr<ssevecsize>): This.
10425
10426 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10427
10428         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10429         follow chains of regs with a single definition, and allow expressions
10430         that are function_invariant_p.
10431         (simple_rhs_p): Allow expressions that are function_invariant_p.
10432
10433 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
10434
10435         PR middle-end/39867
10436         * fold-const.c (fold_cond_expr_with_comparison): When folding
10437         > and >= to MAX, make sure the MAX uses the same type as the
10438         comparison's operands.
10439
10440 2009-04-24  Nick Clifton  <nickc@redhat.com>
10441
10442         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
10443         addressing for DImode accesses.
10444         (frv_print_operand_address): Handle PLUS case.
10445         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
10446
10447 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
10448
10449         PR rtl-optimization/39794
10450         * alias.c (canon_true_dependence): Add x_addr argument.
10451         * rtl.h (canon_true_dependence): Adjust prototype.
10452         * cse.c (check_dependence): Adjust canon_true_dependence callers.
10453         * cselib.c (cselib_invalidate_mem): Likewise.
10454         * gcse.c (compute_transp): Likewise.
10455         * dse.c (scan_reads_nospill): Likewise.
10456         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
10457         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
10458         canon_base_addr of the group, plus optional offset.
10459         (struct group_info): Rename canon_base_mem to
10460         canon_base_addr.
10461         (get_group_info): Set canon_base_addr to canon_rtx of base, not
10462         canon_rtx of base_mem.
10463
10464 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
10465
10466         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10467         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
10468
10469 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10470
10471         * config/spu/spu-builtins.h: Delete file.
10472
10473         * config/spu/spu.h (enum spu_builtin_type): Move here from
10474         spu-builtins.h.
10475         (struct spu_builtin_description): Likewise.  Add GTY marker.
10476         Do not use enum spu_function_code or enum insn_code.
10477         (spu_builtins): Add extern declaration.
10478
10479         * config/spu/spu.c: Do not include "spu-builtins.h".
10480         (enum spu_function_code, enum spu_builtin_type_index,
10481         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
10482         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
10483         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
10484         unsigned_V2DI_type_node): Move here from spu-builtins.h.
10485         (spu_builtin_types): Make static.  Add GTY marker.
10486         (spu_builtins): Add extern declaration with GTY marker.
10487         Include "gt-spu.h".
10488
10489         * config/spu/spu-c.c: Do not include "spu-builtins.h".
10490         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
10491         Check programmatically whether all parameters are scalar.
10492
10493         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
10494
10495 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10496
10497         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
10498         assignment from the constructor either if the target is volatile.
10499
10500 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
10501
10502         * config/arm/arm.md (insv): Do not share operands[0].
10503
10504 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
10505
10506         * config/vxlib-tls.c (active_tls_threads): Delete.
10507         (delete_hook_installed): New.
10508         (tls_delete_hook): Don't delete the delete hook.
10509         (tls_destructor): Delete it here.
10510         (__gthread_set_specific): Adjust installing the delete hook.
10511         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
10512         __gthread_leave_tsd_dtor_context.
10513
10514 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
10515
10516         * c-format.c (gcc_tdiag_char_table): Add support for %E.
10517
10518 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
10519
10520         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
10521         enum type.
10522         (alpha_rtx_costs): Ditto.
10523         (emit_unlikely_jump): Use add_reg_note.
10524         (emit_frame_store_1): Ditto.
10525         (alpha_expand_prologue): Ditto.
10526         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10527         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
10528
10529 2009-04-23  Nick Clifton  <nickc@redhat.com>
10530
10531         * config/v850/v850.md (epilogue): Remove suppressed code.
10532         (return): Rename to return_simple and remove test of frame size.
10533         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
10534         to gen_return_simple.
10535
10536 2009-04-22  Jing Yu  <jingyu@google.com>
10537
10538         PR testsuite/39781
10539         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10540
10541 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10542
10543         PR C/31499
10544         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
10545         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
10546         value is a VECTOR_CST, the element type is the element type of the
10547         vector.
10548
10549 2009-04-22  DJ Delorie  <dj@redhat.com>
10550
10551         * config/m32c/m32c.h: Update GTY annotations to new syntax.
10552
10553 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
10554
10555         * alias.c (find_base_term): Move around LO_SUM case, so that
10556         CONST falls through into PLUS/MINUS handling.
10557
10558         PR c/39855
10559         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
10560         into 0, use omit_one_operand.
10561
10562 2009-04-23  Ben Elliston  <bje@au.ibm.com>
10563
10564         * config/rs6000/linux-unwind.h (get_regs): Remove type
10565         puns. Change the type of `pc' to an array of unsigned ints and
10566         update all users.  Constify frame24.
10567
10568 2009-04-22  DJ Delorie  <dj@redhat.com>
10569
10570         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
10571         declarations before code.
10572         (current_function_special_page_vector): Likewise.
10573         (m32c_expand_insv): Silence a warning.
10574
10575 2009-04-21  Taras Glek  <tglek@mozilla.com>
10576
10577         * alias.c: Update GTY annotations to new syntax.
10578         * basic-block.h: Likewise.
10579         * bitmap.h: Likewise.
10580         * c-common.h: Likewise.
10581         * c-decl.c: Likewise.
10582         * c-parser.c: Likewise.
10583         * c-pragma.c: Likewise.
10584         * c-tree.h: Likewise.
10585         * cfgloop.h: Likewise.
10586         * cgraph.h: Likewise.
10587         * config/alpha/alpha.c: Likewise.
10588         * config/arm/arm.h: Likewise.
10589         * config/avr/avr.h: Likewise.
10590         * config/bfin/bfin.c: Likewise.
10591         * config/cris/cris.c: Likewise.
10592         * config/darwin.c: Likewise.
10593         * config/frv/frv.c: Likewise.
10594         * config/i386/i386.c: Likewise.
10595         * config/i386/i386.h: Likewise.
10596         * config/i386/winnt.c: Likewise.
10597         * config/ia64/ia64.h: Likewise.
10598         * config/iq2000/iq2000.c: Likewise.
10599         * config/mips/mips.c: Likewise.
10600         * config/mmix/mmix.h: Likewise.
10601         * config/pa/pa.c: Likewise.
10602         * config/pa/pa.h: Likewise.
10603         * config/rs6000/rs6000.c: Likewise.
10604         * config/s390/s390.c: Likewise.
10605         * config/sparc/sparc.c: Likewise.
10606         * config/xtensa/xtensa.c: Likewise.
10607         * cselib.h: Likewise.
10608         * dbxout.c: Likewise.
10609         * dwarf2out.c: Likewise.
10610         * except.c: Likewise.
10611         * except.h: Likewise.
10612         * fixed-value.h: Likewise.
10613         * function.c: Likewise.
10614         * function.h: Likewise.
10615         * gimple.h: Likewise.
10616         * integrate.c: Likewise.
10617         * optabs.c: Likewise.
10618         * output.h: Likewise.
10619         * real.h: Likewise.
10620         * rtl.h: Likewise.
10621         * stringpool.c: Likewise.
10622         * tree-data-ref.c: Likewise.
10623         * tree-flow.h: Likewise.
10624         * tree-scalar-evolution.c: Likewise.
10625         * tree-ssa-address.c: Likewise.
10626         * tree-ssa-alias.h: Likewise.
10627         * tree-ssa-operands.h: Likewise.
10628         * tree.c: Likewise.
10629         * tree.h: Likewise.
10630         * varasm.c: Likewise.
10631         * varray.h: Likewise.
10632         * vec.h: Likewise.
10633         * coretypes.h: Do not define GTY macro if it is already defined.
10634         * doc/gty.texi: Update GTY documentation to new syntax.
10635         * gengtype-lex.l: Enforce attribute-like syntax for GTY
10636         annotations on structs.
10637         * gengtype-parse.c: Likewise.
10638
10639 2009-04-22  Mark Heffernan  <meheff@google.com>
10640
10641         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
10642
10643 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10644
10645         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
10646         where appropriate.
10647
10648 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10649
10650         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
10651         the same as a PLUS without a shift.  Increase the cost of a
10652         CONST_INT in MULT.
10653
10654 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10655
10656         * Makefile.in: Update dependencies.
10657         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
10658         * errors.h: Remove bogus comment about compatibility.
10659         (warning): Update declaration.
10660         * genautomata.c: Update all calls to warning.
10661         * gimple.c: Do not include errors.h. Include toplev.h.
10662         * tree-ssa-structalias.c: Do not include errors.h.
10663         * omega.c: Likewise.
10664         * tree-ssa-reassoc.c: Likewise.
10665         * config/spu/spu-c.c: Likewise.
10666         * config/spu/t-spu-elf: Update dependencies.
10667
10668 2009-04-22  Richard Guenther  <rguenther@suse.de>
10669
10670         PR tree-optimization/39824
10671         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
10672         make sure the types are compatible.
10673
10674 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10675
10676         PR c++/14875
10677         * c-common.c (c_parse_error): Take a token_flags parameter.
10678         Use token_type for the token type instead.
10679         Pass token_flags to cpp_type2name.
10680         * c-common.h (c_parse_error): Update declaration.
10681         * c-parser.c (c_parser_error): Pass 0 as token flags.
10682
10683 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
10684
10685         PR rtl-optimization/39580
10686         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
10687         
10688 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10689
10690         * function.c (expand_function_end): Do not emit a jump to the "naked"
10691         return label for fall-through returns.
10692         * except.c (sjlj_emit_function_exit): Always place the call to the
10693         unregister function at the location installed by expand_function_end.
10694
10695 2009-04-22  Richard Guenther  <rguenther@suse.de>
10696
10697         PR tree-optimization/39845
10698         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
10699         (gen_inbound_check): Likewise.
10700
10701 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
10702
10703         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
10704         padding for PPC.
10705         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
10706         * config/vxlib.c (__gthread_once): Add race guard for PPC.
10707
10708 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10709
10710         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
10711         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
10712         shift counts to avoid out-of-bounds array accesses.
10713
10714 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10715
10716         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
10717         (Pmode): Move above.
10718
10719 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
10720
10721         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
10722         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
10723         GET_CODE macro.  Use IN_RANGE macro where appropriate.
10724         * config/alpha/alpha.h: Ditto.
10725         * config/alpha/alpha.md: Ditto.
10726         * config/alpha/constraints.md: Ditto.
10727         * config/alpha/predicates.md: Ditto.
10728         
10729 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10730
10731         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
10732         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10733         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10734         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10735         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10736         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10737         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10738         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10739         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10740         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10741         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10742         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10743         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10744         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10745         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10746         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10747         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10748         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10749         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10750         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10751         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10752         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10753         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10754         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10755         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10756         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10757         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10758
10759 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10760
10761         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
10762         references from comments.
10763         * cfgbuild.c: (count_basic_blocks): Delete.
10764         (find_basic_blocks_1): Delete.
10765         (find_basic_blocks): Delete.
10766         * except.c (finish_eh_generation): Make static.  Move comment from
10767         except.h here.  Remove find_basic_blocks references from comments.
10768         * except.h (finish_eh_generation): Delete.
10769         * basic-block.h (find_basic_blocks): Delete.
10770         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
10771
10772 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
10773
10774         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
10775         (sdbout_parms):  Likewise.
10776
10777 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
10778
10779         * config/sh/sh.c (prepare_cbranch_operands): Use
10780         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
10781         (expand_cbranchdi4): Likewise.
10782         (from_compare): Add cast to enum type.
10783         (expand_cbranchsi4): Use add_reg_note.
10784         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
10785         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
10786         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
10787         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10788         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
10789         instead of CODE_FOR_nothing.
10790         (cbranchdi4): Likewise.  Fix the order of arguments for
10791         gen_rtx_fmt_ee.
10792         (push_fpscr): Use add_reg_note.
10793         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
10794         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
10795         
10796 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
10797
10798         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
10799         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10800         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10801         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
10802         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
10803         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
10804         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
10805         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
10806         config/alpha/x-vms, config/arc/t-arc,
10807         config/arm/README-interworking, config/arm/arm-c.c,
10808         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
10809         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
10810         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
10811         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
10812         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
10813         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
10814         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
10815         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
10816         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
10817         config/cris/t-elfmulti, config/crx/t-crx,
10818         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
10819         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
10820         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
10821         config/h8300/t-h8300, config/i386/athlon.md,
10822         config/i386/darwin-libgcc.10.4.ver,
10823         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
10824         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
10825         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
10826         config/i386/t-linux64, config/i386/t-nwld,
10827         config/i386/t-rtems-i386, config/i386/t-sol2-10,
10828         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
10829         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
10830         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
10831         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
10832         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
10833         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
10834         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
10835         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
10836         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
10837         config/m68k/t-uclinux, config/mcore/t-mcore,
10838         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
10839         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
10840         config/mips/crtn.asm, config/mips/irix-crti.asm,
10841         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
10842         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
10843         config/mips/mips-fixed.md, config/mips/sb1.md,
10844         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
10845         config/mips/t-iris6, config/mips/t-isa3264,
10846         config/mips/t-libgcc-mips16, config/mips/t-linux64,
10847         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
10848         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
10849         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
10850         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
10851         config/mn10300/t-linux, config/mn10300/t-mn10300,
10852         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
10853         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
10854         config/picochip/libgccExtras/clzsi2.asm,
10855         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
10856         config/rs6000/darwin-libgcc.10.4.ver,
10857         config/rs6000/darwin-libgcc.10.5.ver,
10858         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
10859         config/rs6000/t-aix43, config/rs6000/t-aix52,
10860         config/rs6000/t-darwin, config/rs6000/t-fprules,
10861         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
10862         config/rs6000/t-lynx, config/rs6000/t-netbsd,
10863         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
10864         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
10865         config/rs6000/t-rtems, config/rs6000/t-spe,
10866         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
10867         config/score/t-score-elf, config/sh/divcost-analysis,
10868         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
10869         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
10870         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
10871         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
10872         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
10873         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
10874         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
10875         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
10876         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
10877         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
10878         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
10879         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
10880         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
10881         limitx.h, version.c, xcoff.h: Add copyright and license notices.
10882         * config/h8300/genmova.sh: Include copyright and license notices
10883         in generated output.
10884         * config/h8300/mova.md: Regenerate.
10885         * doc/install.texi2html: Include word "Copyright" in copyright
10886         notice and use name "Free Software Foundation, Inc.".
10887         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10888         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10889         ChangeLog-2007, ChangeLog-2008: Correct dates.
10890
10891 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
10892
10893         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
10894         NE_EXPR operations as well.
10895         * c-parser.c (c_parser_condition): Do not set location information on
10896         the condition.
10897         (c_parser_conditional_expression): Likewise.
10898         (c_parser_binary_expression): Set location information on operators.
10899         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
10900         TRUTH_NOT_EXPR has been folded.
10901         * fold-const.c (fold_truth_not_expr): Copy location information from
10902         the incoming expression to the outgoing one.
10903         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
10904         recursive calls on the LHS of the operator but pass that of the
10905         operator to recursive calls on the RHS of the operator.  Set it
10906         on the COND_EXPR.
10907         (shortcut_cond_expr): Set the locus of the operator on the second
10908         COND_EXPR and that of the expression on the first in degenerate cases.
10909         Pass the locus of the expression to calls to shortcut_cond_r.
10910         Set the locus of the 'then' block on the associated jump, if any.
10911         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
10912         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
10913         expression to call to gimplify_boolean_expr.
10914
10915 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
10916
10917         * config.gcc: Add additional configuration for
10918         i686-w64-mingw* and x86_64-w64-mingw* triplet.
10919         * config/i386/mingw-w64.h: New mingw-w64 specific header.
10920         (CPP_SPEC): Redefine for allowing -municode option.
10921         (STARTFILE_SPEC): Likewise.
10922         * config/i386/t-mingw-w64: New.
10923         * config/i386/mingw-w64.opt: New.
10924         (municode): Add new target option.
10925         * doc/invoke.texi (municode): Add documentation for new option.
10926
10927 2009-04-21  Ian Lance Taylor  <iant@google.com>
10928
10929         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10930         Correct test for number of arguments.
10931         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
10932
10933 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
10934
10935         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
10936         argument of emit_library_call.
10937
10938 2009-04-21  Richard Guenther  <rguenther@suse.de>
10939
10940         PR middle-end/39829
10941         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
10942         inside VIEW_CONVERT_EXPRs.
10943
10944 2009-04-21  Martin Jambor  <mjambor@suse.cz>
10945
10946         * tree-switch-conversion.c (build_constructors): Split a long line.
10947         (constructor_contains_same_values_p): New function.
10948         (build_one_array): Create assigns of constants if possible, do not
10949         call mark_sym_for_renaming, call update_stmt.
10950         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
10951         make_rename_temp.  Do not call mark_symbols_for_renaming, call
10952         update_stmt.
10953         (gen_def_assigns): Do not call mark_symbols_for_renaming or
10954         find_new_referenced_vars, call update_stmt.
10955         (gen_inbound_check): Use create_tmp_var and create ssa names manually
10956         instead of calling make_rename_temp.  Do not call
10957         find_new_referenced_vars or mark_symbols_for_renaming, call
10958         update_stmt.
10959
10960 2009-04-21  Richard Guenther  <rguenther@suse.de>
10961
10962         PR tree-optimization/39827
10963         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
10964         (tree_ssa_phiprop): Pass the correct array size.
10965
10966 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
10967
10968         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
10969
10970 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10971
10972         PR 16202
10973         * c-typeck.c (lvalue_p): Move declaration ...
10974         * c-common.h (lvalue_p): ... to here.
10975         * c-common.c (candidate_equal_p): New.
10976         (add_tlist): Use it.
10977         (merge_tlist): Use it.
10978         (warn_for_collisions_1): Likewise.
10979         (warning_candidate_p): Accept more candidates.
10980         (verify_tree): A warning candidate can be an expression. Use
10981         candidate_equal_p.
10982
10983 2009-04-21  Ben Elliston  <bje@au.ibm.com>
10984
10985         PR target/5267
10986         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
10987         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
10988         options.  Remove -mcall-solaris documentation.
10989
10990 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10991
10992         PR c++/13358
10993         * doc/invoke.texi (-Wlong-long): Update description.
10994         * c-lex (interpret_integer): Only warn if there was no previous
10995         overflow and -Wlong-long is enabled.
10996         * c-decl.c (declspecs_add_type): Drop redundant flags.
10997         * c.opt (Wlong-long): Init to -1.
10998         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
10999         and front-end warn_long_long. Wlong-long only depends on other
11000         flags if it is uninitialized.
11001         * c-parser.c (disable_extension_diagnostics): warn_long_long is
11002         the same for CPP and FE.
11003         (restore_extension_diagnostics): Likewise.
11004
11005 2009-04-20  Ian Lance Taylor  <iant@google.com>
11006
11007         Fix enum conversions which are invalid in C++:
11008         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
11009         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
11010         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
11011         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
11012         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
11013         (dbxout_parms): Likewise.
11014         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
11015         (df_clear_flags): Likewise.
11016         * df-problems.c (df_rd_bb_local_compute_process_def): Change
11017         top_flag parameter to int.
11018         (df_chain_create_bb_process_use): Likewise.
11019         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
11020         Remove cast.
11021         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
11022         (df_ref_create_structure, df_def_record_1): Likewise.
11023         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
11024         (df_notes_rescan): Change 0 to VOIDmode in function call.
11025         (df_get_call_refs, df_insn_refs_collect): Likewise.
11026         (df_bb_regs_collect): Likewise.
11027         (df_entry_block_defs_collect): Likewise.
11028         (df_exit_block_uses_collect): Likewise.
11029         * df.h: Update declarations.
11030         * double-int.c (double_int_divmod): Add cast to enum type.
11031         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
11032         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
11033         (based_loc_descr): Likewise.
11034         (loc_descriptor_from_tree_1): Change first_op and second_op to
11035         enum dwarf_location_atom.  Add cast to enum type.
11036         * expmed.c (init_expmed): Change 0 to SET in function call.
11037         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
11038         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
11039         (do_store_flag): Likewise.
11040         * fixed-value.h (struct fixed_value): Change mode to enum
11041         machine_mode.
11042         * function.c (assign_parms): Change 0 to VOIDmode in function call.
11043         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
11044         function call.
11045         (insert_insn_decl, insert_decl, insert_state): Likewise.
11046         (automata_list_finish): Likewise.
11047         * genrecog.c (process_define_predicate): Add cast to enum type.
11048         * gensupport.c (init_predicate_table): Add cast to enum type.
11049         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
11050         function call.
11051         (gimple_build_call_1, gimple_build_label): Likewise.
11052         (gimple_build_goto, gimple_build_asm_1): Likewise.
11053         (gimple_build_switch_1, gimple_build_cdt): Likewise.
11054         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
11055         (enum fallback): Rename from enum fallback_t.
11056         (fallback_t): Typedef as int.
11057         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
11058         GSI_SAME_STMT in function call.
11059         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
11060         enum type.
11061         (setup_reg_class_relations): Likewise.
11062         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
11063         (setup_prohibited_class_mode_regs): Add cast to enum type.
11064         (setup_prohibited_mode_move_regs): Likewise.
11065         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
11066         (record_address_regs): Change i to enum reg_class.
11067         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
11068         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
11069         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
11070         (GET_MODE_2XWIDER_MODE): Likewise.
11071         (GET_CLASS_NARROWEST_MODE): Likewise.
11072         * omp-low.c (expand_omp_for): Add cast to enum type.
11073         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
11074         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
11075         * postreload.c (reload_cse_simplify_operands): Change rclass local
11076         to enum reg_class.
11077         * predict.c (combine_predictions_for_insn): Change best_predictor
11078         and predictor to enum br_predictor.
11079         (combine_predictions_for_bb): Likewise.
11080         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
11081         use SET_PREDICT_EXPR_OUTCOME.
11082         * real.c (real_arithmetic): Change icode to code in function call.
11083         * reginfo.c (init_move_cost): Add casts to enum type.
11084         (init_reg_sets_1, init_fake_stack_mems): Likewise.
11085         * regmove.c (regclass_compatible_p): Change class0 and class1 to
11086         enum reg_class.
11087         * reload.c (find_valid_class): Add casts to enum type.
11088         (push_reload): Change 0 to NO_REGS in function call.
11089         (find_reloads): Change this_alternative to array of enum
11090         reg_class.  Remove some now-unnecessary casts.
11091         (make_memloc): Change 0 to VOIDmode in function call.
11092         * reload1.c (reload): Change 0 to VOIDmode in function call.
11093         (eliminate_regs_1, elimination_effects): Likewise.
11094         (eliminate_regs_in_insn): Likewise.
11095         (emit_input_reload_insns): Add cast to enum type.
11096         (delete_output_reload): Change 0 to VOIDmode in function call.
11097         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
11098         to enum type in function call.
11099         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
11100         (SET_PREDICT_EXPR_OUTCOME): Define.
11101         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
11102         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
11103         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
11104         (dump_function): Likewise.
11105         * tree-dump.h: Update declarations.
11106         * tree-pass.h: Update declarations.
11107         * varasm.c (assemble_integer): Change mclass to enum mode_class.
11108         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
11109         enum type.
11110         (arm_rtx_costs_1): Correct parenthesization.
11111         (arm_rtx_costs): Add casts to enum type.
11112         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
11113         (vfp_emit_fstmd): Use add_rg_note.
11114         (emit_multi_reg_push, emit_sfm): Likewise.
11115         (thumb_set_frame_pointer): Likewise.
11116         (arm_expand_prologue): Likewise.
11117         (arm_regno_class): Change return type to enum reg_class.
11118         (thumb1_expand_prologue): Use add_reg_note.
11119         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
11120         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
11121         in function call.
11122         * config/arm/gentune.sh: Add cast to enum type.
11123         * config/arm/arm-tune.md: Rebuild.
11124         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
11125         (ix86_split_fp_branch, predict_jump): Likewise.
11126         (ix86_expand_multi_arg_builtin): Change sub_code from enum
11127         insn_code to enum rtx_code.
11128         (ix86_builtin_vectorized_function): Add cast to enum type.
11129         * config/i386/i386.md (truncdfsf2): Change slot to enum
11130         ix86_stack_slot.
11131         (truncxf<mode>2, isinf<mode>2): Likewise.
11132         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
11133         enum type.
11134         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
11135         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
11136         (insert_bundle_state): Change 1 to INSERT in function call.
11137         (ia64_add_bundle_selector_before): Likewise.
11138         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
11139         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
11140         (restore_stack_nonlocal): Likewise.
11141         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
11142         function call.
11143         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
11144         function call.
11145         (mips_rtx_costs): Likewise.
11146         (mips_override_options): Add casts to enum type.
11147         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
11148         in function call.
11149         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
11150         (store_reg, set_reg_plus_d): Likewise.
11151         (hppa_expand_prologue, hppa_profile_hook): Likewise.
11152         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11153         cast to enum type.
11154         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
11155         function call.
11156         (emit_unlikely_jump): Use add_reg_note.
11157         (rs6000_emit_allocate_stack): Likewise.
11158         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
11159         (output_toc): Change 1 to INSERT in function call.
11160         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
11161         (rs6000_initialize_trampoline): Likewise.
11162         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
11163         function call.
11164         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
11165         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
11166         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
11167         (save_gprs): Use add_reg_note.
11168         (s390_emit_prologue): Likewise.
11169         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
11170         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
11171         (sparc_fold_builtin): Add cast to enum type.
11172         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
11173         enum insn_code.
11174         (spu_expand_prologue): Use add_reg_note.
11175         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
11176
11177 2009-04-20  Ian Lance Taylor  <iant@google.com>
11178
11179         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
11180         (c_parser_postfix_expression_after_primary): Get VEC for list of
11181         arguments.  Get original types of arguments.  Call
11182         build_function_call_vec.
11183         (cached_expr_list_1, cached_expr_list_2): New static variables.
11184         (c_parser_expr_list): Change return type to VEC *.  Add
11185         p_orig_types parameter.  Change all callers.
11186         (c_parser_release_expr): New static function.
11187         (c_parser_vec_to_tree_list): New static function.
11188         * c-typeck.c (build_function_call): Rewrite to build a VEC and
11189         call build_function_call_vec.
11190         (build_function_call_vec): New function, based on old
11191         build_function_call.
11192         (convert_arguments): Remove nargs and argarray parameters.  Change
11193         values to a VEC.  Add origtypes parameter.
11194         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
11195         (convert_for_assignment): Add origtype parameter.  Change all
11196         callers.  If warn_cxx_compat, check for conversion to an enum
11197         type when calling a function.
11198         (store_init_value): Add origtype parameter.  Change all callers.
11199         (digest_init): Likewise.
11200         (struct init_node): Add origtype field.
11201         (add_pending_init): Add origtype parameter.  Change all callers.
11202         (output_init_element): Likewise.
11203         (output_pending_init_elements): Pass origtype from init_node to
11204         output_init_element.
11205         (process_init_element): Pass origtype from c_expr to
11206         output_init_element.
11207         (c_finish_return): Add origtype parameter.  Change all callers.
11208         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
11209         caller.
11210         (sync_resolve_params): Likewise.
11211         (sync_resolve_return): Change params to first_param.  Change caller.
11212         (resolve_overloaded_builtins): Change params to VEC *.  Change
11213         callers.  Save first parameter around call to build_function_call_vec.
11214         * c-decl.c (finish_decl): Add origtype parameter.  Change all
11215         callers.  Call build_function_call_vec rather than
11216         build_function_call for cleanup.
11217         * c-tree.h: Update declarations.
11218         * c-common.h: Update declarations.
11219         * stub-objc.c (objc_rewrite_function_call): Change parameter from
11220         params to first_param.
11221         * target.h (struct gcc_target): Change resolve_overloaded_builtin
11222         params parameter from tree to void *.
11223         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11224         Change arglist parameter to have type void *, and to be a pointer
11225         to a VEC.
11226         * config/rs6000/rs6000-protos.h
11227         (altivec_resolve_overloaded_builtin): Update declaration.
11228         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
11229         fnargs parameter to have type void *, and to be a pointer to a
11230         VEC.  Call build_function_call_vec instead of
11231         build_function_call.
11232         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
11233
11234 2009-04-20  Joey Ye  <joey.ye@intel.com>
11235             Xuepeng Guo  <xuepeng.guo@intel.com>
11236             H.J. Lu  <hongjiu.lu@intel.com>
11237
11238         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
11239
11240         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
11241         (IX86_LEA_PRIORITY): Likewise.
11242         (distance_non_agu_define): New function.
11243         (distance_agu_use): Likewise.
11244         (ix86_lea_for_add_ok): Likewise.
11245         (ix86_dep_by_shift_count): Likewise.
11246
11247         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
11248         should split for LEA.
11249
11250         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
11251         function.
11252         (ix86_dep_by_shift_count): Likewise.
11253
11254 2009-04-20  Richard Guenther  <rguenther@suse.de>
11255
11256         * expr.c (handled_component_p): Move ...
11257         * tree.h (handled_component_p): ... here.
11258         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
11259         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
11260         and REALPART_EXPR to be in one group.
11261
11262 2009-04-20  Richard Guenther  <rguenther@suse.de>
11263
11264         * basic-block.h (get_all_dominated_blocks): Declare.
11265         * dominance.c (get_all_dominated_blocks): New function.
11266         * tree-cfg.c (get_all_dominated_blocks): Remove.
11267         (remove_edge_and_dominated_blocks): Adjust.
11268         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
11269         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
11270         instead of recursing.
11271
11272 2009-04-20  Doug Kwan  <dougkwan@google.com>
11273
11274         * cgraph.h (cgraph_node_ptr): New type for vector functions.
11275         (struct cgraph_node_set_def): New type.
11276         (cgraph_node_set) New type. Also declare vector functions.
11277         (struct cgraph_node_set_element_def): New type.
11278         (cgraph_node_set_element): Ditto.
11279         (cgraph_node_set_iterator): New iterator type.
11280         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
11281         cgraph_node_set_remove, dump_cgraph_node_set,
11282         debug_cgraph_node_set): New prototypes.
11283         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
11284         cgraph_node_set_size): New inlines.
11285         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
11286         including cgraph.h.
11287         (struct ipa_opt_pass): Add struct cgraph_node_set_def
11288         argument to function 'write_summary'.
11289         * ipa.c: Include ggc.h.
11290         (hash_cgraph_node_set_element,
11291         eq_cgraph_node_set_element, cgraph_node_set_new,
11292         cgraph_node_set_add, cgraph_node_set_remove,
11293         cgraph_node_set_find, dump_cgraph_node_set,
11294         debug_cgraph_node_set): New functions.
11295         * Makefile.in (ipa.o): Add dependency on GGC_H.
11296
11297 2009-04-20  Ira Rosen  <irar@il.ibm.com>
11298
11299         PR tree-optimization/39675
11300         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
11301         check of the return code of vect_schedule_slp. Check that
11302         stmt_vec_info still exists for the statement, before checking its
11303         vectorization type.
11304
11305 2009-04-20  Michael Matz  <matz@suse.de>
11306
11307         * Makefile.in (generated_files): Take out $(simple_generated_c).
11308
11309 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
11310
11311         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
11312         (UINTPTR_TYPE):  Likewise.
11313
11314 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11315
11316         PR c/37481
11317         * c-typeck.c (digest_init): Check for initializing an array with a
11318         string literal.
11319
11320 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11321
11322         PR c/19771
11323         * c-semantics.c (pop_stmt_list): Propagate
11324         STATEMENT_LIST_HAS_LABEL to parent statement list.
11325
11326 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
11327
11328         * config/mips/mips.h (mips_tune_attr): New macro.
11329         * config/mips/mips.md (cpu): Use it.
11330
11331 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11332
11333         PR c/38243
11334         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
11335         declaring a tag.
11336
11337 2009-04-19  Diego Novillo  <dnovillo@google.com>
11338
11339         * toplev.c (compile_file): Move call to coverage_finish ...
11340         * cgraphunit.c (ipa_passes): ... here.
11341         Call cgraph_process_new_functions.
11342         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
11343         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
11344
11345 2009-04-19  Jan Hubicka  <jh@suse.cz>
11346
11347         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
11348         cfun.
11349         (dump_cgraph_node): Dump can throw external flag.
11350         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
11351
11352 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11353
11354         PR c/32061
11355         PR c++/36954
11356         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
11357         * common.opt (Wlogical-op): Move from here...
11358         * c.opt (Wlogical-op): ... to here.
11359         * c-typeck.c (parser_build_binary_op): Update call to
11360         warn_logical_operator.
11361         * c-opts.c (c_common_post_options): Enable warn_logical_op with
11362         extra_warnings.
11363         * c-common.c (warn_logical_op): Update.
11364         * c-common.h (warn_logical_op): Update declaration.
11365
11366 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11367
11368         * tree.c (protected_set_expr_location): Fix formatting.
11369
11370 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11371
11372         PR c/27676
11373         * c-typeck.c (readonly_warning): new.
11374         (build_unary_op, build_modify_expr): Use readonly_warning for
11375         storing into something readonly but not const-qualified.
11376
11377 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11378
11379         PR c/22367
11380         * c-typeck.c (build_unary_op): Check for taking address of
11381         expression of type void.
11382
11383 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11384
11385         PR c/35210
11386         * c-typeck.c (build_function_call): Check for calling a function
11387         with qualified void return types.  Call require_complete_type when
11388         generating a trap.
11389
11390 2009-04-18  Jan Hubicka  <jh@suse.cz>
11391
11392         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
11393         Set nothrow flag.
11394         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
11395         can_throw_external flag.
11396         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
11397         * ipa-pure-const.c (ignore_edge): New function.
11398         (propagate): Compute order for NOTHROW computation; set NOTHROWs
11399         only over can_throw_external edges.
11400         (local_pure_const): Add nothrow flag.
11401         * ipa-utils.c (searchc): Add ignore_edge callback.
11402         (ipa_utils_reduced_inorder): Add ignore_edge callback.
11403         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
11404         (set_nothrow_function_flags): Update cgraph.
11405         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
11406
11407 2009-04-18  Richard Guenther  <rguenther@suse.de>
11408
11409         PR middle-end/39804
11410         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
11411         (fold_stmt): ... this and ...
11412         (fold_stmt_inplace): ... this.
11413         (fold_stmt_1): Fold references in calls and asms.
11414         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
11415
11416 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11417
11418         * tree-vrp.c (ssa_name_nonzero_p): Remove.
11419         * tree.h: Remove the prototype for ssa_name_nonzero_p.
11420
11421 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11422
11423         * tree.c (function_args_count): Remove.
11424         * tree.h: Remove the prototype for function_args_count.
11425
11426 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11427
11428         * tree-iterator.c (expr_only): Remove.
11429         * tree.h: Remove the prototype for expr_only.
11430
11431 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11432
11433         * reginfo.c (cannot_change_mode_set_regs): Remove.
11434         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
11435
11436 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
11437
11438         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
11439         whether operands 0 and 1 overlaps.
11440
11441 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11442
11443         PR middle-end/36902
11444         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
11445         pointer. Use warning_at instead of warning.
11446         (search_for_addr_array): Likewise.
11447         (check_array_bounds): Likewise.
11448         (check_all_array_refs): Check that the incoming edge is not in the
11449         list of edges to be removed.
11450         (check_all_array_refs): Avoid the temporal pointer.
11451         (vrp_visit_cond_stmt): Fix typo.
11452         (simplify_switch_using_ranges): Handle the case where the switch
11453         index is an integer constant.
11454
11455 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
11456
11457         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
11458
11459 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11460
11461         * doc/extend.texi, doc/invoke.texi: Fix typos.
11462
11463 2009-04-17  Cary Coutant  <ccoutant@google.com>
11464
11465         * tree-flow-inline.h (get_lineno): Fix inverted test.
11466
11467 2009-04-17  Diego Novillo  <dnovillo@google.com>
11468
11469         * tree-ssa-pre.c (create_expression_by_pieces): Remove
11470         assertion for AVAIL_OUT.
11471
11472 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
11473
11474         PR target/38627
11475         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
11476         * config/sh/linux-atomic.asm: Likewise.
11477
11478 2009-04-17  Diego Novillo  <dnovillo@google.com>
11479
11480         * except.c (debug_eh_tree): New.
11481         (struct eh_region, struct eh_status): Move ...
11482         * except.h: ... here.
11483         (add_type_for_runtime): Declare extern.
11484         (lookup_type_for_runtime): Likewise.
11485         (debug_eh_tree): Declare.
11486         * Makefile.in (GTFILES): List except.h before except.c
11487
11488 2009-04-17  Diego Novillo  <dnovillo@google.com>
11489
11490         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
11491         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11492         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
11493         (find_vars_r): ... here.
11494         * tree-flow.h (find_referenced_vars_in): Declare.
11495         * tree-ssa-pre.c (create_expression_by_pieces): Assert
11496         that AVAIL_OUT exists for BLOCK.
11497         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
11498         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
11499         (tree-parloops.o): Likewise.
11500
11501 2009-04-17  Simon Baldwin  <simonb@google.com>
11502
11503         * toplev.c (default_tree_printer): Add handling for %E format.
11504
11505 2009-04-17  Diego Novillo  <dnovillo@google.com>
11506
11507         * tree-pretty-print.c (dump_generic_node): Add break after
11508         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
11509         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
11510         FUNCTION_TYPE together.  Call print_struct_decl when printing
11511         structures and TDF_SLIM is not given.
11512         (print_struct_decl): Fix logic for detecting recursion.
11513
11514 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11515
11516         PR 31567
11517         * gcc.c (create_at_file): New.
11518         (compile_input_file_p): New.
11519         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
11520         * main.c (main): Update call to toplev_main.
11521         * toplev.c (toplev_main): Change signature. Call expandargv.
11522         * toplev.h (toplev_main): Change signature.
11523
11524 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11525
11526         * dwarf2out.c (field_byte_offset): Use the type size as the field size
11527         if the latter is not constant.
11528
11529 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
11530
11531         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
11532
11533 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11534
11535         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
11536         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
11537
11538 2009-04-17  Richard Guenther  <rguenther@suse.de>
11539
11540         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11541         Handle component references view-converting an invariant address.
11542
11543 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
11544
11545         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
11546         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
11547         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
11548         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
11549         Use @deftypevr rather than @deftypevar.
11550
11551 2009-04-17  Richard Guenther  <rguenther@suse.de>
11552
11553         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
11554         (get_prop_source_stmt): Likewise.
11555         (can_propagate_from): Likewise.
11556
11557 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
11558
11559         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
11560         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
11561         (--with-multilib-list): Add default value.
11562         * configure: Regenerate.
11563         * Makefile.in (TM_ENDIAN_CONFIG): Define.
11564         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
11565         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
11566         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
11567         Don't add default cpu to multilib list unnecessarily, but do enable
11568         the relevant compiler option..
11569         Add support for --with-multilib-list=<blank> and
11570         --with-multilib-list=!<somelib> to supress unwanted multilibs.
11571         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
11572         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
11573         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
11574         TM_MULTILIB_CONFIG.
11575         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
11576         (MULTILIB_OSDIRNAMES): New variable.
11577         * config/sh/t-1e: Delete file.
11578         * config/sh/t-mlib-sh1: Delete file.
11579         * config/sh/t-mlib-sh2: Delete file.
11580         * config/sh/t-mlib-sh2a: Delete file.
11581         * config/sh/t-mlib-sh2a-nofpu: Delete file.
11582         * config/sh/t-mlib-sh2a-single: Delete file.
11583         * config/sh/t-mlib-sh2a-single-only: Delete file.
11584         * config/sh/t-mlib-sh2e: Delete file.
11585         * config/sh/t-mlib-sh3e: Delete file.
11586         * config/sh/t-mlib-sh4: Delete file.
11587         * config/sh/t-mlib-sh4-nofpu: Delete file.
11588         * config/sh/t-mlib-sh4-single: Delete file.
11589         * config/sh/t-mlib-sh4-single-only: Delete file.
11590         * config/sh/t-mlib-sh4a: Delete file.
11591         * config/sh/t-mlib-sh4a-nofpu: Delete file.
11592         * config/sh/t-mlib-sh4a-single: Delete file.
11593         * config/sh/t-mlib-sh4a-single-only: Delete file.
11594         * config/sh/t-mlib-sh4al: Delete file.
11595         * config/sh/t-mlib-sh5-32media: Delete file.
11596         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
11597         * config/sh/t-mlib-sh5-64media: Delete file.
11598         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
11599         * config/sh/t-mlib-sh5-compact: Delete file.
11600         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
11601         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
11602         * doc/install.texi (Options specification): Add
11603         --with-multilib-list and --with-endian.
11604
11605 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11606
11607         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
11608         REVISION_c.
11609         (OBJS-common): Add plugin-version.o.
11610         (plugin-version.o): New.
11611         * gcc-plugin.h (plugin_gcc_version): New.
11612         (plugin_default_version_check): New.
11613         (plugin_init_func, plugin_init): Add version argument.
11614         * plugin-version.c: New.
11615         * plugin.c (str_plugin_gcc_version_name): New.
11616         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
11617         pass it to the init function.
11618         (plugin_default_version_check): New.
11619
11620 2009-04-17  Richard Guenther  <rguenther@suse.de>
11621
11622         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
11623         for decl-vs-decl disambiguation.
11624
11625 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11626
11627         * config/s390/s390.h (s390_tune_attr): New macro definition.
11628         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
11629
11630 2009-04-17  Richard Guenther  <rguenther@suse.de>
11631
11632         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
11633         (fold_stmt_r): Likewise.
11634         (maybe_fold_reference): New function.
11635         (fold_gimple_assign): Handle cases fold_stmt_r did.
11636         (fold_stmt): Do not use fold_stmt_r.
11637         (fold_stmt_inplace): Likewise.
11638
11639 2009-04-17  Richard Guenther  <rguenther@suse.de>
11640
11641         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
11642         (record_equivalences_from_stmt): Remove useless checks and
11643         simplifications.
11644         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
11645         the type is already suitable.
11646
11647 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
11648
11649         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
11650
11651 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
11652
11653         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
11654         (CMPtype): Define as __gcc_CMPtype.
11655
11656 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
11657
11658         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
11659         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
11660
11661 2009-04-17  Richard Guenther  <rguenther@suse.de>
11662
11663         PR tree-optimization/39746
11664         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
11665         special-casing for builtins and static variable use/def.
11666         (call_may_clobber_ref_p_1): Likewise.
11667
11668 2009-04-16  Ian Lance Taylor  <iant@google.com>
11669
11670         * df.h: Include "timevar.h".
11671         (struct df_problem): Change tv_id field to timevar_id_t.
11672         * tree-pass.h: Include "timevar.h".
11673         (struct opt_pass): Change tv_id field to timevar_id_t.
11674         * timevar.h (timevar_id_t): Define TV_NONE.
11675         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
11676         TV_NONE rather than tv_id != 0.
11677         (execute_one_pass): Likewise.
11678         * Makefile.in (DF_H): Add $(TIMEVAR_H).
11679         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
11680         dependencies to $(TREE_PASS_H).
11681         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
11682         to TV_NONE.
11683         (pass_branch_target_load_optimize2): Likewise.
11684         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
11685         (pass_outof_cfg_layout_mode): Likewise.
11686         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
11687         (pass_rebuild_cgraph_edges): Likewise.
11688         (pass_remove_cgraph_callee_edges): Likewise.
11689         * df-core.c (pass_df_initialize_opt): Likewise.
11690         (pass_df_initialize_no_opt): Likewise.
11691         (pass_df_finish): Likewise.
11692         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
11693         * except.c (pass_set_nothrow_function_flags): Likewise.
11694         (pass_convert_to_eh_region_ranges): Likewise.
11695         * final.c (pass_compute_alignments): Likewise.
11696         * function.c (pass_instantiate_virtual_regs): Likewise.
11697         (pass_init_function): Likewise.
11698         (pass_leaf_regs): Likewise.
11699         (pass_match_asm_constraints): Likewise.
11700         * gimple-low.c (pass_lower_cf): Likewise.
11701         (pass_mark_used_blocks): Likewise.
11702         * init-regs.c (pass_initialize_regs): Likewise.
11703         * integrate.c (pass_initial_value_sets): Likewise.
11704         * ira.c (pass_ira): Likewise.
11705         * jump.c (pass_cleanup_barriers): Likewise.
11706         * omp-low.c (pass_expand_omp): Likewise.
11707         (pass_lower_omp): Likewise.
11708         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
11709         * recog.c (pass_split_all_insns): Likewise.
11710         (pass_split_after_reload): Likewise.
11711         (pass_split_before_regstack): Likewise.
11712         (pass_split_before_sched2): Likewise.
11713         (pass_split_for_shorten_branches): Likewise.
11714         * reginfo.c (pass_reginfo_init): Likewise.
11715         (pass_subregs_of_mode_init): Likewise.
11716         (pass_subregs_of_mode_finish): Likewise.
11717         * passes.c (pass_postreload): Likewise.
11718         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
11719         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
11720         (pass_warn_function_return): Likewise.
11721         (pass_warn_function_noreturn): Likewise.
11722         * tree-complex.c (pass_lower_complex): Likewise.
11723         (pass_lower_complex_O0): Likewise.
11724         * tree-if-conv.c (pass_if_conversion): Likewise.
11725         * tree-into-ssa.c (pass_build_ssa): Likewise.
11726         * tree-mudflap.c (pass_mudflap_1): Likewise.
11727         (pass_mudflap_2): Likewise.
11728         * tree-nomudflap.c (pass_mudflap_1): Likewise.
11729         (pass_mudflap_2): Likewise.
11730         * tree-nrv.c (pass_return_slot): Likewise.
11731         * tree-object-size.c (pass_object_sizes): Likewise.
11732         * tree-optimize.c (pass_all_optimizations): Likewise.
11733         (pass_early_local_passes): Likewise.
11734         (pass_all_early_optimizations): Likewise.
11735         (pass_cleanup_cfg): Likewise.
11736         (pass_cleanup_cfg_post_optimizing): Likewise.
11737         (pass_free_datastructures): Likewise.
11738         (pass_free_cfg_annotations): Likewise.
11739         (pass_fixup_cfg): Likewise.
11740         (pass_init_datastructures): Likewise.
11741         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
11742         (pass_late_warn_uninitialized): Likewise.
11743         (pass_update_address_taken): Likewise.
11744         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
11745         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
11746         (pass_cse_sincos): Likewise.
11747         (pass_convert_to_rsqrt): Likewise.
11748         * tree-ssa-structalias.c (pass_build_alias): Likewise.
11749         * tree-stdarg.c (pass_stdarg): Likewise.
11750         * tree-tailcall.c (pass_tail_recursion): Likewise.
11751         (pass_tail_calls): Likewise.
11752         * tree-vect-generic.c (pass_lower_vector): Likewise.
11753         (pass_lower_vector_ssa): Likewise.
11754         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
11755
11756 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
11757
11758         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
11759         XLR entry.
11760         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
11761         Handle -march=xlr.
11762         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
11763         logical and signext.
11764
11765 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11766
11767         PR target/39767
11768         * config/sh/predicates.md (arith_operand): Check if the operand
11769         of TRUNCATE is a REG.
11770
11771 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11772
11773         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
11774         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
11775
11776 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11777
11778         * tree-iterator.c (tsi_split_statement_list_after,
11779         tsi_split_statement_list_before): Remove.
11780         * tree-iterator.h: Remove the prototypes for
11781         tsi_split_statement_list_after and tsi_split_statement_list_before.
11782
11783 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11784
11785         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
11786         * tree-ssa-propagate.h: Remove the prototype for
11787         stmt_makes_single_load.
11788
11789 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11790
11791         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
11792         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
11793
11794 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11795
11796         * tree-iterator.c (EXPR_LAST_BODY): Remove.
11797
11798 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11799
11800         * except.c (eh_region_outer_p): Remove.
11801         * except.h: Remove the prototype for eh_region_outer_p.
11802
11803 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11804
11805         * function.c (current_function_assembler_name): Remove.
11806         * function.h: Remove the prototype for
11807         current_function_assembler_name.
11808
11809 2009-04-16  Ian Lance Taylor  <iant@google.com>
11810
11811         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
11812         (add_reg_note): Call alloc_reg_note.
11813         * rtl.h (alloc_reg_note): Declare.
11814         * combine.c (try_combine): Use alloc_reg_note.
11815         (recog_for_combine, move_deaths): Likewise.
11816         (distribute_notes): Use alloc_reg_note and add_reg_note.
11817         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
11818         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
11819         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
11820
11821 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
11822
11823         PR rtl-optimization/39762
11824         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
11825         ira_may_move_out_cost): Add comments about way of their usage.
11826         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
11827
11828         * ira-conflicts.c (process_regs_for_copy): Use function
11829         ira_get_register_move_cost instead of global
11830         ira_register_move_cost.
11831
11832         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
11833         color_pass, move_spill_restore, update_curr_costs): Ditto.
11834
11835         * ira-lives.c (process_single_reg_class_operands): Ditto.
11836
11837         * ira-emit.c (emit_move_list): Ditto.
11838
11839         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
11840         (record_reg_classes): Ditto.  Use functions
11841         ira_get_register_move_cost and ira_get_may_move_cost instead of
11842         global vars ira_register_move_cost, ira_may_move_out_cost and
11843         ira_may_move_in_cost.
11844         (record_address_regs): Don't call ira_init_register_move_cost.
11845         Use function ira_get_may_move_cost instead of global
11846         ira_may_move_in_cost.
11847         (process_bb_node_for_hard_reg_moves): Use function
11848         ira_get_register_move_cost instead of global ira_register_move_cost.
11849         (ira_costs): Don't call ira_init_register_move_cost.
11850
11851 2009-04-16  Richard Guenther  <rguenther@suse.de>
11852
11853         * tree-cfg.c (verify_gimple_assign_binary):
11854         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
11855         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
11856         (create_general_new_stmt): Note that this function is broken.
11857
11858 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11859
11860         * common.opt (fhelp): Add Var(help_flag).
11861         * gcc-plugin.h (plugin_info): Add help.
11862         * plugin.c (plugin_name_args): Add help.
11863         (register_plugin_info): Set plugin->help.
11864         (print_help_one_plugin): New.
11865         (print_plugins_help): New.
11866         * plugin.h (print_plugins_help): New.
11867         * toplev.c (toplev_main): Call print_plugins_help if needed.
11868
11869 2009-04-16  Richard Guenther  <rguenther@suse.de>
11870
11871         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
11872         (gimple_ior_addresses_taken_1): New function.
11873         (gimple_ior_addresses_taken): Likewise.
11874         * gimple.h (struct gimple_statement_with_ops_base): Remove
11875         addresses_taken member.
11876         (gimple_ior_addresses_taken): Declare.
11877         (gimple_addresses_taken, gimple_addresses_taken_ptr,
11878         gimple_set_addresses_taken): Remove.
11879         * ipa-reference.c (mark_address): New function.
11880         (scan_stmt_for_static_refs): Use it for marking addresses taken.
11881         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
11882         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
11883         (gimple_add_to_addresses_taken): Remove.
11884         (get_tmr_operands): Call mark_address_taken.
11885         (get_asm_expr_operands): Likewise.
11886         (get_expr_operands): Likewise.
11887         (build_ssa_operands): Do not clear the addresses_taken bitmap.
11888         (free_stmt_operands): Do not free it.
11889         * tree-ssa.c (delete_tree_ssa): Likewise.
11890         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
11891
11892 2009-04-16  Richard Guenther  <rguenther@suse.de>
11893
11894         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
11895         (walk_stmt_load_store_ops): Likewise.
11896         * gimple.c (get_base_loadstore): New function.
11897         (walk_stmt_load_store_addr_ops): Likewise.
11898         (walk_stmt_load_store_ops): Likewise.
11899         * ipa-pure-const.c (check_op): Simplify.
11900         (check_load, check_store): New functions.
11901         (check_stmt): Use walk_stmt_load_store_ops.
11902         * ipa-reference.c (mark_load): Adjust signature.
11903         (mark_store): Likewise.
11904         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
11905
11906 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11907
11908         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
11909         (plugin_info): New.
11910         * opts.c (common_handle_option): Don't call print_version.
11911         * plugin.c (plugin_name_args): Add version.
11912         (register_plugin_info): New.
11913         (register_callback): Handle PLUGIN_INFO.
11914         (try_init_one_plugin): New.
11915         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
11916         if failed to init.
11917         (finalize_one_plugin): New.
11918         (finalize_plugins): New.
11919         (print_one_plugin): New.
11920         (print_plugins_versions): New.
11921         * plugin.h (print_plugins_versions): New.
11922         (finalize_plugins): New.
11923         * toplev.c (compile_file): Don't call initialize_plugins.
11924         (print_version): Call print_plugins_versions.
11925         (toplev_main): Call initialize_plugins. Print version if needed.
11926         Call finalize_plugins.
11927
11928 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11929
11930         * common.opt (fversion): New.
11931         * gcc.c (print_version): New.
11932         (process_command): Don't print the version. Just set print_version.
11933         (main): Print version. Call subprocesses if print_version and
11934         verbose_flag are set.
11935         * opts.c (common_handle_option): Handle OPT_fversion.
11936
11937 2009-04-16  Richard Guenther  <rguenther@suse.de>
11938             Ira Rosen  <irar@il.ibm.com>
11939
11940         PR tree-optimization/39698
11941         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
11942         type of the reduction variable.  Only generate the def if
11943         it is needed.
11944
11945         * omp-low.c (expand_omp_for_generic): When converting to a pointer
11946         make sure to first convert to an integer of the same precision.
11947         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
11948         the type of the evolution correctly in computing the new
11949         induction variable base.
11950
11951 2009-04-16  Richard Guenther  <rguenther@suse.de>
11952
11953         PR middle-end/39625
11954         * tree-cfg.c (make_blocks): Split statements with to-be
11955         abnormal SSA names on the lhs.
11956
11957 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
11958
11959         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
11960         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
11961         * c-typeck.c (really_start_incremental_init): Likewise.
11962         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
11963         (TARGET_INITIALIZER): Remove it.
11964         * target.h (struct target): Remove vector_opaque_p.
11965         * tree.c (build_opaque_vector_type): New.
11966         * tree.h (TYPE_VECTOR_OPAQUE): New.
11967         (build_opaque_vector_type): Declare.
11968         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
11969         * config/rs6000/rs6000.c (build_opaque_vector_type,
11970         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
11971         (rs6000_init_builtins): Use build_opaque_vector_type for
11972         opaque_V4SI_type_node.
11973
11974 2009-04-15  Catherine Moore  <clm@codesourcery.com>
11975
11976         * debug.h (set_name):  Declare.
11977         * dwarf2out.c (dwarf2out_set_name): Declare.
11978         (dwarf2_debug_hooks): Add set_name.
11979         (find_AT_string): New.
11980         (add_AT_string): Call find_AT_string.
11981         (dwarf2out_set_name): New.
11982         * cp/decl.c (grokdeclarator): Call set_name.
11983         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
11984         * debug.c (do_nothing_debug_hooks):  Likewise.
11985         * dbxout.c (dbx_debug_hooks): Likewise.
11986         * sdbout.c (sdb_debug_hooks): Likewise.
11987
11988 2009-04-15  Michael Eager  <eager@eagercon.com>
11989
11990         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
11991         reg for single-precision FPU.
11992         * config/rs6000/rs6000.md (movsi_internal1): Only for
11993         !TARGET_SINGLE_FPU.
11994         (movsi_internal1_single): New. Add pattern to move SI values to/from
11995         single-precision FP regs.
11996
11997 2009-04-15  Richard Guenther  <rguenther@suse.de>
11998
11999         * omp-low.c (lower_rec_input_clauses): Build correct address
12000         expressions.
12001         (expand_omp_for_generic): Fix multiplication type.
12002         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
12003         (generate_memset_zero): Fix types.
12004         * tree-profile.c (prepare_instrumented_value): Correctly
12005         widen a pointer.
12006
12007 2009-04-15  Ian Lance Taylor  <iant@google.com>
12008
12009         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
12010         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
12011         for -Wall and for -Wc++-compat.
12012         (c_common_post_options): For C++, set warn_enum_compare if not
12013         already set.
12014         * c-tree.h (struct c_expr): Add field original_type.
12015         (build_external_ref): Update declaration.
12016         * c-parser.c (c_parser_braced_init): Set original_type.
12017         (c_parser_initelt): Likewise.
12018         (c_parser_expr_no_commas): Likewise.
12019         (c_parser_conditional_expression): Likewise.
12020         (c_parser_cast_expression): Likewise.
12021         (c_parser_unary_expression): Likewise.  Pull setting of
12022         original_code to top of function.
12023         (c_parser_sizeof_expression): Set original_type.
12024         (c_parser_alignof_expression): Likewise.
12025         (c_parser_postfix_expression): Likewise.  Pull setting of
12026         original_code to top of function.
12027         (c_parser_postfix_expression_after_paren_type): Set original_type.
12028         (c_parser_postfix_expression_after_primary): Likewise.
12029         (c_parser_expression): Likewise.
12030         * c-typeck.c (build_external_ref): Add type parameter.  Change all
12031         callers.
12032         (c_expr_sizeof_expr): Set original_type field.
12033         (parser_build_unary_op): Likewise.
12034         (parser_build_binary_op): Likewise.  Optionally warn about
12035         comparisons of enums of different types.
12036         (digest_init): Set original_type field.
12037         (really_start_incremental_init): Likewise.
12038         (push_init_level, pop_init_level): Likewise.
12039         * doc/invoke.texi (Warning Options): -Wenum-compare now
12040         supported in C.
12041
12042 2009-04-15  Richard Guenther  <rguenther@suse.de>
12043
12044         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
12045         out a necessary conversion.
12046         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
12047         names we didn't value number.
12048         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
12049
12050 2009-04-15  Richard Guenther  <rguenther@suse.de>
12051
12052         PR tree-optimization/39764
12053         * tree-ssa-ccp.c (get_value): Canonicalize value with
12054         canonicalize_float_value.
12055
12056 2009-04-15  Jan Hubicka  <jh@suse.cz>
12057
12058         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
12059         Wrong version of patch.
12060
12061 2009-04-15  Jan Hubicka  <jh@suse.cz>
12062
12063         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
12064
12065 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
12066
12067         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
12068         our distinct integral and vector types.
12069
12070 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
12071
12072         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
12073         * init.c (build_vtbl_address): Remove call to assemble_external.
12074
12075 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
12076
12077         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
12078         output for other floating point modes.
12079
12080 2009-04-14  Diego Novillo  <dnovillo@google.com>
12081
12082         * diagnostic.c (diagnostic_report_diagnostic): Do not
12083         warn about loaded plugins for DK_ERROR and DK_WARNING.
12084         * c-decl.c (declspecs_add_type): Move call to
12085         invoke_plugin_callbacks ...
12086         * c-parser.c (c_parser_declspecs): ... here.
12087         * plugin.c (dump_active_plugins): Tidy output.
12088
12089 2009-04-14  Diego Novillo  <dnovillo@google.com>
12090             Le-Chun Wu  <lcwu@google.com>
12091
12092         * configure.ac: Add --enable-plugin support.
12093         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
12094         * Makefile.in (PLUGIN_H): Define.
12095         Export ENABLE_PLUGIN and GMPINC to site.exp.
12096         Add PLUGINLIBS to link command.
12097         Add/modify dependencies for plugin.o and files including plugin.h.
12098         (plugin.o): New.
12099         * config.in: Regenerate.
12100
12101         * opts.c (common_handle_option): Handle OPT_fplugin_ and
12102         OPT_fplugin_arg_.
12103
12104 2009-04-14  Le-Chun Wu  <lcwu@google.com>
12105
12106         * tree-pass.h (register_one_dump_file): Add a prototype for
12107         register_one_dump_file.
12108         * toplev.c (compile_file): Call initialize_plugins.
12109         (do_compile): Call invoke_plugin_callbacks.
12110         (toplev_main): Call invoke_plugin_callbacks.
12111         * common.opt: Add -fplugin= and -fplugin-arg-.
12112         * gcc-plugin.h: New public header file for plugins to include.
12113         * plugin.c: New source file.
12114         * plugin.h: New internal header file.
12115         * passes.c (register_one_dump_file): Make it external.
12116
12117         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
12118
12119 2009-04-14  Diego Novillo  <dnovillo@google.com>
12120
12121         * doc/plugins.texi: New.
12122         * doc/gccint.texi: Add reference to Plugins chapter.
12123         * doc/invoke.texi: Document -fplugin and -fplugin-arg
12124         * diagnostic.c (diagnostic_report_diagnostic): Warn about
12125         loaded plugins, if any.
12126         * timevar.def (TV_PLUGIN_INIT): Define.
12127         (TV_PLUGIN_RUN): Define.
12128         * plugin.c: Include timevar.h
12129         (plugins_active_p): New.
12130         (dump_active_plugins): New.
12131         (debug_active_plugins): New.
12132
12133 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
12134
12135         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
12136         library paths.
12137         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
12138
12139 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
12140
12141         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
12142         the same as a minus without a shift.
12143
12144 2009-04-14  Nick Clifton  <nickc@redhat.com>
12145
12146         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
12147         comparisons with small integers will always produce a short
12148         branch.
12149
12150 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
12151
12152         Merge:
12153         2008-12-19  Diego Novillo  <dnovillo@google.com>
12154
12155         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
12156
12157 2009-04-14  Richard Guenther  <rguenther@suse.de>
12158
12159         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
12160         verification.
12161         (verify_gimple_assign_binary): Likewise.  Handle shifts and
12162         rotates correctly.
12163         (verify_gimple_phi): Print the mismatched argument position.
12164         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12165         Fix types.
12166         (vect_update_init_of_dr): Likewise.
12167         * matrix-reorg.c (transform_access_sites): Do what the
12168         comment suggests.
12169         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
12170
12171 2009-04-13  Michael Eager  <eager@eagercon.com>
12172
12173         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
12174         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
12175         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
12176         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
12177         remove duplicate config
12178
12179 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
12180
12181         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
12182         file_name:line_number type locator of the call site.
12183
12184 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
12185
12186         * genautomata.c: Put blank after comma.
12187         (automaton_decls): New.
12188         (struct unit_usage): Add comments to member next.
12189         (store_alt_unit_usage): Keep the list ordered.
12190         (unit_present_on_list_p, equal_alternatives_p): New.
12191         (check_regexp_units_distribution): Check units distribution
12192         correctness correctly.
12193         (main): Don't write automata if error is found.  Return correct
12194         exit code.
12195
12196         * config/m68k/cf.md (cfv4_ds): Remove.
12197         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
12198         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
12199
12200         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
12201         power4-load-ext, power4-store, power4-store-update,
12202         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
12203         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
12204         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
12205         power4-sqrt, power4-isync): Modify reservation to make correct
12206         unit distribution to automata.
12207
12208         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
12209         power5-store-update, power5-two, power5-three, power5-lmul,
12210         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
12211
12212 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
12213
12214         * except.c (pass_set_nothrow_function_flags): Set name and add
12215         TODO_dump_func.
12216         (set_nothrow_function_flags): Mention in the dump file when
12217         changing a function to nothrow.
12218
12219 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
12220
12221         PR/39066
12222         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
12223         instead of unsigned long.
12224
12225 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12226
12227         * config/arm/arm.c (return_used_this_function): Remove.
12228         (arm_output_function_prologue): Remove use of
12229         return_used_this_function.
12230         (output_return_instruction): Replace use of
12231         return_used_this_function
12232         by cfun->machine->return_used_this_function.
12233         (arm_output_epilogue): Likewise.
12234         (arm_output_function_epilogue): Likewise.
12235         (thumb_unexpanded_epilogue): Likewise.
12236         * config/arm/arm.h (struct machine_function):
12237         New member return_used_this_function.
12238
12239 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
12240
12241         * doc/install.texi: Correct description of default directory for
12242         --with-gxx-include-dir.
12243
12244 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
12245
12246         * fold-const.c (build_range_check): Properly deal with enumeral and
12247         boolean base types.
12248
12249 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
12250
12251         * doc/invoke.texi (max_gcse_passes): Remove documentation.
12252         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
12253         * params.h (MAX_GCSE_PASSES): Remove.
12254         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
12255         in sequence.  Remove ability to run multiple passes.
12256         (bypass_jumps): Report run as third CPROP pass.
12257
12258 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
12259
12260         PR middle-end/39651
12261         * except.c (can_throw_external): Look at each insn in a SEQUENCE
12262         when deciding whether the whole SEQUENCE can throw.
12263
12264 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
12265
12266         PR target/39740
12267         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
12268         offseted label references.
12269
12270 2009-04-11  Jan Hubicka  <jh@suse.cz>
12271
12272         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
12273
12274 2009-04-11  Richard Guenther  <rguenther@suse.de>
12275
12276         PR middle-end/39732
12277         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
12278         return variables as TREE_ADDRESSABLE.
12279
12280 2009-04-11  Richard Guenther  <rguenther@suse.de>
12281
12282         PR tree-optimization/39713
12283         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
12284         reference trees have SSA_NAME operands.
12285
12286 2009-04-11  Richard Guenther  <rguenther@suse.de>
12287
12288         PR c/39712
12289         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
12290         address expressions.
12291
12292 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
12293
12294         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
12295         match changes in Cygwin 1.7
12296         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
12297         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
12298
12299 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12300
12301         PR tree-optimization/39701
12302         * doc/invoke.texi (Optimization Options): Document change in
12303         meaning and initialization of -fdelete-null-pointer-checks.
12304
12305 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12306
12307         PR middle-end/39701
12308         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
12309
12310         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
12311         here.
12312
12313         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
12314
12315 2009-04-10  Chao-ying Fu  <fu@mips.com>
12316
12317         * doc/tm.texi (Instruction Output): Document
12318         TARGET_ASM_FINAL_POSTSCAN_INSN.
12319         * target.h (final_postscan_insn): New field in asm_out.
12320         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12321         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
12322         * final.c (final_scan_insn): Call
12323         targetm.asm_out.final_postscan_insn after outputting
12324         an asm macro and a normal instruction.
12325
12326         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
12327         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
12328         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
12329         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
12330         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12331
12332 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12333
12334         PR middle-end/39701
12335         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
12336         variables as non-NULL even with -fdelete-null-pointer-checks.
12337
12338 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12339
12340         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
12341
12342 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
12343
12344         PR target/39678
12345         * config/i386/i386.c (classify_argument): Handle SCmode with
12346         (bit_offset % 64) != 0.
12347
12348 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
12349
12350         * doc/invoke.texi (Optimize Options): Add cross-reference to
12351         -Q --help=optimizers examples.
12352
12353 2009-04-10  Ben Elliston  <bje@au.ibm.com>
12354
12355         PR target/36800
12356         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
12357         regalign for the reg == fpr and TDmode case.
12358
12359 2009-04-09  David Ayers  <ayers@fsfe.org>
12360
12361         PR objc/29200
12362         * objc/objc-act.c (warn_with_method): Remove helper function.
12363         (check_duplicates): Call warning and inform directly.
12364         (really_start_method): Likewise.
12365
12366 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12367
12368         * expmed.c (expand_divmod): Always use a comparison for a division
12369         by a large unsigned integer.
12370
12371         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
12372         for things others than variables or functions as nonzero.
12373
12374 2009-04-09  Nick Clifton  <nickc@redhat.com>
12375
12376         * unwind-compat.c: Change copyright header to refer to version
12377         3 of the GNU General Public License with version 3.1 of the
12378         GCC Runtime Library Exception and to point readers at the
12379         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
12380         * config/alpha/crtfastmath.c: Likewise.
12381         * config/alpha/linux-unwind.h: Likewise.
12382         * config/alpha/qrnnd.asm: Likewise.
12383         * config/alpha/vms-crt0-64.c: Likewise.
12384         * config/alpha/vms-crt0.c: Likewise.
12385         * config/alpha/vms-dwarf2.asm: Likewise.
12386         * config/alpha/vms-dwarf2eh.asm: Likewise.
12387         * config/alpha/vms-psxcrt0-64.c: Likewise.
12388         * config/alpha/vms-psxcrt0.c: Likewise.
12389         * config/alpha/vms_tramp.asm: Likewise.
12390         * config/arc/initfini.c: Likewise.
12391         * config/arc/lib1funcs.asm: Likewise.
12392         * config/arm/bpabi-v6m.S: Likewise.
12393         * config/arm/bpabi.S: Likewise.
12394         * config/arm/bpabi.c: Likewise.
12395         * config/arm/crti.asm: Likewise.
12396         * config/arm/crtn.asm: Likewise.
12397         * config/arm/ieee754-df.S: Likewise.
12398         * config/arm/ieee754-sf.S: Likewise.
12399         * config/arm/lib1funcs.asm: Likewise.
12400         * config/arm/libunwind.S: Likewise.
12401         * config/arm/linux-atomic.c: Likewise.
12402         * config/arm/mmintrin.h: Likewise.
12403         * config/arm/pr-support.c: Likewise.
12404         * config/arm/unaligned-funcs.c: Likewise.
12405         * config/arm/unwind-arm.c: Likewise.
12406         * config/arm/unwind-arm.h: Likewise.
12407         * config/avr/libgcc.S: Likewise.
12408         * config/bfin/crti.s: Likewise.
12409         * config/bfin/crtlibid.s: Likewise.
12410         * config/bfin/crtn.s: Likewise.
12411         * config/bfin/lib1funcs.asm: Likewise.
12412         * config/bfin/linux-unwind.h: Likewise.
12413         * config/cris/arit.c: Likewise.
12414         * config/cris/cris_abi_symbol.c: Likewise.
12415         * config/darwin-64.c: Likewise.
12416         * config/darwin-crt2.c: Likewise.
12417         * config/darwin-crt3.c: Likewise.
12418         * config/darwin.h: Likewise.
12419         * config/dbxelf.h: Likewise.
12420         * config/dfp-bit.c: Likewise.
12421         * config/dfp-bit.h: Likewise.
12422         * config/elfos.h: Likewise.
12423         * config/fixed-bit.c: Likewise.
12424         * config/fixed-bit.h: Likewise.
12425         * config/fp-bit.c: Likewise.
12426         * config/fp-bit.h: Likewise.
12427         * config/fr30/crti.asm: Likewise.
12428         * config/fr30/crtn.asm: Likewise.
12429         * config/fr30/lib1funcs.asm: Likewise.
12430         * config/freebsd-spec.h: Likewise.
12431         * config/frv/cmovd.c: Likewise.
12432         * config/frv/cmovh.c: Likewise.
12433         * config/frv/cmovw.c: Likewise.
12434         * config/frv/frvbegin.c: Likewise.
12435         * config/frv/frvend.c: Likewise.
12436         * config/frv/lib1funcs.asm: Likewise.
12437         * config/glibc-stdint.h: Likewise.
12438         * config/h8300/clzhi2.c: Likewise.
12439         * config/h8300/crti.asm: Likewise.
12440         * config/h8300/crtn.asm: Likewise.
12441         * config/h8300/ctzhi2.c: Likewise.
12442         * config/h8300/fixunssfsi.c: Likewise.
12443         * config/h8300/lib1funcs.asm: Likewise.
12444         * config/h8300/parityhi2.c: Likewise.
12445         * config/h8300/popcounthi2.c: Likewise.
12446         * config/i386/ammintrin.h: Likewise.
12447         * config/i386/att.h: Likewise.
12448         * config/i386/avxintrin.h: Likewise.
12449         * config/i386/biarch64.h: Likewise.
12450         * config/i386/bmmintrin.h: Likewise.
12451         * config/i386/cpuid.h: Likewise.
12452         * config/i386/cross-stdarg.h: Likewise.
12453         * config/i386/crtfastmath.c: Likewise.
12454         * config/i386/crtprec.c: Likewise.
12455         * config/i386/cygming-crtbegin.c: Likewise.
12456         * config/i386/cygming-crtend.c: Likewise.
12457         * config/i386/cygwin.asm: Likewise.
12458         * config/i386/emmintrin.h: Likewise.
12459         * config/i386/gmm_malloc.h: Likewise.
12460         * config/i386/gthr-win32.c: Likewise.
12461         * config/i386/i386.h: Likewise.
12462         * config/i386/immintrin.h: Likewise.
12463         * config/i386/linux-unwind.h: Likewise.
12464         * config/i386/linux64.h: Likewise.
12465         * config/i386/mm3dnow.h: Likewise.
12466         * config/i386/mmintrin-common.h: Likewise.
12467         * config/i386/mmintrin.h: Likewise.
12468         * config/i386/nmmintrin.h: Likewise.
12469         * config/i386/pmm_malloc.h: Likewise.
12470         * config/i386/pmmintrin.h: Likewise.
12471         * config/i386/smmintrin.h: Likewise.
12472         * config/i386/sol2-c1.asm: Likewise.
12473         * config/i386/sol2-ci.asm: Likewise.
12474         * config/i386/sol2-cn.asm: Likewise.
12475         * config/i386/sol2-gc1.asm: Likewise.
12476         * config/i386/tmmintrin.h: Likewise.
12477         * config/i386/unix.h: Likewise.
12478         * config/i386/w32-unwind.h: Likewise.
12479         * config/i386/wmmintrin.h: Likewise.
12480         * config/i386/x86-64.h: Likewise.
12481         * config/i386/x86intrin.h: Likewise.
12482         * config/i386/xmmintrin.h: Likewise.
12483         * config/ia64/crtbegin.asm: Likewise.
12484         * config/ia64/crtend.asm: Likewise.
12485         * config/ia64/crtfastmath.c: Likewise.
12486         * config/ia64/crti.asm: Likewise.
12487         * config/ia64/crtn.asm: Likewise.
12488         * config/ia64/fde-glibc.c: Likewise.
12489         * config/ia64/lib1funcs.asm: Likewise.
12490         * config/ia64/linux-unwind.h: Likewise.
12491         * config/ia64/quadlib.c: Likewise.
12492         * config/ia64/unwind-ia64.c: Likewise.
12493         * config/linux.h: Likewise.
12494         * config/m32c/m32c-lib1.S: Likewise.
12495         * config/m32c/m32c-lib2-trapv.c: Likewise.
12496         * config/m32c/m32c-lib2.c: Likewise.
12497         * config/m32r/initfini.c: Likewise.
12498         * config/m68hc11/larith.asm: Likewise.
12499         * config/m68hc11/m68hc11-crt0.S: Likewise.
12500         * config/m68k/cf.md: Likewise.
12501         * config/m68k/crti.s: Likewise.
12502         * config/m68k/crtn.s: Likewise.
12503         * config/m68k/lb1sf68.asm: Likewise.
12504         * config/m68k/linux-unwind.h: Likewise.
12505         * config/mcore/crti.asm: Likewise.
12506         * config/mcore/crtn.asm: Likewise.
12507         * config/mcore/lib1.asm: Likewise.
12508         * config/mips/linux-unwind.h: Likewise.
12509         * config/mips/loongson.h: Likewise.
12510         * config/mips/mips16.S: Likewise.
12511         * config/mmix/crti.asm: Likewise.
12512         * config/mmix/crtn.asm: Likewise.
12513         * config/pa/fptr.c: Likewise.
12514         * config/pa/hpux-unwind.h: Likewise.
12515         * config/pa/lib2funcs.asm: Likewise.
12516         * config/pa/linux-atomic.c: Likewise.
12517         * config/pa/linux-unwind.h: Likewise.
12518         * config/pa/milli64.S: Likewise.
12519         * config/pa/quadlib.c: Likewise.
12520         * config/pa/stublib.c: Likewise.
12521         * config/picochip/libgccExtras/adddi3.asm: Likewise.
12522         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
12523         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
12524         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
12525         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
12526         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
12527         * config/picochip/libgccExtras/divmod15.asm: Likewise.
12528         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
12529         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
12530         * config/picochip/libgccExtras/longjmp.asm: Likewise.
12531         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
12532         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
12533         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
12534         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
12535         * config/picochip/libgccExtras/setjmp.asm: Likewise.
12536         * config/picochip/libgccExtras/subdi3.asm: Likewise.
12537         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
12538         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
12539         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
12540         * config/rs6000/750cl.h: Likewise.
12541         * config/rs6000/altivec.h: Likewise.
12542         * config/rs6000/biarch64.h: Likewise.
12543         * config/rs6000/crtresfpr.asm: Likewise.
12544         * config/rs6000/crtresgpr.asm: Likewise.
12545         * config/rs6000/crtresxfpr.asm: Likewise.
12546         * config/rs6000/crtresxgpr.asm: Likewise.
12547         * config/rs6000/crtsavfpr.asm: Likewise.
12548         * config/rs6000/crtsavgpr.asm: Likewise.
12549         * config/rs6000/darwin-asm.h: Likewise.
12550         * config/rs6000/darwin-fallback.c: Likewise.
12551         * config/rs6000/darwin-fpsave.asm: Likewise.
12552         * config/rs6000/darwin-ldouble.c: Likewise.
12553         * config/rs6000/darwin-tramp.asm: Likewise.
12554         * config/rs6000/darwin-unwind.h: Likewise.
12555         * config/rs6000/darwin-vecsave.asm: Likewise.
12556         * config/rs6000/darwin-world.asm: Likewise.
12557         * config/rs6000/e500crtres32gpr.asm: Likewise.
12558         * config/rs6000/e500crtres64gpr.asm: Likewise.
12559         * config/rs6000/e500crtres64gprctr.asm: Likewise.
12560         * config/rs6000/e500crtrest32gpr.asm: Likewise.
12561         * config/rs6000/e500crtrest64gpr.asm: Likewise.
12562         * config/rs6000/e500crtresx32gpr.asm: Likewise.
12563         * config/rs6000/e500crtresx64gpr.asm: Likewise.
12564         * config/rs6000/e500crtsav32gpr.asm: Likewise.
12565         * config/rs6000/e500crtsav64gpr.asm: Likewise.
12566         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
12567         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
12568         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
12569         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
12570         * config/rs6000/eabi-ci.asm: Likewise.
12571         * config/rs6000/eabi-cn.asm: Likewise.
12572         * config/rs6000/eabi.asm: Likewise.
12573         * config/rs6000/linux-unwind.h: Likewise.
12574         * config/rs6000/linux64.h: Likewise.
12575         * config/rs6000/paired.h: Likewise.
12576         * config/rs6000/paired.md: Likewise.
12577         * config/rs6000/ppc64-fp.c: Likewise.
12578         * config/rs6000/ppu_intrinsics.h: Likewise.
12579         * config/rs6000/rs6000.h: Likewise.
12580         * config/rs6000/si2vmx.h: Likewise.
12581         * config/rs6000/sol-ci.asm: Likewise.
12582         * config/rs6000/sol-cn.asm: Likewise.
12583         * config/rs6000/spe.h: Likewise.
12584         * config/rs6000/spu2vmx.h: Likewise.
12585         * config/rs6000/sysv4.h: Likewise.
12586         * config/rs6000/tramp.asm: Likewise.
12587         * config/rs6000/vec_types.h: Likewise.
12588         * config/s390/linux-unwind.h: Likewise.
12589         * config/s390/tpf-unwind.h: Likewise.
12590         * config/score/crti.asm: Likewise.
12591         * config/score/crtn.asm: Likewise.
12592         * config/sh/crt1.asm: Likewise.
12593         * config/sh/crti.asm: Likewise.
12594         * config/sh/crtn.asm: Likewise.
12595         * config/sh/divtab-sh4-300.c: Likewise.
12596         * config/sh/divtab-sh4.c: Likewise.
12597         * config/sh/divtab.c: Likewise.
12598         * config/sh/lib1funcs-4-300.asm: Likewise.
12599         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
12600         * config/sh/lib1funcs.asm: Likewise.
12601         * config/sh/lib1funcs.h: Likewise.
12602         * config/sh/linux-atomic.asm: Likewise.
12603         * config/sh/linux-unwind.h: Likewise.
12604         * config/sh/shmedia.h: Likewise.
12605         * config/sh/sshmedia.h: Likewise.
12606         * config/sh/ushmedia.h: Likewise.
12607         * config/sparc/crtfastmath.c: Likewise.
12608         * config/sparc/linux-unwind.h: Likewise.
12609         * config/sparc/sol2-c1.asm: Likewise.
12610         * config/sparc/sol2-ci.asm: Likewise.
12611         * config/sparc/sol2-cn.asm: Likewise.
12612         * config/spu/divmodti4.c: Likewise.
12613         * config/spu/divv2df3.c: Likewise.
12614         * config/spu/float_disf.c: Likewise.
12615         * config/spu/float_unsdidf.c: Likewise.
12616         * config/spu/float_unsdisf.c: Likewise.
12617         * config/spu/float_unssidf.c: Likewise.
12618         * config/spu/mfc_multi_tag_release.c: Likewise.
12619         * config/spu/mfc_multi_tag_reserve.c: Likewise.
12620         * config/spu/mfc_tag_release.c: Likewise.
12621         * config/spu/mfc_tag_reserve.c: Likewise.
12622         * config/spu/mfc_tag_table.c: Likewise.
12623         * config/spu/multi3.c: Likewise.
12624         * config/spu/spu_internals.h: Likewise.
12625         * config/spu/spu_intrinsics.h: Likewise.
12626         * config/spu/spu_mfcio.h: Likewise.
12627         * config/spu/vec_types.h: Likewise.
12628         * config/spu/vmx2spu.h: Likewise.
12629         * config/stormy16/stormy16-lib2.c: Likewise.
12630         * config/svr4.h: Likewise.
12631         * config/sync.c: Likewise.
12632         * config/v850/lib1funcs.asm: Likewise.
12633         * config/vxlib-tls.c: Likewise.
12634         * config/vxlib.c: Likewise.
12635         * config/vxworks-dummy.h: Likewise.
12636         * config/xtensa/crti.asm: Likewise.
12637         * config/xtensa/crtn.asm: Likewise.
12638         * config/xtensa/ieee754-df.S: Likewise.
12639         * config/xtensa/ieee754-sf.S: Likewise.
12640         * config/xtensa/lib1funcs.asm: Likewise.
12641         * config/xtensa/lib2funcs.S: Likewise.
12642         * config/xtensa/linux-unwind.h: Likewise.
12643         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
12644         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
12645         * coretypes.h: Likewise.
12646         * crtstuff.c: Likewise.
12647         * defaults.h: Likewise.
12648         * dwarf2.h: Likewise.
12649         * emutls.c: Likewise.
12650         * gbl-ctors.h: Likewise.
12651         * gcov-io.h: Likewise.
12652         * ginclude/float.h: Likewise.
12653         * ginclude/iso646.h: Likewise.
12654         * ginclude/stdarg.h: Likewise.
12655         * ginclude/stdbool.h: Likewise.
12656         * ginclude/stddef.h: Likewise.
12657         * ginclude/stdfix.h: Likewise.
12658         * ginclude/stdint-gcc.h: Likewise.
12659         * ginclude/tgmath.h: Likewise.
12660         * gthr-aix.h: Likewise.
12661         * gthr-dce.h: Likewise.
12662         * gthr-gnat.c: Likewise.
12663         * gthr-gnat.h: Likewise.
12664         * gthr-lynx.h: Likewise.
12665         * gthr-mipssde.h: Likewise.
12666         * gthr-nks.h: Likewise.
12667         * gthr-posix.c: Likewise.
12668         * gthr-posix.h: Likewise.
12669         * gthr-posix95.h: Likewise.
12670         * gthr-rtems.h: Likewise.
12671         * gthr-single.h: Likewise.
12672         * gthr-solaris.h: Likewise.
12673         * gthr-tpf.h: Likewise.
12674         * gthr-vxworks.h: Likewise.
12675         * gthr-win32.h: Likewise.
12676         * gthr.h: Likewise.
12677         * libgcc2.c: Likewise.
12678         * libgcc2.h: Likewise.
12679         * libgcov.c: Likewise.
12680         * tsystem.h: Likewise.
12681         * typeclass.h: Likewise.
12682         * unwind-c.c: Likewise.
12683         * unwind-compat.h: Likewise.
12684         * unwind-dw2-fde-compat.c: Likewise.
12685         * unwind-dw2-fde-darwin.c: Likewise.
12686         * unwind-dw2-fde-glibc.c: Likewise.
12687         * unwind-dw2-fde.c: Likewise.
12688         * unwind-dw2-fde.h: Likewise.
12689         * unwind-dw2.c: Likewise.
12690         * unwind-dw2.h: Likewise.
12691         * unwind-generic.h: Likewise.
12692         * unwind-pe.h: Likewise.
12693         * unwind-sjlj.c: Likewise.
12694         * unwind.inc: Likewise.
12695         * config/arm/neon-gen.ml: Change generated copyright header to
12696         refer to version 3 of the GNU General Public License with
12697         version 3.1 of the GCC Runtime Library Exception and to point
12698         readers at the COPYING3 and COPYING3.RUNTIME files and the
12699         FSF's license web page.
12700         * config/arm/arm_neon.h: Regenerate.
12701
12702 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
12703
12704         * config/cris/cris.md: Change copyright header to refer to version
12705         3 of the GNU General Public License.
12706         * doc/install.texi2html: Change copyright header to refer to version
12707         3 of the GNU General Public License and to point readers at the
12708         COPYING3 file and the FSF's license web page.
12709         * config/vax/linux.h: Likewise.
12710
12711 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12712
12713         * config/i386/i386.md (cmpcc): New.
12714         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
12715         (sync_compare_and_swap_cc*): Delete.
12716
12717         * config/s390/s390.c (s390_compare_emitted): Remove.
12718         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
12719         s390_compare_emitted used to be handled.  Assert that modes match.
12720         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
12721         refer to sync_compare_and_swap_ccsi.
12722         * config/s390/s390.h (s390_compare_emitted): Remove.
12723         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
12724         instead of s390_compare_emitted.
12725         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
12726         instead of s390_compare_emitted.
12727         * config/s390/s390.md (cmpcc): New.
12728         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
12729         CC_REGNUM, do not pretend it's set.
12730         (sync_compare_and_swap_cc*): Delete.
12731         * config/s390/predicates.md (cc_reg_operand): New.
12732
12733         * expr.c (sync_compare_and_swap_cc): Delete.
12734         * optabs.h (sync_compare_and_swap_cc): Delete.
12735         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
12736         is being used with can_compare_p.
12737         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
12738         (find_cc_set): New.
12739         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
12740         look for a MODE_CC set instead.  Use emit_store_flag.
12741         (expand_compare_and_swap_loop): Likewise, with some additional
12742         complication to avoid a force_reg when useless.  Use
12743         emit_cmp_and_jump_insns.
12744         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
12745         * doc/md.texi (sync_compare_and_swap_cc): Merge with
12746         sync_compare_and_swap documentation.
12747
12748 2009-04-09  Jan Hubicka  <jh@suse.cz>
12749
12750         * except.c (find_prev_try): Break out from ....
12751         (duplicate_eh_regions): ... here; properly update prev_try pointers
12752         when duplication part of tree.
12753         (dump_eh_tree): Improve dumping.
12754         (verify_eh_region): New.
12755         (verify_eh_tree): Use it.
12756
12757 2009-04-06  Richard Guenther  <rguenther@suse.de>
12758
12759         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
12760         &ARRAY addresses by adjusting their types and prepending
12761         a conversion.
12762         * tree-cfg.c (verify_gimple_assign_single): Verify that
12763         addresses are correct.
12764
12765 2009-04-09  Richard Guenther  <rguenther@suse.de>
12766
12767         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
12768         indices into an array reference if possible.
12769         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12770         Fold POINTER_PLUS_EXPR statements with invariant address.
12771
12772 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
12773
12774         PR target/39634
12775         * config.gcc (powerpc64-*-linux*): Always build biarch.
12776
12777 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
12778
12779         PR c/39613
12780         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
12781         it and pedwarn if this results in an INTEGER_CST.
12782
12783 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12784
12785         * doc/install.texi: Update minimum GMP version.  Remove obsolete
12786         text in MPFR section.
12787
12788 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
12789
12790         * dwarf2out.c (class_scope_p): New static inline.
12791         (class_or_namespace_scope_p): Use it.
12792         (gen_variable_die): Use DW_TAG_member tag for static data member
12793         declarations instead of DW_TAG_variable.
12794
12795         PR middle-end/39573
12796         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
12797         variables.
12798
12799 2009-04-08  Richard Guenther  <rguenther@suse.de>
12800
12801         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
12802         valueize random data.
12803
12804 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
12805
12806         * config.gcc (aix tm_file):  Add aix-stdint.h.
12807         (aix tm clause use_gcc_stdint):  Set to wrap.
12808         * config/rs6000/aix-stdint.h:  New file.
12809
12810 2009-04-08  Richard Guenther  <rguenther@suse.de>
12811
12812         PR middle-end/36291
12813         * tree-dfa.c (add_referenced_var): Do not recurse into
12814         global initializers.
12815         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
12816         exposed variables.
12817         (fold_const_aggregate_ref): Likewise.
12818
12819 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12820
12821         * recog.c (ordered_comparison_operator): New.
12822         * gensupport.c (std_preds): Add it.
12823         * doc/md.texi (Machine-Independent Predicates): Document it.
12824
12825 2009-04-08  Jan Hubicka  <jh@suse.cz>
12826
12827         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
12828         * function.h (rtl_eh): Remove exception_handler_label_map.
12829         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
12830         remove_exception_handler_label, for_each_eh_label_1): Remove.
12831         (rtl_remove_unreachable_regions): Remove.
12832         (convert_from_eh_region_ranges): Do not remove unreachable regions.
12833         (find_exception_handler_labels): Don't build the hashtable.
12834         (maybe_remove_eh_handler): Remove.
12835         (for_each_eh_label): Rewrite to walk the tree.
12836         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
12837         * except.h (maybe_remove_eh_handler): Remove.
12838         * passes.c (init_optimization_passes): Schedule second EH cleanup
12839         before out-of-ssa.
12840         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
12841         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
12842
12843 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12844
12845         * genoutput.c (validate_optab_operands): New.
12846         (gen_insn, gen_expand): Call it.
12847
12848         * genflags.c (gen_insn): Detect misused iterators.
12849         (main): Pass line_no to gen_insn, exit with status 1 on error.
12850
12851         * genextract.c (line_no): Make global.
12852         (VEC_safe_set_locstr): Change assertion to error message.
12853         (main): Exit with status 1 on error.
12854
12855 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
12856
12857         PR c/39614
12858         PR c/39673
12859         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12860         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12861         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
12862         * c-convert.c (convert): Do not call fold on results of conversion
12863         functions when the result is a C_MAYBE_CONST_EXPR.
12864         * c-parser.c (c_parser_postfix_expression): Do not fold condition
12865         of __builtin_choose_expr.
12866         * c-typeck.c (remove_c_maybe_const_expr): New.
12867         (build_unary_op, build_conditional_expr, build_compound_expr,
12868         build_binary_op, c_objc_common_truthvalue_conversion): Call
12869         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
12870         integer operands.
12871
12872 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
12873
12874         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
12875         CODE to produce a new one. Add a prototype to use fold_convert_const
12876
12877 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
12878
12879         PR bootstrap/39660
12880         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
12881         mix declarations and code.
12882
12883 2009-04-08  Ben Elliston  <bje@au.ibm.com>
12884
12885         * gcc.c: Replace `CC' with `GCC' throughout.
12886
12887 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
12888
12889         * doc/invoke.texi: Document Atom support.
12890
12891 2009-04-07  Jason Merrill  <jason@redhat.com>
12892
12893         PR c++/25185
12894         * c-common.h, c-common.c: Add flag_pretty_templates.
12895         * c-opts.c (c_common_handle_option): Set it.
12896         * c.opt: Add -fno-pretty-templates.
12897         * doc/invoke.texi (C++ Dialect Options): Likewise.
12898
12899 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
12900
12901         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
12902         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
12903         (ia64_expand_builtin): Likewise.
12904
12905 2009-04-07  Martin Jambor  <mjambor@suse.cz>
12906
12907         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
12908         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
12909         ADDR_EXPRS are include too.
12910
12911 2009-04-07  Richard Guenther  <rguenther@suse.de>
12912
12913         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
12914         decls are only used if passes as parameters or if they are
12915         local statics and the call is not to a builtin.
12916         (call_may_clobber_ref_p_1): Likewise.
12917
12918 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12919
12920         * expr.c (do_store_flag): Remove last argument.  Simplify code
12921         to avoid duplication of tests already done by can_compare_p.
12922         (expand_expr_real_1): Adjust caller.
12923
12924 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12925
12926         * optabs.c (can_compare_p): Test the predicate of a
12927         cbranch and cstore pattern.
12928
12929 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12930
12931         * expr.c (convert_move): Use emit_store_flag instead of
12932         "emulating" it.
12933
12934 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12935
12936         * config/i386/i386.c (ix86_compare_emitted): Remove.
12937         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
12938         ix86_compare_op0 like ix86_compare_emitted used to be handled.
12939         * config/i386/i386.h (ix86_compare_emitted): Remove.
12940         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
12941         instead of ix86_compare_emitted.
12942         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
12943
12944 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
12945
12946         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
12947         Add t-sysroot-suffix to tmake_file.
12948         * config/print-sysroot-suffix.sh: New file.
12949         * config/t-sysroot-suffix: New file.
12950
12951 2009-04-07  Ben Elliston  <bje@au.ibm.com>
12952
12953         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
12954         as the latter produces a warning when the target does not support
12955         infinity.
12956
12957 2009-04-07  Ben Elliston  <bje@au.ibm.com>
12958
12959         * dfp.c: Replace type punning assignments with memcpy throughout.
12960         * Makefile.in (dfp.o-warn): Remove.
12961
12962 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
12963
12964         PR target/39634
12965         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
12966         Include soft-fp/t-softfp after rs6000/t-linux64.
12967
12968 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12969
12970         * stor-layout.c (set_sizetype): Use the full precision of their
12971         machine mode for bitsize types.
12972
12973 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
12974
12975         * config/i386/i386.md: Revert 2 accidental checkins.
12976
12977 2009-04-06  Joey Ye  <joey.ye@intel.com>
12978             Xuepeng Guo  <xuepeng.guo@intel.com>
12979             H.J. Lu  <hongjiu.lu@intel.com>
12980
12981         Atom pipeline model, tuning and insn selection.
12982         * config.gcc (atom): Add atom config options and target.
12983
12984         * config/i386/atom.md: New.
12985
12986         * config/i386/i386.c (atom_cost): New cost.
12987         (m_ATOM): New macro flag.
12988         (initial_ix86_tune_features): Set m_ATOM.
12989         (x86_accumulate_outgoing_args): Likewise.
12990         (x86_arch_always_fancy_math_387): Likewise.
12991         (processor_target): Add Atom cost.
12992         (cpu_names): Add Atom cpu name.
12993         (override_options): Set Atom ISA.
12994         (ix86_issue_rate): New case PROCESSOR_ATOM.
12995         (ix86_adjust_cost): Likewise.
12996
12997         * config/i386/i386.h (TARGET_ATOM): New target macro.
12998         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
12999         (TARGET_OPT_AGU): New target option.
13000         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
13001         (processor_type): Add PROCESSOR_ATOM.
13002
13003         * config/i386/i386.md (cpu): Add new value "atom".
13004         (use_carry, movu): New attr.
13005         (atom.md): Include atom.md.
13006         (adddi3_carry_rex64): Set attr "use_carry".
13007         (addqi3_carry): Likewise.
13008         (addhi3_carry): Likewise.
13009         (addsi3_carry): Likewise.
13010         (*addsi3_carry_zext): Likewise.
13011         (subdi3_carry_rex64): Likewise.
13012         (subqi3_carry): Likewise.
13013         (subhi3_carry): Likewise.
13014         (subsi3_carry): Likewise.
13015         (x86_movdicc_0_m1_rex64): Likewise.
13016         (*x86_movdicc_0_m1_se): Likewise.
13017         (x86_movsicc_0_m1): Likewise.
13018         (*x86_movsicc_0_m1_se): Likewise.
13019         (*adddi_1_rex64): Emit add insn as much as possible.
13020         (*addsi_1): Likewise.
13021         (return_internal): Set atom_unit.
13022         (return_internal_long): Likewise.
13023         (return_pop_internal): Likewise.
13024         (*rcpsf2_sse): Set atom_sse_attr attr.
13025         (*qrt<mode>2_sse): Likewise.
13026         (*prefetch_sse): Likewise.
13027
13028         * config/i386/i386-c.c (ix86_target_macros_internal): New case
13029         PROCESSOR_ATOM.
13030         (ix86_target_macros_internal): Likewise.
13031
13032         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
13033         (*prefetch_sse_rex): Likewise.
13034         (sse_rcpv4sf2): Likewise.
13035         (sse_vmrcpv4sf2): Likewise.
13036         (sse_sqrtv4sf2): Likewise.
13037         (<sse>_vmsqrt<mode>2): Likewise.
13038         (sse_ldmxcsr): Likewise.
13039         (sse_stmxcsr): Likewise.
13040         (*sse_sfence): Likewise.
13041         (sse2_clflush): Likewise.
13042         (*sse2_mfence): Likewise.
13043         (*sse2_lfence): Likewise.
13044         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
13045         (<sse>_movup<ssemodesuffixf2c>): Likewise.
13046         (avx_movdqu<avxmodesuffix>): Likewise.
13047         (avx_lddqu<avxmodesuffix>): Likewise.
13048         (sse2_movntv2di): Change attr "type" to "ssemov".
13049         (sse2_movntsi): Likewise.
13050         (rsqrtv8sf2): Change attr "type" to "sseadd".
13051         (sse3_addsubv2df3): Set attr "atom_unit".
13052         (sse3_h<plusminus_insn>v4sf3): Likewise.
13053         (*sse2_pmaddwd): Likewise.
13054         (*vec_extractv2di_1_rex64): Likewise.
13055         (*vec_extractv2di_1_avx): Likewise.
13056         (sse2_psadbw): Likewise.
13057         (ssse3_phaddwv8hi3): Likewise.
13058         (ssse3_phaddwv4hi3): Likewise.
13059         (ssse3_phadddv4si3): Likewise.
13060         (ssse3_phadddv2si3): Likewise.
13061         (ssse3_phaddswv8hi3): Likewise.
13062         (ssse3_phaddswv4hi3): Likewise.
13063         (ssse3_phsubwv8hi3): Likewise.
13064         (ssse3_phsubwv4hi3): Likewise.
13065         (ssse3_phsubdv4si3): Likewise.
13066         (ssse3_phsubdv2si3): Likewise.
13067         (ssse3_phsubswv8hi3): Likewise.
13068         (ssse3_phsubswv4hi3): Likewise.
13069         (ssse3_pmaddubsw128): Likewise.
13070         (sse3_pmaddubsw: Likewise.
13071         (ssse3_palignrti): Likewise.
13072         (ssse3_palignrdi): Likewise.
13073
13074 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
13075
13076         * doc/install.texi (Specific): Fix two cross-references to MinGW.
13077
13078 2009-04-06  Richard Guenther  <rguenther@suse.de>
13079
13080         PR tree-optimization/28868
13081         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
13082         of which PHI results we inserted.
13083         (insert_into_preds_of_block): Record inserted PHIs.
13084         (eliminate): Eliminate redundant PHI nodes.
13085         (init_pre): Init inserted_phi_names.
13086
13087 2009-04-06  Richard Guenther  <rguenther@suse.de>
13088
13089         PR tree-optimization/39643
13090         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
13091         IMAGPART_EXPRs of complex constants.
13092         (execute_fold_all_builtins): If we folded a call queue
13093         TODO_update_address_taken.
13094
13095 2009-04-06  Jan Hubicka  <jh@suse.cz>
13096
13097         PR middle-end/39659
13098         * except.c (remove_unreachable_regions): Propagate may_contain_throw
13099         flag.
13100
13101 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
13102
13103         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
13104         delay slot.
13105         (ic_invalidate_array): Likewise.
13106
13107 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
13108
13109         * calls.c (emit_library_call_value_1): Fix a problem with parameter
13110         alignment for library calls.
13111
13112 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
13113
13114         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
13115         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
13116         * config/i386/mingw-stdint.h:  New file.
13117
13118 2009-04-05  Richard Guenther  <rguenther@suse.de>
13119
13120         PR tree-optimization/39648
13121         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
13122         our &A vs. &A[0] IL deficiencies.
13123
13124 2009-04-04  Jan Hubicka  <jh@suse.cz>
13125
13126         * except.c (sjlj_find_directly_reachable_regions): Be ready for
13127         removed toplevel regions.
13128         (sjlj_mark_call_sites): Likewise.
13129
13130 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
13131
13132         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
13133         (cygwin tm clause use_gcc_stdint):  Set to wrap.
13134         * config/i386/cygwin-stdint.h:  New file.
13135
13136 2009-04-04  Richard Guenther  <rguenther@suse.de>
13137
13138         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
13139         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
13140         single-argument PHIs if we are in loop-closed SSA form.
13141         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
13142         for the pre-condition.
13143         (slpeel_tree_peel_loop_to_edge): Likewise.
13144         (vect_build_loop_niters): Take an optional sequence to append stmts.
13145         (vect_generate_tmps_on_preheader): Likewise.
13146         (vect_do_peeling_for_loop_bound): Take extra guards for the
13147         pre-condition.
13148         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
13149         the cost model check.
13150         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
13151         guards if we are going to peel.  Do not apply versioning in that case.
13152         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
13153         (vect_do_peeling_for_loop_bound): Likewise.
13154         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
13155         loop bound only record extra pre-conditions, do not apply loop
13156         versioning.
13157
13158 2009-04-04  Richard Guenther  <rguenther@suse.de>
13159
13160         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
13161         renaming code.
13162
13163 2009-04-04  Jan Hubicka  <jh@suse.cz>
13164
13165         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
13166         last_basic_block for size of bb->index indexed array.
13167         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
13168         compute_out, link_btr_uses, build_btr_def_use_webs,
13169         build_btr_def_use_webs, migrate_btr_defs): Likewise.
13170
13171 2009-04-04  Jan Hubicka  <jh@suse.cz>
13172
13173         * except.c (remove_eh_handler_and_replace): Break out from ...
13174         (remove_eh_handler): ... here.
13175         (bring_to_root): New function.
13176         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
13177         handled ones, bring others to root of tree.
13178
13179 2009-04-04  Jan Hubicka  <jh@suse.cz>
13180
13181         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
13182         (all_phis_safe_to_merge): New function.
13183         (update_info): New structure.
13184         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
13185         (cleanup_empty_eh): Update SSA if possible.
13186
13187 2009-04-04  Richard Guenther  <rguenther@suse.de>
13188
13189         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
13190         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
13191         (append_vuse): Likewise.
13192
13193 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
13194
13195         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
13196         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
13197         instead of REG_UNSAVED for DW_CFA_undefined.
13198         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
13199         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
13200         outermost frame.
13201
13202 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
13203
13204         PR target/39501
13205         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
13206         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
13207         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
13208
13209 2009-04-04  Richard Guenther  <rguenther@suse.de>
13210
13211         PR tree-optimization/8781
13212         PR tree-optimization/37892
13213         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
13214         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
13215         (valueize_refs): Call it for *& valueizations.
13216         (shared_reference_ops_from_ref): Rename to ...
13217         (valueize_shared_reference_ops_from_ref): ... this and valueize.
13218         (shared_reference_ops_from_call): Rename to ...
13219         (valueize_shared_reference_ops_from_call): ... this and valueize.
13220         (vn_reference_lookup): Update.
13221         (visit_reference_op_call): Likewise.
13222         * tree-ssa-pre.c (phi_translate_1): Fold *&.
13223         (eliminate): Value-replace the call address in call statements.
13224
13225 2009-04-04  Richard Guenther  <rguenther@suse.de>
13226
13227         PR tree-optimization/39636
13228         * tree-ssa-forwprop.c
13229         (forward_propagate_addr_into_variable_array_index): Check for
13230         GIMPLE_ASSIGN before accessing the rhs code.
13231
13232 2009-04-03  Jason Merrill  <jason@redhat.com>
13233
13234         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
13235
13236 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
13237
13238         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
13239         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
13240         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
13241         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
13242         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
13243         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
13244         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
13245         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
13246         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
13247         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
13248         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
13249         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
13250         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
13251         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
13252         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
13253         Use fr_reg_or_fp01_operand instead of fr_register_operand
13254
13255         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
13256         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
13257         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
13258
13259 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
13260
13261         PR rtl-optimization/39607
13262         PR rtl-optimization/39631
13263
13264         Revert:
13265
13266         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13267         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
13268         instead of DF_LR_OUT.
13269         * ira-lives.c (process_bb_node_lives): Ditto.
13270         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
13271         instead of DF_LR_{OUT,IN}.
13272         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
13273         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
13274
13275 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
13276
13277         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
13278         (execute_lower_omp): Always run but take the short way out if -fopenmp
13279         is not given.
13280         (gate_lower_omp): Remove, forcing the pass manager to always run the
13281         pass and always set PROP_gimple_lomp.
13282         (pass_lower_omp): Remove gate function.
13283         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
13284         PROP_trees.  Instead, require it.
13285         * ipa-cp.c (pass_ipa_cp): Likewise.
13286         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
13287         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
13288         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
13289         and PROP_gimple_leh.
13290
13291 2009-04-03  Richard Guenther  <rguenther@suse.de>
13292
13293         PR middle-end/13146
13294         PR tree-optimization/23940
13295         PR tree-optimization/33237
13296         PR middle-end/33974
13297         PR middle-end/34093
13298         PR tree-optimization/36201
13299         PR tree-optimization/36230
13300         PR tree-optimization/38049
13301         PR tree-optimization/38207
13302         PR tree-optimization/38230
13303         PR tree-optimization/38301
13304         PR tree-optimization/38585
13305         PR middle-end/38895
13306         PR tree-optimization/38985
13307         PR tree-optimization/39299
13308         * tree-ssa-structalias.h: Remove.
13309         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
13310         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
13311         (struct vuse_element_d): Remove.
13312         (struct vuse_vec_d): Likewise.
13313         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
13314         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
13315         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
13316         VUSE_ELEMENT_VAR): Likewise.
13317         (struct voptype_d): Likewise.
13318         (NUM_VOP_FREE_BUCKETS): Likewise.
13319         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
13320         (struct stmt_operands_d): Remove.
13321         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
13322         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
13323         VDEF_NUM, VDEF_VECT): Likewise.
13324         (copy_virtual_operands): Remove.
13325         (operand_build_cmp): Likewise.
13326         (create_ssa_artificial_load_stmt): Likewise.
13327         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
13328         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
13329         vuse_index and mayuse_index members.  Pack and move done and iter_type
13330         members to the front.
13331         (SSA_OP_VMAYUSE): Remove.
13332         (SSA_OP_VIRTUAL_USES): Adjust.
13333         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
13334         (unlink_stmt_vdef): Declare.
13335         (add_to_addressable_set): Remove.
13336         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
13337         (vrp_visit_stmt): Likewise.
13338         * doc/tree-ssa.texi (Alias analysis): Update.
13339         * doc/invoke.texi (max-aliased-vops): Remove docs.
13340         (avg-aliased-vops): Likewise.
13341         * tree-into-ssa.c (syms_to_rename): Remove.
13342         (need_to_update_vops_p): Likewise.
13343         (need_to_initialize_update_ssa_p): Rename to ...
13344         (update_ssa_initialized_fn): ... this.  Track function we are
13345         initialized for.
13346         (symbol_marked_for_renaming): Simplify.
13347         (add_new_name_mapping): Do not set need_to_update_vops_p.
13348         (dump_currdefs): Use SYMS_TO_RENAME.
13349         (rewrite_update_stmt): Always walk all uses/defs.
13350         (dump_update_ssa): Adjust.
13351         (init_update_ssa): Take function argument.  Track what we are
13352         initialized for.
13353         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
13354         (create_new_def_for): Initialize for cfun, assert we are initialized
13355         for cfun.
13356         (mark_sym_for_renaming): Simplify.
13357         (mark_set_for_renaming): Do not initialize update-ssa.
13358         (need_ssa_update_p): Simplify.  Take function argument.
13359         (name_mappings_registered_p): Assert we ask for the correct function.
13360         (name_registered_for_update_p): Likewise.
13361         (ssa_names_to_replace): Likewise.
13362         (release_ssa_name_after_update_ssa): Likewise.
13363         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
13364         (dump_decl_set): Do not print a newline.
13365         (debug_decl_set): Do it here.
13366         (dump_update_ssa): And here.
13367         * tree-ssa-loop-im.c (move_computations): Adjust.
13368         (movement_possibility): Likewise.
13369         (determine_max_movement): Likewise.
13370         (gather_mem_refs_stmt): Likewise.
13371         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
13372         or NAME_MEMORY_TAG.
13373         * tree-complex.c (update_all_vops): Remove.
13374         (expand_complex_move): Adjust.
13375         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
13376         Simplify test for memory referencing statement.  Exclude
13377         non-invariant ADDR_EXPRs.
13378         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
13379         * tree-loop-distribution.c (generate_memset_zero): Adjust.
13380         (rdg_flag_uses): Likewise.
13381         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
13382         related code.
13383         (tree_optimize_tail_calls_1): Also split the
13384         edge from the entry block if we have degenerate PHI nodes in
13385         the first basic block.
13386         * tree.c (init_ttree): Remove memory-tag related code.
13387         (tree_code_size): Likewise.
13388         (tree_node_structure): Likewise.
13389         (build7_stat): Re-write to be build6_stat.
13390         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
13391         (SSA_VAR_P): Adjust.
13392         (struct tree_memory_tag): Remove.
13393         (struct tree_memory_partition_tag): Likewise.
13394         (union tree_node): Adjust.
13395         (build7): Re-write to be build6.
13396         * tree-pass.h (pass_reset_cc_flags): Remove.
13397         (TODO_update_address_taken): New flag.
13398         (pass_simple_dse): Remove.
13399         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
13400         * params.h (MAX_ALIASED_VOPS): Remove.
13401         (AVG_ALIASED_VOPS): Likewise.
13402         * omp-low.c (expand_omp_taskreg): Update SSA form.
13403         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
13404         aliases the lhs in a copy stmt.
13405         * tree-ssa-dse.c (struct address_walk_data): Remove.
13406         (memory_ssa_name_same): Likewise.
13407         (memory_address_same): Likewise.
13408         (get_kill_of_stmt_lhs): Likewise.
13409         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
13410         unused stores.  Look through PHI nodes into post-dominated regions.
13411         (dse_optimize_stmt): Simplify.  Properly remove stores.
13412         (tree_ssa_dse): Compute dominators.
13413         (execute_simple_dse): Remove.
13414         (pass_simple_dse): Likewise.
13415         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
13416         gimple_loaded_syms and gimple_stored_syms computation.
13417         * toplev.c (dump_memory_report): Dump alias and pta stats.
13418         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
13419         (vn_reference_eq): Likewise.
13420         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
13421         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
13422         valueize_vuses): Remove.
13423         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
13424         (get_def_ref_stmt_vuse): ... this.
13425         (vn_reference_lookup_2): New function.
13426         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
13427         walking equivalent vuses.  Simplify.
13428         (vn_reference_lookup): Likewise.
13429         (vn_reference_insert): Likewise.
13430         (vn_reference_insert_pieces): Likewise.
13431         (visit_reference_op_call): Simplify.
13432         (visit_reference_op_load): Likewise.
13433         (visit_reference_op_store): Likewise.
13434         (init_scc_vn): Remove shared_lookup_vuses initialization.
13435         (free_scc_vn): Remove shared_lookup_vuses freeing.
13436         (sort_vuses, sort_vuses_heap): Remove.
13437         (get_ref_from_reference_ops): Export.
13438         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
13439         vector with single vuse pointer.
13440         (vn_reference_lookup_pieces, vn_reference_lookup,
13441         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
13442         (shared_vuses_from_stmt): Remove.
13443         (get_ref_from_reference_ops): Declare.
13444         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
13445         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
13446         memory-tag related code.
13447         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
13448         (likely_value): Add comment, skip static-chain of call statements.
13449         (surely_varying_stmt_p): Adjust.
13450         (gimplify_and_update_call_from_tree): Likewise.
13451         (execute_fold_all_builtins): Do not rebuild alias info.
13452         (gimplify_and_update_call_from_tree): Properly update VOPs.
13453         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
13454         (copy_ref_info): Remove memory-tag related code.
13455         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
13456         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
13457         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
13458         computation.
13459         * tree-ssa-dom.c (gimple_p): Remove typedef.
13460         (eliminate_redundant_computations): Adjust.
13461         (record_equivalences_from_stmt): Likewise.
13462         (avail_expr_hash): Likewise.
13463         (avail_expr_eq): Likewise.
13464         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
13465         (stmt_makes_single_load): Likewise.
13466         (stmt_makes_single_store): Likewise.
13467         * tree-ssa-alias.c: Rewrite completely.
13468         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
13469         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
13470         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
13471         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
13472         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
13473         Remove public functions.
13474         (pass_reset_cc_flags): Remove.
13475         (pass_build_alias): Move ...
13476         * tree-ssa-structalias.c (pass_build_alias): ... here.
13477         * tree-ssa-alias.c (may_be_aliased): Move ...
13478         * tree-flow-inline.h (may_be_aliased): ... here.
13479         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
13480         count_uses_and_derefs): Move ...
13481         * gimple.c: ... here.
13482         * gimple.h (count_uses_and_derefs): Declare.
13483         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
13484         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
13485         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
13486         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
13487         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
13488         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
13489         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
13490         New functions.
13491         * tree-dfa.c (refs_may_alias_p): Move ...
13492         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
13493         * tree-ssa-alias.h: New file.
13494         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
13495         (statement_sink_location): Likewise.
13496         * opts.c (decode_options): Do not adjust max-aliased-vops or
13497         avg-aliased-vops values.
13498         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
13499         (TV_CALL_CLOBBER): Likewise.
13500         (TV_FLOW_SENSITIVE): Likewise.
13501         (TV_FLOW_INSENSITIVE): Likewise.
13502         (TV_MEMORY_PARTITIONING): Likewise.
13503         (TV_ALIAS_STMT_WALK): New timevar.
13504         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
13505         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
13506         (get_address_description): Remove memory-tag related code.
13507         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
13508         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
13509         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
13510         and immediate uses in statements.  Document.
13511         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
13512         (dump_symbols): Remove.
13513         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
13514         * alias.c (get_deref_alias_set): New function split out from ...
13515         (get_alias_set): ... here.
13516         * alias.h (get_deref_alias_set): Declare.
13517         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
13518         type parameter.  Remove restrict pointer handling.  Create a
13519         ref-all pointer in case type-based alias sets do not conflict.
13520         (vect_analyze_data_refs): Remove SMT related code.
13521         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
13522         (vectorizable_load): Likewise.
13523         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
13524         (DR_SYMBOL_TAG, DR_VOPS): Remove.
13525         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
13526         Ignore vops and SMTs.
13527         (dr_analyze_alias): Likewise..
13528         (free_data_ref): Likewise.
13529         (create_data_ref): Likewise.
13530         (analyze_all_data_dependences): Likewise.
13531         (get_references_in_stmt): Adjust.
13532         * tree-flow-inline.h (gimple_aliases_computed_p,
13533         gimple_addressable_vars, gimple_call_clobbered_vars,
13534         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
13535         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
13536         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
13537         gimple_mem_ref_stats): Remove.
13538         (gimple_vop): New function.
13539         (op_iter_next_use): Remove vuses and mayuses cases.
13540         (op_iter_next_def): Remove vdefs case.
13541         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
13542         (clear_and_done_ssa_iter): Do not set removed fields.
13543         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
13544         Assert we are not iterating over vuses or vdefs if not also
13545         iterating over uses or defs.
13546         (op_iter_init_use): Likewise.
13547         (op_iter_init_def): Likewise.
13548         (op_iter_next_vdef): Remove.
13549         (op_iter_next_mustdef): Likewise.
13550         (op_iter_init_vdef): Likewise.
13551         (compare_ssa_operands_equal): Likewise.
13552         (link_use_stmts_after): Handle vuse operand.
13553         (is_call_used): Use is_call_clobbered.
13554         (is_call_clobbered): Global variables are always call clobbered,
13555         query the call-clobbers bitmap.
13556         (mark_call_clobbered): Ignore global variables.
13557         (clear_call_clobbered): Likewise.
13558         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
13559         virtual operands sanity check.
13560         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
13561         Remove.
13562         (TARGET_MEM_REF): Remove TMR_TAG operand.
13563         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
13564         Remove call-clobber related code.
13565         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
13566         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
13567         partitions or escape reason.
13568         (get_single_def_stmt, get_single_def_stmt_from_phi,
13569         get_single_def_stmt_with_phi): Remove.
13570         (dump_referenced_vars): Tidy.
13571         (get_ref_base_and_extent): Allow bare decls.
13572         (collect_dfa_stats): Adjust.
13573         * graphite.c (rename_variables_in_stmt): Adjust.
13574         (graphite_copy_stmts_from_block): Likewise.
13575         (translate_clast): Likewise.
13576         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
13577         (EXPR_DIES): New.
13578         (translate_vuse_through_block): Use the oracle.
13579         (phi_translate_1): Adjust.
13580         (value_dies_in_block_x): Use the oracle.  Cache the outcome
13581         in EXPR_DIES.
13582         (valid_in_sets): Check if the VUSE for
13583         a REFERENCE is available.
13584         (eliminate): Do not remove stmts during elimination,
13585         instead queue and remove them afterwards.
13586         (do_pre): Do not rebuild alias info.
13587         (pass_pre): Run TODO_rebuild_alias before PRE.
13588         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
13589         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
13590         (mark_all_v_defs_stmt): Remove.
13591         (mark_all_v_defs_seq): Adjust.
13592         (sra_replace): Likewise.
13593         (scalarize_use): Likewise.
13594         (scalarize_copy): Likewise.
13595         (scalarize_init): Likewise.
13596         (scalarize_ldst): Likewise.
13597         (todoflags): Remove.
13598         (tree_sra): Do not rebuild alias info.
13599         (tree_sra_early): Adjust.
13600         (pass_sra): Run TODO_update_address_taken before SRA.
13601         * tree-predcom.c (set_alias_info): Remove.
13602         (prepare_initializers_chain): Do not call it.
13603         (mark_virtual_ops_for_renaming): Adjust.
13604         (mark_virtual_ops_for_renaming_list): Remove.
13605         (initialize_root_vars): Adjust.
13606         (initialize_root_vars_lm): Likewise.
13607         (prepare_initializers_chain): Likewise.
13608         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
13609         (may_propagate_copy_into_stmt): Likewise.
13610         (merge_alias_info): Do nothing for now.
13611         (propagate_tree_value_into_stmt): Adjust.
13612         (stmt_may_generate_copy): Likewise.
13613         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
13614         not mark symbols for renaming.
13615         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
13616         with the same statement, make sure to update the new pointed-to one.
13617         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
13618         call statements, do not mark symbols for renaming.
13619         (mark_operand_necessary): Dump something.
13620         (ref_may_be_aliased): New function.
13621         (mark_aliased_reaching_defs_necessary_1): New helper function.
13622         (mark_aliased_reaching_defs_necessary): Likewise.
13623         (mark_all_reaching_defs_necessary_1): Likewise.
13624         (mark_all_reaching_defs_necessary): Likewise.
13625         (propagate_necessity): Do not process virtual PHIs.  For
13626         non-aliased loads mark all reaching definitions as necessary.
13627         For aliased loads and stores mark the immediate dominating
13628         aliased clobbers as necessary.
13629         (visited): New global static.
13630         (perform_tree_ssa_dce): Free visited bitmap after propagating
13631         necessity.
13632         (remove_dead_phis): Perform simple dead virtual PHI removal.
13633         (remove_dead_stmt): Properly unlink virtual operands when
13634         removing stores.
13635         (eliminate_unnecessary_stmts): Schedule PHI removal after
13636         stmt removal.
13637         * tree-ssa-ter.c (is_replaceable_p): Adjust.
13638         (process_replaceable): Likewise.
13639         (find_replaceable_in_bb): Likewise.
13640         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
13641         based on the single gimple vop.
13642         (verify_flow_insensitive_alias_info): Remove.
13643         (verify_flow_sensitive_alias_info): Likewise.
13644         (verify_call_clobbering): Likewise.
13645         (verify_memory_partitions): Likewise.
13646         (verify_alias_info): Likewise.
13647         (verify_ssa): Adjust..
13648         (execute_update_addresses_taken): Export.  Update SSA
13649         manually.  Optimize only when optimizing.  Use a local bitmap.
13650         (pass_update_address_taken): Remove TODO_update_ssa, add
13651         TODO_dump_func.
13652         (pass_update_address_taken): Just use TODO_update_address_taken.
13653         (init_tree_ssa): Do not initialize addressable_vars.
13654         (verify_ssa): Verify new VUSE / VDEF properties.
13655         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
13656         Do not call verify_alias_info.
13657         (delete_tree_ssa): Clear the VUSE, VDEF operands.
13658         Do not free the loaded and stored syms bitmaps.  Reset the escaped
13659         and callused solutions.  Do not free addressable_vars.
13660         Remove memory-tag related code.
13661         (warn_uninitialized_var): Aliases are always available.
13662         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
13663         * lambda-code.c (can_put_in_inner_loop): Adjust.
13664         (can_put_after_inner_loop): Likewise.
13665         (perfect_nestify): Likewise.
13666         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
13667         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
13668         (vectorizable_conversion): Do not mark symbols for renaming.
13669         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
13670         (expand_call_inline): Unlink the calls virtual operands before
13671         replacing it.
13672         (tree_function_versioning): Do not call update_ssa if we are not
13673         updating clones.  Simplify.
13674         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
13675         (propagate_with_phi): Likewise..
13676         * tree-outof-ssa.c (create_temp): Remove memory tag and call
13677         clobber code.  Assert we are not aliased or global.
13678         * tree-flow.h: Include tree-ssa-alias.h
13679         (enum escape_type): Remove.
13680         (struct mem_sym_stats_d): Likewise.
13681         (struct mem_ref_stats_d): Likewise.
13682         (struct gimple_df): Add vop member.  Remove global_var,
13683         call_clobbered_vars, call_used_vars, addressable_vars,
13684         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
13685         escaped and callused members.
13686         (struct ptr_info_def): Remove all members, add points-to solution
13687         member pt.
13688         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
13689         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
13690         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
13691         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
13692         (tree-ssa-alias.o): Likewise.
13693         (toplev.o): Add tree-ssa-alias.h
13694         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
13695         * gimple.c (gimple_set_bb): Fix off-by-one error.
13696         (is_gimple_reg): Do not handle memory tags.
13697         (gimple_copy): Also copy virtual operands.
13698         Delay updating the statement.  Do not reset loaded and stored syms.
13699         (gimple_set_stored_syms): Remove.
13700         (gimple_set_loaded_syms): Likewise.
13701         (gimple_call_copy_skip_args): Copy the virtual operands
13702         and mark the new statement modified.
13703         * tree-ssa-structalias.c (may_alias_p): Remove.
13704         (set_uids_in_ptset): Take the alias set to prune with as
13705         parameter.  Fold in the alias test of may_alias_p.
13706         (compute_points_to_sets): Compute whether a ptr is dereferenced
13707         in a local sbitmap.
13708         (process_constraint): Deal with &ANYTHING on the lhs, reject all
13709         other ADDRESSOF constraints on the lhs.
13710         (get_constraint_for_component_ref): Assert that we don't get
13711         ADDRESSOF constraints from the base of the reference.
13712         Properly generate UNKNOWN_OFFSET for DEREF if needed.
13713         (struct variable_info): Remove collapsed_to member.
13714         (get_varinfo_fc): Remove.
13715         (new_var_info): Do not set collapsed_to.
13716         (dump_constraint): Do not follow cycles.
13717         (dump_constraint_graph): Likewise.
13718         (build_pred_graph): Likewise.
13719         (build_succ_graph): Likewise.
13720         (rewrite_constraints): Likewise.
13721         (do_simple_structure_copy): Remove.
13722         (do_rhs_deref_structure_copy): Remove.
13723         (do_lhs_deref_structure_copy): Remove.
13724         (collapse_rest_of_var): Remove.
13725         (do_structure_copy): Re-implement.
13726         (pta_stats): New global variable.
13727         (dump_pta_stats): New function.
13728         (struct constraint_expr): Make offset signed.
13729         (UNKNOWN_OFFSET): Define special value.
13730         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
13731         (solution_set_expand): New helper function split out from ...
13732         (do_sd_constraint): ... here.
13733         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
13734         (do_ds_constraint): Likewise.
13735         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
13736         and CALLUSED = *CALLUSED.
13737         (set_union_with_increment): Make inc argument signed.
13738         (type_safe): Remove.
13739         (get_constraint_for_ptr_offset): Handle unknown and negative
13740         constant offsets.
13741         (first_vi_for_offset): Handle offsets before start.  Bail
13742         out early for offsets beyond the variable extent.
13743         (first_or_preceding_vi_for_offset): New function.
13744         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
13745         Together with ESCAPED = *ESCAPED this properly computes reachability.
13746         (find_what_var_points_to): New function.
13747         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
13748         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
13749         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
13750         pt_solutions_intersect): New functions.
13751         (compute_call_used_vars): Remove.
13752         (compute_may_aliases): New main entry into PTA computation.
13753         * gimple.h (gimple_p): New typedef.
13754         (struct gimple_statement_base): Remove references_memory_p.
13755         (struct gimple_statement_with_memory_ops_base): Remove
13756         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
13757         members.
13758         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
13759         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
13760         gimple_set_references_memory): Remove.
13761         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
13762         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
13763         New functions.
13764         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
13765         (verify_expr): Allow RESULT_DECL.
13766         (gimple_duplicate_bb): Do not copy virtual operands.
13767         (gimple_duplicate_sese_region): Adjust.
13768         (gimple_duplicate_sese_tail): Likewise.
13769         (mark_virtual_ops_in_region): Remove.
13770         (move_sese_region_to_fn): Do not call it.
13771         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
13772         and pass_simple_dse.
13773         (execute_function_todo): Handle TODO_update_address_taken,
13774         call execute_update_addresses_taken for TODO_rebuild_alias.
13775         (execute_todo): Adjust.
13776         (execute_one_pass): Init dump files early.
13777         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
13778         call-clobbered.
13779         (create_general_new_stmt): Clear vops.
13780         * tree-ssa-reassoc.c (get_rank): Adjust.
13781         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
13782         symbols for renaming.
13783         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
13784         (PARAM_AVG_ALIASED_VOPS): Likewise.
13785         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
13786         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
13787         * tree-ssa-operands.c: Simplify for new virtual operand representation.
13788         (operand_build_cmp, copy_virtual_operands,
13789         create_ssa_artificial_load_stmt, add_to_addressable_set,
13790         gimple_add_to_addresses_taken): Remove public functions.
13791         (unlink_stmt_vdef): New function.
13792
13793 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13794
13795         * config.gcc (powerpc-*-linux*): Merge variants.
13796
13797 2009-04-02  Chao-ying Fu  <fu@mips.com>
13798             James Grosbach  <james.grosbach@microchip.com>
13799
13800         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
13801         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
13802         cop0_sp_offset.
13803         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
13804         keep_interrupts_masked_p, use_debug_exception_return_p.
13805         (mips_attribute_table): Add interrupt, use_shadow_register_set,
13806         keep_interrupts_masked, use_debug_exception_return.
13807         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
13808         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
13809         New functions.
13810         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
13811         (mips_print_operand): Process COP0 registers to print $0 .. $31
13812         correctly for GAS to process.
13813         (mips_interrupt_extra_call_saved_reg_p): New function.
13814         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
13815         extra registers.
13816         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
13817         (mips_compute_frame_info): Add supports for interrupt context that
13818         includes doubleword accumulators and COP0 registers.
13819         (mips_for_each_saved_acc): New function.
13820         (mips_for_each_saved_gpr_and_fpr): Change the function name from
13821         mips_for_each_saved_reg.
13822         (mips_save_reg): Save accumulators.
13823         (mips_kernel_reg_p): A new for_each_rtx callback.
13824         (mips_expand_prologue): Support interrupt handlers.
13825         (mips_restore_reg): Restore accumulators.
13826         (mips_expand_epilogue): Support interrupt handlers.
13827         (mips_can_use_return_insn): Return false for interrupt handlers.
13828         (mips_epilogue_uses): New function.
13829         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
13830         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
13831         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
13832         cop0_move): New instructions.
13833         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
13834         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
13835         defines.
13836         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
13837         New defines.
13838         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
13839         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
13840         interrupt handlers, we use K0 as the temporary register.
13841         (EPILOGUE_USES): Change to a function call.
13842         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
13843         handlers, we use K0 as the temporary register.
13844
13845         * doc/extend.texi (Function Attributes): Document interrupt,
13846         use_shadow_register_set, keep_interrupts_masked,
13847         use_debug_exception_return for MIPS attributes.
13848
13849 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13850
13851         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
13852         Remove a number of t-files from tmake_file.
13853         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
13854         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
13855         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13856         target_prototype, not TARGET_PROTOTYPE.
13857         (LINK_OS_GNU_SPEC): Define.
13858         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
13859         and darwin-ldoubdle.c.
13860
13861 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13862
13863         PR driver/39293
13864         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
13865         (cpp_options): Ditto.
13866         (default_compilers): Ditto.
13867         (display_help): Ditto.
13868         (process_command): Ditto.
13869         (do_spec_1): Ditto.
13870         (set_input): Use lbasename instead of duplicate code.
13871         (save_temps_prefix): New static for -save-temps=obj.
13872         (save_temps_length): Ditto.
13873
13874         * doc/invoke.texi (-save-temps=obj): Document new variant to
13875         -save-temps switch.
13876
13877 2009-04-02  Jeff Law  <law@redhat.com>
13878
13879         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
13880         variable.
13881
13882 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13883
13884         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
13885         * configure: Regenerated.
13886
13887 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13888
13889         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
13890         share the argument list.
13891
13892 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13893
13894         Merge
13895
13896         2009-02-12  Diego Novillo  <dnovillo@google.com>
13897
13898         * varpool.c (debug_varpool): New.
13899         * cgraph.h (debug_varpool): Declare.
13900
13901 2009-04-02  Jan Hubicka  <jh@suse.cz>
13902
13903         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
13904         pass.
13905
13906 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13907
13908         * config/i386/i386.c (ix86_abi): Move initialization to ...
13909         (override_options): Here.
13910
13911 2009-04-02  Christian Bruel  <christian.bruel@st.com>
13912
13913         * config/sh/sh.c (sh_dwarf_register_span): New function.
13914         (TARGET_DWARF_REGISTER_SPAN): Define.
13915         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
13916
13917 2009-04-02  Ira Rosen  <irar@il.ibm.com>
13918
13919         PR tree-optimization/39595
13920         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
13921         interleaved loads group is not  greater than the SLP group size.
13922
13923 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13924
13925         * builtins.c (is_builtin_name): New.
13926         (called_as_built_in): Use is_builtin_name.
13927         * tree.h (is_builtin_name): New.
13928         * varasm.c (incorporeal_function_p): Use is_builtin_name
13929
13930 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
13931
13932         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
13933
13934 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
13935
13936         PR c++/26693
13937         * c-decl.c (clone_underlying_type): Move this ...
13938         * c-common.c (set_underlying_type): ... here.
13939         Also, make sure the function properly sets TYPE_STUB_DECL() on
13940         the newly created typedef variant type.
13941         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
13942         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
13943         points.
13944
13945 2009-04-02  Richard Guenther  <rguenther@suse.de>
13946
13947         PR tree-optimization/37221
13948         * tree-flow.h (degenerate_phi_result): Declare.
13949         * tree-ssa-dom.c (degenerate_phi_result): Export.
13950         * tree-scalar-evolution.c (analyze_initial_condition): If
13951         the initial condition is defined by a degenerate PHI node
13952         use the degenerate value.
13953
13954 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
13955
13956         PR rtl-optimization/39588
13957         * combine.c (merge_outer_ops): Do not set the constant when this
13958         is not necessary.
13959         (simplify_shift_const_1): Do not modify it either in this case.
13960
13961 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
13962
13963         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
13964         tuning is deprecated if -mtune value is set to an Itanium1 variant.
13965
13966 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
13967
13968         PR c/29027
13969         * c-lex.c (interpret_float): Default (no suffix) is double.
13970
13971 2009-04-1  Xinliang David Li  <davidxl@google.com>
13972
13973         * config/i386/i386.c (legitimate_constant_p): Recognize
13974         all one vector constant.
13975
13976 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13977
13978         * config/vax/vax.c: Add #includes to silence warnings.
13979         Change #include order to silence two warnings.
13980
13981 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13982
13983         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
13984         (ASM_SPEC): Pass -k to the assembler for PIC code.
13985
13986 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13987
13988         * config.gcc: Add vax-*-linux* to the switch.
13989         * config/vax/linux.h: New file. (TARGET_VERSION,
13990         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
13991
13992 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13993
13994         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
13995         Use predicate macros instead of GET_CODE() == foo.
13996         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
13997         ashlsi3, rotrsi3, <unnamed>): Likewise.
13998
13999 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14000
14001         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
14002         jbbccihi, jbbccisi): Remova trailing whitespace.
14003         * config/vax/constraints.md: Likewise.
14004         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14005         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
14006         * config/vax/predicates.md: Likewise.
14007         * config/vax/vax.c (print_operand_address, vax_output_int_move,
14008         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
14009         * config/vax/vax.h: Likewise.
14010         * config/vax/vax.md (nonlocal_goto): Likewise.
14011
14012 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14013
14014         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
14015         (indirectable_address_p, adjacent_operands_p): Add spaces around
14016         braces.
14017         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
14018
14019 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14020
14021         * config/vax/vax.c (legitimate_constant_address_p,
14022         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
14023         index_term_p, reg_plus_index_p, legitimate_address_p,
14024         vax_mode_dependent_address_p): Update comments to match functions
14025         modified by the recent int->bool conversion.
14026
14027 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14028
14029         * config/vax/builtins.md: Update copyright message.
14030         * config/vax/constraints.md: Likewise.
14031         * config/vax/netbsd-elf.h: Likewise.
14032         * config/vax/predicates.md: Likewise.
14033         * config/vax/vax-protos.h: Likewise.
14034         * config/vax/vax.c: Likewise.
14035         * config/vax/vax.h: Likewise.
14036         * config/vax/vax.md: Likewise.
14037         * config/vax/vax.opt: Likewise.
14038
14039 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14040
14041         * config/vax/builtins.md (ffssi2, ffssi2_internal,
14042         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
14043         * config/vax/constraints.md (B, R): Likewise.
14044         * config/vax/predicates.md (external_memory_operand,
14045         nonimmediate_addsub_di_operand): Likewise.
14046         * config/vax/vax.c (vax_output_int_add): Likewise.
14047         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
14048         untyped_call): Likewise.
14049
14050 2009-04-01  Matt Thomas  <matt@3am-software.com>
14051
14052         * config/vax/predicates.md: New file.
14053         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
14054         external_const_operand, nonsymbolic_operand, external_memory_operand,
14055         indirect_memory_operand, indexed_memory_operand,
14056         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
14057         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
14058         predicate.
14059         * config/vax/constraints.md: New file.
14060         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
14061         New constraint.
14062         * config/vax/builtins.md: New file.
14063         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
14064         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
14065         jbbccisi): Define.
14066         * config/vax/vax.opt (mqmath): Add option.
14067         * config/vax/vax.md (isfx): Extend with DI.
14068         (VAXintQH, VAXintQHSD): Define.
14069         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
14070         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
14071         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
14072         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
14073         (movdi): Update constraints and use vax_output_int_move().
14074         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
14075         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
14076         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
14077         nonlocal_goto): New.
14078         (mov<mode>): Extend accepted operand types.
14079         (subdi3_old): Rename from subdi3, change update constraints and use
14080         a new implementation.
14081         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
14082         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
14083         MOVE_RATIO, CLEAR_RATIO): Define.
14084         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
14085         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
14086         (PRINT_OPERAND): Redefine using a function instead of inlined code.
14087         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
14088         (split_quadword_operands): Make static and really allow variable
14089         splitting.
14090         (print_operand_address): Update for PIC generation.
14091         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
14092         indexable_address_p, fixup_mathdi_operand,
14093         vax_expand_addsub_di_operands, adjacent_operands_p): New.
14094         (vax_float_literal, legitimate_constant_p,
14095         indirectable_constant_address_p, index_term_p,
14096         reg_plus_index_p): Return bool instead of int.
14097         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
14098         where needed.
14099         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
14100         generation.
14101         (vax_output_conditional_branch): Indent.
14102         (legitimate_constant_address_p, indirectable_constant_address_p,
14103         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
14104         vax_mode_dependent_address_p): Return bool instead of int, update for
14105         PIC generation.
14106         * config/vax/vax-protos.h (legitimate_constant_address_p,
14107         legitimate_constant_p, legitimate_address_p,
14108         vax_mode_dependent_address_p): Change declaration to bool.
14109         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
14110         vax_expand_addsub_di_operands, vax_output_int_subtract,
14111         vax_output_movmemsi): Declare.
14112         (split_quadword_operands, vax_float_literal): Delete declaration.
14113         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
14114         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
14115         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
14116         ASM_OUTPUT_DWARF_PCREL): Define.
14117         (ASM_SPEC): Change definition to allow PIC generation.
14118
14119 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
14120
14121         * doc/sourcebuild.texi: Update front-end requirements.
14122
14123 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14124
14125         PR target/39226
14126         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
14127         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
14128         (booldi3_internal3): Use boolean_or_operator instead of
14129         boolean_operator.
14130
14131 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
14132
14133         PR c/39605
14134         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
14135         declarator whose size is not an integer constant expression but
14136         folds to an integer constant, then treat it as a constant
14137         subsequently.
14138
14139 2009-04-01  Richard Guenther  <rguenther@suse.de>
14140
14141         * fold-const.c (fold_plusminus_mult_expr): Do not fold
14142         i * 4 + 2 to (i * 2 + 1) * 2.
14143
14144 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14145
14146         PR c/37772
14147         * c-parser.c (c_parser_asm_statement): Skip until close paren and
14148         return if c_parser_asm_string_literal returned NULL.
14149
14150 2009-04-01  Nick Clifton  <nickc@redhat.com>
14151
14152         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
14153         already defined.
14154         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
14155         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
14156         other typedefs to avoid conflicts with libgcc2.c.  Define labels
14157         to gain 16-bit bit-manipulation functions from libgcc2.c and then
14158         include it.
14159         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
14160         to gain 16-bit trapping arithmetic functions from libgcc2.c and
14161         then include it.
14162
14163 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
14164
14165         * varasm.c (default_function_rodata_section): Declare DOT as
14166         const char*.
14167
14168 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
14169             Andrey Galkin  <agalkin@hypercom.com>
14170
14171         PR/39492
14172         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
14173         Make object_name unique for each process.
14174
14175 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14176
14177         PR other/39591
14178         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
14179         addressable variables in the parallel that could go out of scope while
14180         running queued tasks.
14181
14182 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
14183
14184         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
14185         (CASE_VALUES_THRESHOLD): Redefine.
14186         * config/avr/avr.c (avr_override_options): Remove initialization of
14187         avr_case_values_threshold variable.
14188         (avr_case_values_threshold): Remove variable. Add new function.
14189         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
14190         * config/avr/avr.opt (mno-tablejump): Remove option.
14191         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
14192
14193 2009-04-01  DJ Delorie  <dj@redhat.com>
14194
14195         * varasm.c (default_function_rodata_section): Don't assume
14196         anything about where the first '.' in the section name is.
14197
14198 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
14199
14200         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
14201         rs6000_emit_stack_tie.
14202
14203 2009-03-31  Ian Lance Taylor  <iant@google.com>
14204
14205         * tree-eh.c (tree_remove_unreachable_handlers): Compare
14206         gimple_code with GIMPLE_RESX, not RESX.
14207
14208 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14209
14210         * c-common.c (c_get_ident): New.
14211         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
14212
14213 2009-04-01  Ben Elliston  <bje@au.ibm.com>
14214
14215         * config/rs6000/sysv4.opt (msdata): Improve option description.
14216
14217 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
14218
14219         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
14220         (divdf3_internal_lat): Remove.
14221         (divxf3_internal_lat): Remove.
14222         (divxf3_internal_thr): Remove.
14223         (divxf): Use divxf3_internal.
14224         * config/ia64/div.md (divsf3_internal_lat): New.
14225         (divdf3_internal_lat): New.
14226         (divxf3_internal): New.
14227
14228 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14229
14230         PR c/448
14231         * Makefile.in (USE_GCC_STDINT): Define.
14232         (stmp-int-hdrs): Install stdint.h if applicable.
14233         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
14234         if known.
14235         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
14236         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
14237         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14238         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14239         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14240         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14241         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14242         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14243         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14244         (c_common_nodes_and_builtins): Initialize
14245         underlying_wchar_type_node.  Do not initialize
14246         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
14247         nodes for new types.
14248         (c_stddef_cpp_builtins): Define macros for new types.
14249         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
14250         Remove.
14251         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
14252         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
14253         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
14254         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
14255         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
14256         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
14257         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
14258         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
14259         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
14260         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
14261         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
14262         int16_type_node, int32_type_node, int64_type_node,
14263         uint8_type_node, uint16_type_node, c_uint32_type_node,
14264         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
14265         int_least32_type_node, int_least64_type_node,
14266         uint_least8_type_node, uint_least16_type_node,
14267         uint_least32_type_node, uint_least64_type_node,
14268         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
14269         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
14270         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
14271         uintptr_type_node): Define.
14272         * c-cppbuiltin.c (builtin_define_constants,
14273         builtin_define_type_minmax): New.
14274         (builtin_define_stdint_macros): Define more macros.
14275         (c_cpp_builtins): Define more limit macros.
14276         (type_suffix): New.
14277         (builtin_define_type_max): Define in terms of
14278         builtin_define_type_minmax.  Remove is_long parameter.  All
14279         callers changed.
14280         * config.gcc (use_gcc_stdint): Define.
14281         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
14282         Add newlib-stdint.h for generic targets.
14283         * config/glibc-stdint.h, config/newlib-stdint.h,
14284         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
14285         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
14286         * config/score/score.h (UINTPTR_TYPE): Define.
14287         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
14288         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
14289         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14290         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14291         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14292         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14293         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14294         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14295         * config/spu/spu.h (STDINT_LONG32): Define.
14296         * configure.ac (use_gcc_stdint): Substitute.
14297         * configure: Regenerate.
14298         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
14299         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
14300         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
14301         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
14302         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
14303         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
14304         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
14305         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
14306         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
14307         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
14308         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
14309         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
14310         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
14311         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
14312         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
14313         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
14314         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
14315         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
14316         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
14317         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
14318         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
14319         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
14320         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14321         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14322         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14323         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14324         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14325         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14326         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
14327
14328 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
14329
14330         * loop-iv.c (suitable_set_for_replacement): Renamed from
14331         simplify_using_assignment; changed to return bool and to accept new
14332         args DEST and SRC.  Return true iff we find a source/destination pair
14333         that can be used to make a replacement, and fill SRC and DEST if so.
14334         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
14335         changed.
14336         (simplify_using_initial_values): Deal with altered regs here and track
14337         more precisely the effect they have on the validity of our expression.
14338
14339         * loop-iv.c (simplify_using_condition): A condition of the form
14340         (EQ REG CONST) can be used to simply make a substitution.
14341         (simplify_using_initial_values): Keep track of conditions we have seen
14342         and keep using them to simplify new expressions, while applying the
14343         same substitutions to them as to the expression.
14344
14345         * simplify-rtx.c (simplify_relational_operation_1): Simplify
14346         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
14347         GEU/LTU reversed.
14348
14349         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
14350         changed.  Use this when trying to improve the upper bound.
14351         Generate the comparison by using simplify_gen_relational.
14352
14353         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
14354
14355         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
14356         functions.
14357         (simplify_using_assignment, simplify_using_initial_values): Call
14358         replace_in_expr to make replacements.  Call replace_single_def_regs
14359         once on the initial version of the expression.
14360
14361 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14362
14363         PR target/27237
14364         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
14365
14366 2009-03-31  Richard Guenther  <rguenther@suse.de>
14367
14368         PR middle-end/31029
14369         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
14370         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
14371
14372 2009-03-31  Richard Guenther  <rguenther@suse.de>
14373
14374         * tree.h (div_if_zero_remainder): Declare.
14375         * fold-const.c (div_if_zero_remainder): Export.
14376         * tree-ssa-forwprop.c
14377         (forward_propagate_addr_into_variable_array_index): Handle
14378         constant array index addition outside of the variable index.
14379
14380 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14381
14382         PR target/39592
14383         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
14384         define_splits, floatunssi<mode>2): Require x87 conversions from
14385         DImode to be permitted.
14386
14387 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14388
14389         PR preprocessor/15638
14390         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
14391
14392 2009-03-31  Richard Guenther  <rguenther@suse.de>
14393
14394         PR middle-end/23401
14395         PR middle-end/27810
14396         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
14397         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
14398         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
14399         a separate statement.
14400         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
14401         (lookup_tmp_var): Likewise.
14402         (is_gimple_formal_tmp_or_call_rhs): Remove.
14403         (is_gimple_reg_or_call_rhs): Rename to ...
14404         (is_gimple_reg_rhs_or_call): ... this.
14405         (is_gimple_mem_or_call_rhs): Rename to ...
14406         (is_gimple_mem_rhs_or_call): ... this.
14407         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
14408         DECL_GIMPLE_REG_P only if is_formal is true.
14409         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
14410         for non-proper post-modify expression gimplification.
14411         (gimplify_self_mod_expr): For post-modify expressions gimplify
14412         the lvalue to a minimal lvalue.
14413         (rhs_predicate_for): Remove formal temp case.
14414         (gimplify_modify_expr_rhs): Likewise.
14415         (gimplify_addr_expr): Use is_gimple_reg.
14416         (gimplify_expr): Remove formal temp cases.
14417         (gimple_regimplify_operands): Likewise.
14418         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
14419         and FILTER_EXPR like constants.
14420         * gimple.c (walk_gimple_op): Fix val_only initialization, use
14421         is_gimple_reg.
14422         (is_gimple_formal_tmp_rhs): Remove.
14423         (is_gimple_reg_rhs): Remove special casing.
14424         (is_gimple_mem_rhs): Fix.
14425         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
14426         (is_gimple_formal_tmp_var): Remove.
14427         (is_gimple_formal_tmp_reg): Likewise.
14428         (is_gimple_min_lval): Allow invariant component ref parts.
14429         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
14430         is_gimple_formal_tmp_reg): Remove declarations.
14431         * tree-cfg.c (verify_expr): Verify that variables with address
14432         taken do not have DECL_GIMPLE_REG_P set.
14433         * tree-mudflap.c (mf_build_check_statement_for): Use
14434         force_gimple_operand instead of gimplify_expr.
14435
14436 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
14437
14438         * modulo-sched.c (sms_schedule_by_order): Pass the actual
14439         schedulable rows to compute_split_row.
14440
14441 2009-03-31  Ben Elliston  <bje@au.ibm.com>
14442
14443         PR target/31635
14444         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
14445         OPT_mvrsave.
14446
14447 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14448
14449         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
14450         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
14451         * configure: Regenerate.
14452         * config.in: Regenerate.
14453         * config/rs6000/rs6000.opt (mtls-markers): Add.
14454         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
14455         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
14456         (tls_ld_aix, tls_ld_sysv): Likewise.
14457         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
14458         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
14459
14460 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14461
14462         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
14463
14464 2009-03-30  Jan Hubicka  <jh@suse.cz>
14465
14466         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
14467         out of RESX.
14468         (tree_remove_unreachable_handlers): Cleanup EH predecestor
14469         detection and label handling.
14470
14471 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14472
14473         * ira-int.h (ira_allocno): Rename left_conflicts_num to
14474         left_conflicts_size.
14475         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
14476         ALLOCNO_LEFT_CONFLICTS_SIZE.
14477
14478         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
14479         remove_allocno_from_bucket_and_push,
14480         allocno_spill_priority_compare, push_allocnos_to_stack,
14481         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14482         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
14483         (setup_allocno_left_conflicts_num): Ditto.  Rename to
14484         setup_allocno_left_conflicts_size.
14485         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14486         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
14487         setup_allocno_left_conflicts_size instead of
14488         setup_allocno_left_conflicts_num.
14489
14490         * ira-build.c (ira_create_allocno): Use
14491         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
14492         ALLOCNO_LEFT_CONFLICTS_NUM.
14493
14494 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14495
14496         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14497         instead of DF_LR_OUT.
14498
14499         * ira-lives.c (process_bb_node_lives): Ditto.
14500
14501         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14502         instead of DF_LR_{OUT,IN}.
14503
14504         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14505
14506         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14507
14508 2009-03-30  Jan Hubicka  <jh@suse.cz>
14509
14510         * except.c (label_to_region_map): Fix thinko.
14511
14512 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
14513
14514         PR middle-end/38237
14515         * tree.h (tree_find_value): New declaration.
14516         * tree.c (tree_find_value): New function.
14517         * varasm.c (assemble_external): Avoid duplicate entries on lists.
14518
14519 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
14520
14521         PR debug/39563
14522         * c-decl.c (struct c_binding): Add locus field.
14523         (bind): Add locus argument, set locus field from it.
14524         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
14525         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
14526         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
14527         implicitly_declare, undeclared_variable, lookup_label,
14528         declare_label, c_make_fname_decl, c_builtin_function,
14529         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
14530         bind callers.
14531
14532 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
14533
14534         PR target/38781
14535         * config/i386/i386.c (classify_argument): Check total size of
14536         structure.
14537
14538 2009-03-30  Martin Jambor  <mjambor@suse.cz>
14539
14540         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
14541         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
14542         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
14543         respectively.
14544
14545         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
14546         seen_variable_array_ref while also traversing a union.
14547
14548         * tree-inline.c (optimize_inline_calls): Do not call
14549         cgraph_node_remove_callees.
14550         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
14551         (pass_remove_cgraph_callee_edges): New variable.
14552         * passes.c (init_optimization_passes): Add
14553         pass_remove_cgraph_callee_edges after early inlining and before all
14554         late intraprocedural passes.
14555
14556         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
14557
14558 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14559
14560         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
14561         Fix typos in names.
14562
14563 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14564
14565         * combine.c (simplify_comparison): Use have_insn_for.
14566         * dojump.c (do_jump): Likewise.
14567
14568 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14569
14570         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
14571         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
14572         sparc_compare_op0 like sparc_compare_emitted used to be handled.
14573         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
14574         instead of sparc_compare_emitted.
14575         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
14576         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
14577         instead of sparc_compare_emitted.
14578
14579 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14580
14581         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
14582         enter/exit cfglayout mode.
14583         (pass_partition_block): Require it.
14584         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
14585         (combine_instructions): Track basic blocks instead of labels.
14586         (update_cfg_for_uncondjump): New.
14587         (try_combine): Use it.  Update jumps after rescanning.
14588         (pass_combine): Require PROP_cfglayout.
14589         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
14590
14591 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14592
14593         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
14594         Provide/destroy PROP_cfglayout respectively.
14595         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
14596         * tree-pass.h (PROP_cfglayout): New.
14597
14598 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14599
14600         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
14601         fold_convert_const_fixed_from_fixed,
14602         fold_convert_const_fixed_from_int,
14603         fold_convert_const_fixed_from_real, fold_negate_const): Do not
14604         set TREE_CONSTANT_OVERFLOW.
14605         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
14606         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
14607
14608 2009-03-30  Ira Rosen  <irar@il.ibm.com>
14609
14610         * tree-vect-loop-manip.c: New file.
14611         * tree-vectorizer.c: Update documentation and included files.
14612         (vect_loop_location): Make extern.
14613         (rename_use_op): Move to tree-vect-loop-manip.c
14614         (rename_variables_in_bb, rename_variables_in_loop,
14615         slpeel_update_phis_for_duplicate_loop,
14616         slpeel_update_phi_nodes_for_guard1,
14617         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
14618         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
14619         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
14620         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
14621         find_loop_location): Likewise.
14622         (new_stmt_vec_info): Move to tree-vect-stmts.c.
14623         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
14624         get_vectype_for_scalar_type, vect_is_simple_use,
14625         supportable_widening_operation, supportable_narrowing_operation):
14626         Likewise.
14627         (bb_in_loop_p): Move to tree-vect-loop.c.
14628         (new_loop_vec_info, destroy_loop_vec_info,
14629         reduction_code_for_scalar_code, report_vect_op,
14630         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
14631         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
14632         (vect_supportable_dr_alignment): Likewise.
14633         * tree-vectorizer.h (tree-data-ref.h): Include.
14634         (vect_loop_location): Declare.
14635         Reorganize function declarations according to the new file structure.
14636         * tree-vect-loop.c: New file.
14637         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
14638         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
14639         * tree-vect-data-refs.c: New file.
14640         * tree-vect-patterns.c (timevar.h): Don't include.
14641         * tree-vect-stmts.c: New file.
14642         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
14643         tree-vect-slp.c, tree-vect-loop.c.
14644         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
14645         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
14646         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
14647         (tree-vect-analyze.o): Remove.
14648         (tree-vect-transform.o): Likewise.
14649         (tree-vect-data-refs.o): Add rule.
14650         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
14651         tree-vect-slp.o): Likewise.
14652         (tree-vect-patterns.o): Remove redundant dependencies.
14653         (tree-vectorizer.o): Likewise.
14654         * tree-vect-slp.c: New file.
14655
14656 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14657
14658         * optc-gen.awk: Warn if an option flag has multiple different
14659         help strings.
14660
14661 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
14662
14663         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
14664         -floop-block): Document dependences on PPL, CLooG and Graphite.
14665
14666 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14667
14668         PR rtl-optimization/323
14669         * c-common.c (c_fully_fold, convert_and_check,
14670         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
14671         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
14672         * c-common.def (EXCESS_PRECISION_EXPR): New.
14673         * c-cppbuiltin.c (builtin_define_float_constants): Define
14674         constants with enough digits for long double.
14675         * c-lex.c (interpret_float): Interpret constant with excess
14676         precision where appropriate.
14677         * c-opts.c (c_common_post_options): Set
14678         flag_excess_precision_cmdline.  Give an error for
14679         -fexcess-precision=standard for C++ for processors where the
14680         option is significant.
14681         * c-parser.c (c_parser_conditional_expression): Handle excess
14682         precision in condition.
14683         * c-typeck.c (convert_arguments): Handle arguments with excess
14684         precision.
14685         (build_unary_op): Move excess precision outside operation.
14686         (build_conditional_expr): Likewise.
14687         (build_compound_expr): Likewise.
14688         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
14689         (build_modify_expr): Handle excess precision in RHS.
14690         (convert_for_assignment): Handle excess precision in converted
14691         value.
14692         (digest_init, output_init_element, process_init_element): Handle
14693         excess precision in initializer.
14694         (c_finish_return): Handle excess precision in return value.
14695         (build_binary_op): Handle excess precision in operands and add
14696         excess precision as needed for operation.
14697         * common.opt (-fexcess-precision=): New option.
14698         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
14699         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14700         For standard excess precision, output explicit conversion to and
14701         truncation from XFmode.
14702         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
14703         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
14704         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
14705         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
14706         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
14707         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
14708         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
14709         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
14710         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
14711         define_splits, sqrt<mode>2): Disable where appropriate for
14712         standard excess precision.
14713         * convert.c (convert_to_real): Do not shorten arithmetic to type
14714         for which excess precision would be used.
14715         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
14716         * doc/invoke.texi (-fexcess-precision=): Document option.
14717         (-mfpmath=): Correct index entry.
14718         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
14719         flag_excess_precision): New.
14720         * langhooks.c (lhd_post_options): Set
14721         flag_excess_precision_cmdline.
14722         * opts.c (common_handle_option): Handle -fexcess-precision=.
14723         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
14724         init_excess_precision): New.
14725         (lang_dependent_init_target): Call init_excess_precision.
14726         * tree.c (excess_precision_type): New.
14727         * tree.h (excess_precision_type): Declare.
14728
14729 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14730
14731         PR c/35235
14732         * c-typeck.c (build_component_ref): Do not copy qualifiers from
14733         non-lvalue to component.
14734
14735 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14736
14737         PR preprocessor/34695
14738         * Makefile.in (c-opts.o): Depend on c-tree.h.
14739         * c-common.c: Move down include of diagnostic.h.
14740         (done_lexing, c_cpp_error): New.
14741         * c-common.h (done_lexing): Declare.
14742         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
14743         (parse_in).
14744         * c-opts.c: Include c-tree.h.
14745         (c_common_init_options): Set preprocessor error callback.
14746         (c_common_handle_option): Do not set preprocessor
14747         inhibit_warnings, warnings_are_errors, warn_system_headers,
14748         pedantic_errors or inhibit_warnings flags.
14749         (c_common_post_options): Do not check cpp_errors (parse_in).
14750         (c_common_finish): Do not output dependencies if there were
14751         errors.  Do not check return value of cpp_finish.
14752         * c-ppoutput.c (pp_file_change): Set input_location.
14753         * c-tree.h (c_cpp_error): Declare.
14754         * diagnostic.c (diagnostic_set_info_translated): Also initialize
14755         override_column.
14756         (diagnostic_build_prefix): Check override_column.
14757         * diagnostic.h (diagnostic_info): Add override_column field.
14758         (diagnostic_override_column): Define.
14759
14760 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
14761
14762         * c-common.c (c_expand_expr, c_staticp): Remove.
14763         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
14764         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
14765         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
14766         * c-gimplify.c (gimplify_compound_literal_expr,
14767         optimize_compound_literals_in_ctor): Remove.
14768         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
14769         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
14770         * c-semantics.c (emit_local_var): Remove.
14771
14772         * langhooks-def.h (lhd_expand_expr): Remove.
14773         * langhooks.c (lhd_expand_expr): Remove.
14774         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
14775
14776         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
14777         handling from c-semantics.c; don't call into langhook.
14778         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
14779         * gimplify.c (gimplify_compound_literal_expr,
14780         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
14781         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
14782         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
14783         as was done in c-gimplify.c.
14784         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
14785         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
14786         Move from c-common.h.
14787         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
14788
14789         * tree.c (staticp): Do not call langhook.
14790         * langhooks.c (lhd_staticp): Delete.
14791         * langhooks-def.h (lhd_staticp): Delete prototype.
14792         (LANG_HOOKS_STATICP): Delete.
14793         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
14794
14795         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
14796         instead of DECL_STMTs.
14797
14798 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14799
14800         PR c/456
14801         PR c/5675
14802         PR c/19976
14803         PR c/29116
14804         PR c/31871
14805         PR c/35198
14806         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
14807         void_type_node.
14808         (fold_call_expr): Return a NOP_EXPR from folding rather than the
14809         contained expression.
14810         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
14811         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
14812         conditional expressions for C.
14813         (decl_constant_value_for_optimization): Move from
14814         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
14815         whether optimizing and that the expression is a VAR_DECL not of
14816         array type instead of doing such checks in the caller.  Do not
14817         check pedantic.  Call gcc_unreachable for C++.
14818         * c-common.def (C_MAYBE_CONST_EXPR): New.
14819         * c-common.h (c_fully_fold, c_save_expr,
14820         decl_constant_value_for_optimization): New prototypes.
14821         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14822         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14823         EXPR_INT_CONST_OPERANDS): Define.
14824         * c-convert.c (convert): Strip nops from expression.
14825         * c-decl.c (groktypename): Take extra parameters expr and
14826         expr_const_operands.  Update call to grokdeclarator.
14827         (start_decl): Update call to grokdeclarator.  Add statement for
14828         expressions used in type of decl.
14829         (grokparm): Update call to grokdeclarator.
14830         (push_parm_decl): Update call to grokdeclarator.
14831         (build_compound_literal): Add parameter non_const and build a
14832         C_MAYBE_COSNT_EXPR if applicable.
14833         (grokdeclarator): Take extra parameters expr and
14834         expr_const_operands.  Track expressions used in declaration
14835         specifiers and declarators.  Fold array sizes and track whether
14836         they are constant expressions and whether they are integer
14837         constant expressions.
14838         (parser_xref_tag): Set expr and expr_const_operands fields in
14839         return value.
14840         (grokfield): Update call to grokdeclarator.
14841         (start_function): Update call to grokdeclarator.
14842         (build_null_declspecs): Set expr and expr_const_operands fields in
14843         return value.
14844         (declspecs_add_type): Handle expressions in typeof specifiers.
14845         * c-parser.c (c_parser_declspecs): Set expr and
14846         expr_const_operands fields for declaration specifiers.
14847         (c_parser_enum_specifier): Likewise.
14848         (c_parser_struct_or_union_specifier): Likewise.
14849         (c_parser_typeof_specifier): Likewise.  Update call to
14850         groktypename.  Fold expression as needed.  Return expressions with
14851         type instead of adding statements.
14852         (c_parser_attributes): Update calls to c_parser_expr_list.
14853         (c_parser_statement_after_labels): Fold expression before passing
14854         to objc_build_throw_stmt.
14855         (c_parser_condition): Fold expression.
14856         (c_parser_asm_operands): Fold expression.
14857         (c_parser_conditional_expression): Use c_save_expr.  Update call
14858         to build_conditional_expr.
14859         (c_parser_alignof_expression): Update call to groktypename.
14860         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
14861         original_code.  Fold expression argument of va_arg.  Create
14862         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
14863         argument to va_arg.  Update calls to groktypename.  Fold array
14864         index for offsetof.  Verify that first argument to
14865         __builtin_choose_expr has integer type.
14866         (c_parser_postfix_expression_after_paren_type): Update calls to
14867         groktypename and build_compound_literal.  Handle expressions with
14868         side effects in type name.
14869         (c_parser_postfix_expression_after_primary): Update call to
14870         c_parser_expr_list.  Set original_code for calls to
14871         __builtin_constant_p.
14872         (c_parser_expr_list): Take extra parameter fold_p.  Fold
14873         expressions if requested.
14874         (c_parser_objc_type_name): Update call to groktypename.
14875         (c_parser_objc_synchronized_statement): Fold expression.
14876         (c_parser_objc_receiver): Fold expression.
14877         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
14878         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
14879         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
14880         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
14881         (struct c_typespec): Add elements expr and expr_const_operands.
14882         (struct c_declspecs): Add elements expr and expr_const_operands.
14883         (groktypename, build_conditional_expr, build_compound_literal):
14884         Update prototypes.
14885         (in_late_binary_op): Declare.
14886         * c-typeck.c (note_integer_operands): New function.
14887         (in_late_binary_op): New variable.
14888         (decl_constant_value_for_broken_optimization): Move to c-common.c
14889         and rename to decl_constant_value_for_optimization.
14890         (default_function_array_conversion): Do not strip nops.
14891         (default_conversion): Do not call
14892         decl_constant_value_for_broken_optimization.
14893         (build_array_ref): Do not fold result.
14894         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
14895         result when operand is a VLA.
14896         (c_expr_sizeof_type): Update call to groktypename.  Handle
14897         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
14898         result when operand names a VLA type.
14899         (build_function_call): Update call to build_compound_literal.
14900         Only fold result for calls to __builtin_* functions.  Strip
14901         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
14902         the function designator.
14903         (convert_arguments): Fold arguments.  Update call to
14904         convert_for_assignment.
14905         (build_unary_op): Handle increment and decrement of
14906         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
14907         decrement earlier.  Fold operand of increment and decrement.
14908         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
14909         built for integer operand.  Wrap returns that are INTEGER_CSTs
14910         without being integer constant expressions or that have integer
14911         constant operands without being INTEGER_CSTs.
14912         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
14913         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
14914         result is an integer constant expression or can be used in
14915         unevaluated parts of one and avoid folding and wrap as
14916         appropriate.  Fold operands before possibly doing -Wsign-compare
14917         warnings.
14918         (build_compound_expr): Wrap result for C99 if operands can be used
14919         in integer constant expressions.
14920         (build_c_cast): Update call to digest_init.  Do not ignore
14921         overflow from casting floating-point constants to integers.  Wrap
14922         results that could be confused with integer constant expressions,
14923         null pointer constants or floating-point constants.
14924         (c_cast_expr): Update call to groktypename.  Handle expressions
14925         included in type name.
14926         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
14927         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
14928         Update calls to convert_for_assignment.
14929         (convert_for_assignment): Take new parameter
14930         null_pointer_constant.  Do not strip nops or call
14931         decl_constant_value_for_broken_optimization.  Set
14932         in_late_binary_op for conversions to boolean.
14933         (store_init_value): Update call to digest_init.
14934         (digest_init): Take new parameter null_pointer_constant.  Do not
14935         call decl_constant_value_for_broken_optimization.  pedwarn for
14936         initializers not constant expressions.  Update calls to
14937         convert_for_assignment.
14938         (constructor_nonconst): New.
14939         (struct constructor_stack): Add nonconst element.
14940         (really_start_incremental_init, push_init_level, pop_init_level):
14941         Handle constructor_nonconst and nonconst element.
14942         (set_init_index): Call constant_expression_warning for array
14943         designators.
14944         (output_init_element): Fold value.  Set constructor_nonconst as
14945         applicable.  pedwarn for initializers not constant expressions.
14946         Update call to digest_init.  Call constant_expression_warning
14947         where constant initializers are required.
14948         (process_init_element): Use c_save_expr.
14949         (c_finish_goto_ptr): Fold expression.
14950         (c_finish_return): Fold return value.  Update call to
14951         convert_for_assignment.
14952         (c_start_case): Fold switch expression.
14953         (c_process_expr_stmt): Fold expression.
14954         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
14955         ensure statement expression is not evaluated in constant expression.
14956         (build_binary_op): Track whether results are integer constant
14957         expressions or may occur in such, disable folding and wrap results
14958         as applicable.  Fold operands for -Wsign-compare warnings unless
14959         in_late_binary_op.
14960         (c_objc_common_truthvalue_conversion): Handle results folded to
14961         integer constants that are not integer constant expressions.
14962         * doc/extend.texi: Document when typeof operands are evaluated,
14963         that condition of __builtin_choose_expr is an integer constant
14964         expression, and more about use of __builtin_constant_p in
14965         initializers.
14966
14967 2009-03-29  Richard Guenther  <rguenther@suse.de>
14968
14969         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
14970         propagate addresses of array references.
14971
14972 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
14973
14974         * regmove.c (perhaps_ends_bb_p): Remove.
14975         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
14976         from INSN and check that the main loop stays within that basic block.
14977         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
14978         (regmove_forward_pass): Split out from regmove_optimize.  Use
14979         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
14980         (regmove_backward_pass): Split out from regmove_optimize.  Use
14981         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
14982         (regmove_optimize): Simplify.
14983
14984 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
14985
14986         PR target/39545
14987         * config/i386/i386.c (classify_argument): Ignore flexible array
14988         member in struct and warn ABI change.
14989
14990 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
14991
14992         * config/i386/i386-protos.h (ix86_agi_dependent): New.
14993
14994         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
14995         (ix86_adjust_cost): Updated.
14996
14997 2009-03-29  Jan Hubicka  <jh@suse.cz>
14998
14999         PR middle-end/28850
15000         * tree-pass.h (pass_cleanup_eh): New function.
15001         (remove_unreachable_regions): Break code handling RTL
15002         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
15003         that can not be reached by runtime.
15004         (can_be_reached_by_runtime): New function.
15005         (label_to_region_map): New function.
15006         (num_eh_regions): New function.
15007         (rtl_remove_unreachable_regions): New function.
15008         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
15009         (remove_eh_region): New function.
15010         * except.h: Include sbitmap and vecprim.
15011         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
15012         num_eh_regions): Declare.
15013         * passes.c (init_optimization_passes): Schedule cleanup_eh.
15014         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
15015         * tree-eh.c (tree_remove_unreachable_handlers): New function.
15016         (tree_empty_eh_handler_p): New function.
15017         (cleanup_empty_eh): New function.
15018         (cleanup_eh): New function.
15019         (pass_cleanup_eh): New function.
15020
15021 2009-03-29  Jan Hubicka  <jh@suse.cz>
15022
15023         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
15024         for removed regions.
15025
15026 2009-03-29  Jan Hubicka  <jh@suse.cz>
15027
15028         * except.c (dump_eh_tree): Dump all datastructures.
15029
15030 2009-03-29  Jan Hubicka  <jh@suse.cz>
15031
15032         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
15033         (duplicate_eh_regions_1): Likewise.
15034         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
15035         vector; call EH verification.
15036         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15037         Be ready for region being removed.
15038
15039 2009-03-29  Jan Hubicka  <jh@suse.cz>
15040
15041         * bitmap.c (bitmap_last_set_bit): New function.
15042         * bitmap.h (bitmap_last_set_bit): Declare.
15043
15044 2009-03-29  David Ayers  <ayers@fsfe.org>
15045
15046         PR objc/27377
15047         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
15048         by calling objc_compare_types and surpress warnings about
15049         incompatible C pointers that are compatible ObjC pointers.
15050
15051 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
15052
15053         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
15054         call initialize_inline_failed.
15055         (initialize_inline_failed): Move it from here ...
15056         * cgraph.c (initialize_inline_failed): ... to here.
15057         (cgraph_create_edge): Call initialize_inline_failed rather than
15058         setting inline_failed directly.
15059
15060 2009-03-29  Ben Elliston  <bje@au.ibm.com>
15061
15062         PR target/32542
15063         * sysv4.opt (msdata): Improve comment.
15064         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
15065         * sysv4.h (SVR4_ASM_SPEC): Likewise.
15066
15067 2009-03-29  Ben Elliston  <bje@au.ibm.com>
15068
15069         PR target/30451
15070         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
15071         load and store attributes.
15072
15073 2009-03-29  Ben Elliston  <bje@au.ibm.com>
15074
15075         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
15076         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
15077         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
15078         * doc/extend.texi (X86 Built-in Functions): Add index entries for
15079         __builtin_infq and __builtin_huge_valq.
15080
15081 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
15082
15083         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
15084         atmega8m1 devices.
15085         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15086         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
15087
15088 2009-03-28  Xinliang David Li  <davidxl@google.com>
15089
15090         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
15091         (do_dbg_cnt): New function.
15092
15093 2009-03-28  Jan Hubicka  <jh@suse.cz>
15094
15095         Merge from pretty-ipa:
15096
15097         2009-03-27  Jan Hubicka  <jh@suse.cz>
15098
15099         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15100         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
15101         * passes.c (function_called_by_processed_nodes_p): New.
15102         * ipa-pure-const.c (check_call): Fix handling of operands.
15103         (analyze_function): Dump debug output for skipped bodies.
15104         (local_pure_const): Use function_called_by_processed_nodes_p.
15105         * dwarf2out.c (reference_to_unused): Use output.
15106         * passes.c (do_per_function_toporder): Likewise.
15107
15108         2008-11-12  Jan Hubicka  <jh@suse.cz>
15109
15110         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
15111         * ipa-pure-const.c (funct_state_d): Add can throw field; make
15112         state_set_in_source enum
15113         (check_decl): Ignore memory tags; do not set fake looping flags;
15114         dump diagnostics.
15115         (check_operand, check_tree, check_rhs_var, check_lhs_var,
15116         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
15117         (check_call, analyze_function): Rewrite.
15118         (check_stmt): New.
15119         (add_new_function): Update call of analyze_function.
15120         (generate_summary): Add call of analyze_function.
15121         (propagate): Propagate can_throw; handle state_set_in_source correctly.
15122         (local_pure_const): New function.
15123         (pass_local_pure_const): New pass.
15124         * ipa-inline.c (inline_transform): Set after_inlining.
15125         * tree-eh.c (stmt_can_throw_external): New.
15126         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
15127         work with aliasing built.
15128         * tree-flow.h (stmt_can_throw_external): New.
15129         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
15130         and local pure/const pass in early and late optimization queue.
15131
15132 2009-03-28  Martin Jambor  <mjambor@suse.cz>
15133
15134         * fold-const.c (get_pointer_modulus_and_residue): New parameter
15135         allow_func_align.
15136         (fold_binary): Allow function decl aligment consideration is the
15137         second argument is integer constant one.
15138         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
15139         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
15140         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
15141
15142 2009-03-28  Jan Hubicka  <jh@suse.cz>
15143
15144         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
15145         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
15146         * function.h (rtl_data): Add nothrow flag.
15147         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
15148         set DECL_NOTHROW for AVAILABLE functions.
15149
15150 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
15151
15152         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
15153         following vector keyword has expansion starting with pixel or bool
15154         keyword, expand vector to __vector and pixel or bool to __pixel or
15155         __bool.
15156
15157         PR c++/39554
15158         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
15159         warn_if_disallowed_function_p): Removed.
15160         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
15161         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
15162         warning_if_disallowed_function_p.
15163         * flags.h (warn_if_disallowed_function_p,
15164         warn_disallowed_functions): Removed.
15165         * common.opt (Wdisallowed-function-list=): Removed.
15166         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
15167
15168 2009-03-28  Richard Guenther  <rguenther@suse.de>
15169
15170         PR tree-optimization/38723
15171         * tree-ssa-pre.c (compute_avail): Add all default definitions to
15172         the entry block.
15173
15174 2009-03-28  Jan Hubicka  <jh@suse.cz>
15175
15176         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
15177         test introduced by my previous patch.
15178
15179 2009-03-28  Richard Guenther  <rguenther@suse.de>
15180
15181         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
15182         the PHIs value undefined.
15183
15184 2009-03-28  Jan Hubicka  <jh@suse.cz>
15185
15186         * tree-pass.h (pass_fixup_cfg): New pass.
15187         * ipa-inline.c (inline_transform): Set
15188         always_inline_functions_inlined/after_inlining.
15189         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
15190         (pass_fixup_cfg): New pass.
15191         * passes.c (init_optimization_passes): Add fixup_cfg.
15192
15193 2009-03-28  Richard Guenther  <rguenther@suse.de>
15194
15195         PR tree-optimization/38458
15196         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
15197         argument use the arguments copy-of value.
15198
15199 2009-03-28  Richard Guenther  <rguenther@suse.de>
15200
15201         PR tree-optimization/38180
15202         * tree-ssa-ccp.c (get_default_value): Simplify.
15203         (likely_value): Likewise.
15204         (surely_varying_stmt_p): Properly handle VOP case.
15205         (ccp_initialize): Likewise.
15206         (ccp_fold): Handle propagating through *&.
15207         (fold_const_aggregate_ref): Also handle decls.
15208
15209 2009-03-28  Jan Hubicka  <jh@suse.cz>
15210
15211         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15212         * cgraph.h (cgraph_node): Likewise.
15213         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
15214         (cgraph_reset_node): Use process flag.
15215         (cgraph_mark_functions_to_output): Likewise.
15216         (cgraph_expand_function): Likewise.
15217         (cgraph_expand_all_functions): Likewise.
15218         (cgraph_output_in_order): Likewise.
15219         * dwarf2out.c (reference_to_unused): Likewise.
15220         * passes.c do_per_function_toporder): Likewise.
15221
15222 2009-03-28  Jan Hubicka  <jh@suse.cz>
15223
15224         Bring from lto-branch:
15225
15226         2008-09-03  Doug Kwan  <dougkwan@google.com>
15227
15228         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
15229         enums instead of reason strings.
15230         * cgraph.c (cgraph_create_edge): Same.
15231         (cgraph_inline_failed_string): New function.
15232         * cgraph.h (cgraph_inline_failed_t): New enum type.
15233         (cgraph_inline_failed_string): New prototype.
15234         (struct cgraph_edge): Change type of INLINED_FAILED from constant
15235         char pointer to cgraph_inline_failed_t.
15236         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
15237         (cgraph_default_inline_p): Ditto.
15238         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
15239         to cgraph_inline_failed_t pointer.
15240         * cif-code.def: New file.
15241         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
15242         reason string.
15243         (cgraph_check_inline_limits): Change type of REASON to pointer to
15244         cgraph_inline_failed_t.  Replace reason strings with enums.
15245         (cgraph_default_inline_p): Ditto.
15246         (cgraph_recursive_inlining_p): Ditto.
15247         (update_caller_keys): Change type of FAILED_REASON to
15248         cgraph_inline_failed_t.
15249         (cgraph_set_inline_failed): Change type of REASON to pointer to
15250         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
15251         convert enums to strings for text output.
15252         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
15253         to be of type cgraph_inline_failed_t.  Replace reason strings with
15254         enums.  Call cgraph_inline_failed_string to covert enums
15255         to strings for text output.
15256         (cgraph_decide_inlining): Replace reason strings with enums.
15257         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
15258         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
15259         for text output.
15260         * tree-inline.c (expand_call_inline): Change type of REASON
15261         to cgraph_inline_failed_t.  Replace reason strings with enums.
15262         Call cgraph_inline_failed_string for text output.
15263         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
15264         (cgraph.o): Ditto.
15265
15266 2009-03-28  Jan Hubicka  <jh@suse.cz>
15267
15268         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
15269         cgraph_clone_node): Remove master clone handling.
15270         (cgraph_is_master_clone, cgraph_master_clone): Remove.
15271         * cgraph.h (master_clone): Remove.
15272         (cgraph_is_master_clone, cgraph_master_clone): Remove.
15273         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
15274         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
15275
15276 2009-03-28  Jan Hubicka  <jh@suse.cz>
15277
15278         * cgraph.c (cgraph_function_body_availability): Functions declared
15279         inline are always safe to assume that it is not going to be replaced.
15280
15281 2009-03-28  Richard Guenther  <rguenther@suse.de>
15282
15283         PR tree-optimization/38513
15284         * tree-ssa-pre.c (eliminate): Remove redundant stores.
15285         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
15286         EXC_PTR_EXPR and FILTER_EXPR.
15287         (get_ref_from_reference_ops): Likewise.
15288
15289 2009-03-28  Richard Guenther  <rguenther@suse.de>
15290
15291         PR tree-optimization/38968
15292         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
15293         Use FLOOR_MOD_EXPR to compute misalignment.
15294
15295 2009-03-28  Richard Guenther  <rguenther@suse.de>
15296
15297         PR tree-optimization/37795
15298         * tree.h (combine_comparisons): Declare.
15299         * fold-const.c (combine_comparisons): Export.
15300         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
15301         comparisons.
15302         (ifcombine_iforif): Use combine_comparisons.
15303
15304 2009-03-28  Jan Hubicka  <jh@suse.cz>
15305
15306         * tree-eh.c (inlinable_call_p): New function.
15307         (make_eh_edges): Use it.
15308         (verify_eh_edges): Use it.
15309         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
15310         * except.c (reachable_next_level): Add inlinable_function argument
15311         (sjlj_find_directly_reachable_regions): Update.
15312         (add_reachable_handler): Do not set saw_any_handlers.
15313         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
15314         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15315         Add new inlinable call parameter.
15316         (can_throw_internal, can_throw_external): Update.
15317         * except.h (can_throw_internal_1, can_throw_external_1,
15318         foreach_reachable_handler): Update declaration.
15319
15320 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
15321
15322         * config/arm/t-arm-coff, config/h8300/coff.h,
15323         config/i386/i386-aout.h, config/i386/i386-coff.h,
15324         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
15325         config/pdp11/2bsd.h, config/rs6000/aix41.h,
15326         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
15327         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
15328         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
15329         sys-types.h: Remove.
15330         * Makefile.in: Remove protoize and fixproto support and references
15331         in comments.
15332         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
15333         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
15334         Remove.
15335         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
15336         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
15337         unprotoize$(exeext).
15338         (rest.encap): Don't depend on $(STMP_FIXPROTO)
15339         (.PHONY): Don't depend on proto.
15340         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
15341         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
15342         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
15343         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
15344         build/gen-protos.o, build/scan.o, xsys-protos.h,
15345         build/fix-header$(build_exeext), build/fix-header.o,
15346         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
15347         stmp-install-fixproto): Remove.
15348         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
15349         SYSCALLS.c or fixproto files.
15350         (install-common): Don't install protoize.
15351         (install-headers-tar, install-headers-cpio, install-headers-cp):
15352         Don't depend on $(STMP_FIXPROTO).
15353         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
15354         install fixproto files or write out fixproto settings.
15355         (uninstall): Don't uninstall protoize.
15356         * config.gcc (use_fixproto): Remove.
15357         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
15358         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
15359         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
15360         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
15361         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
15362         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
15363         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
15364         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
15365         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
15366         * config/t-vxworks (STMP_FIXPROTO): Remove.
15367         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
15368         STMP_FIXPROTO): Remove.
15369         * config.in, configure: Regenerate.
15370         * crtstuff.c (gid_t, uid_t): Don't undefine.
15371         * doc/install.texi: Change m68k-coff to m68k-elf in example.
15372         (arm-*-coff, arm-*-aout: Remove target entries.
15373         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
15374         Remove mention of AIX 4.1.
15375         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
15376         * doc/invoke.texi (Running Protoize): Remove.
15377         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
15378         (Protoize Caveats): Remove.
15379         * tsystem.h: Update comments on headers assumed to exist.
15380
15381 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15382
15383         * genautomata.c: Add a new year to the copyright.  Add a new
15384         reference.
15385         (struct insn_reserv_decl): Add comments for member bypass_list.
15386         (find_bypass): Remove.
15387         (insert_bypass): New.
15388         (process_decls): Use insert_bypass.
15389         (output_internal_insn_latency_func): Output all bypasses with the
15390         same input insn in one switch case.
15391
15392         * rtl.def (define_bypass): Describe bypass choice.
15393         * doc/md.texi (define_bypass): Ditto.
15394
15395 2009-03-27  Richard Guenther  <rguenther@suse.de>
15396
15397         * gimplify.c (mark_addressable): Export.
15398         * tree-flow.h (mark_addressable): Declare.
15399         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
15400         * tree-ssa.c (verify_phi_args): Verify that address taken
15401         variables have TREE_ADDRESSABLE set.
15402
15403 2009-03-27  Richard Guenther  <rguenther@suse.de>
15404
15405         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
15406         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
15407         Do not mark decls TREE_ADDRESSABLE.
15408         (build_fold_addr_expr): Adjust.
15409         (fold_addr_expr): Remove.
15410         (fold_unary): Use build_fold_addr_expr.
15411         (fold_comparison): Likewise.
15412         (split_address_to_core_and_offset): Likewise.
15413         * coverage.c (tree_coverage_counter_addr): Mark the array decl
15414         TREE_ADDRESSABLE.
15415         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
15416         (gimplify_modify_expr_to_memcpy): Mark source and destination
15417         addressable.
15418         * omp-low.c (create_omp_child_function): Mark the object decl
15419         TREE_ADDRESSABLE.
15420         (lower_rec_input_clauses): Mark the var we take the address of
15421         TREE_ADDRESSABLE.
15422         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
15423
15424 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15425
15426         PR middle-end/39315
15427         * cfgexpand.c (expand_one_stack_var_at): Change alignment
15428         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
15429
15430 2009-03-27  Richard Guenther  <rguenther@suse.de>
15431
15432         PR tree-optimization/39120
15433         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
15434         constraints.
15435         (handle_lhs_call): Process return constraints.  Add escape
15436         constraints if necessary.
15437         (handle_const_call): Fill out return constraints.  Make nested
15438         case more precise.  Avoid consttmp if possible.
15439         (handle_pure_call): Fill out return constraints.  Avoid
15440         callused if possible.
15441         (find_func_aliases): Simplify call handling.
15442
15443 2009-03-27  Richard Guenther  <rguenther@suse.de>
15444
15445         PR tree-optimization/39120
15446         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
15447         as a representative.
15448         (solve_graph): Do propagate CALLUSED.
15449         (handle_pure_call): Use a scalar constraint from CALLUSED for
15450         the return value.
15451         (find_what_p_points_to): CALLUSED shall not appear in poins-to
15452         solutions.
15453
15454 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15455
15456         PR c/39323
15457         * c-common.c (handle_aligned_attribute): Properly check alignment
15458         overflow.  Use (1U << i) instead of (1 << i).
15459
15460         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
15461
15462         * expr.h (get_mem_align_offset): Updated.
15463
15464         * tree.h (tree_decl_common): Change align to "unsigned int" and
15465         move it before pointer_alias_set.
15466
15467 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15468             Jakub Jelinek  <jakub@redhat.com>
15469
15470         PR target/38034
15471         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
15472         gr_register_operand with gr_reg_or_0_operand.
15473         (cmpxchg_rel_di): Likewise.
15474         (sync_lock_test_and_set<mode>): Likewise.
15475
15476 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15477
15478         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
15479         (true_regnum): Likewise.
15480
15481         * rtlanal.c (subreg_info): Moved to ...
15482         * rtl.h (subreg_info): Here.  New.
15483         (subreg_get_info): New.
15484
15485         * rtlanal.c (subreg_get_info): Make it extern.
15486
15487 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15488
15489         PR target/39472
15490         * config/i386/i386.c (ix86_abi): New.
15491         (override_options): Handle -mabi=.
15492         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
15493         (ix86_call_abi_override): Likewise.
15494         (init_cumulative_args): Likewise.
15495         (function_arg_advance): Likewise.
15496         (function_arg_64): Likewise.
15497         (function_arg): Likewise.
15498         (ix86_pass_by_reference): Likewise.
15499         (ix86_function_value_regno_p): Likewise.
15500         (ix86_build_builtin_va_list_abi): Likewise.
15501         (setup_incoming_varargs_64): Likewise.
15502         (is_va_list_char_pointer): Likewise.
15503         (ix86_init_machine_status): Likewise.
15504         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
15505         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
15506         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
15507         (ix86_function_abi): Make it static and return enum calling_abi.
15508         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
15509         with ix86_abi.
15510         (ix86_fn_abi_va_list): Updated.
15511
15512         * config/i386/i386.h (ix86_abi): New.
15513         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
15514         (CONDITIONAL_REGISTER_USAGE): Likewise.
15515         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
15516         (machine_function): Likewise.
15517
15518         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
15519         with ix86_abi.
15520         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
15521         (STACK_BOUNDARY): Likewise.
15522         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
15523
15524         * config/i386/i386.opt (mabi=): New.
15525
15526         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
15527         return enum calling_abi.
15528         (ix86_function_type_abi): Likewise.
15529         (ix86_function_abi): Removed.
15530
15531         * doc/invoke.texi: Document -mabi= option for x86.
15532
15533 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15534
15535         * builtins.c (real_dconstp): Delete.
15536         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
15537
15538 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
15539             Jakub Jelinek  <jakub@redhat.com>
15540
15541         PR debug/37959
15542         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
15543         (gen_subprogram_die): When a function is explicit, generate the
15544         DW_AT_explicit attribute.
15545         * langhooks.h (struct lang_hooks_for_decls): Add
15546         function_decl_explicit_p langhook.
15547         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
15548         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
15549
15550 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
15551
15552         * builtins.c (fold_builtin_memory_op): Optimize memmove
15553         into memcpy if we can prove source and destination don't overlap.
15554
15555         * tree-inline.c: Include gt-tree-inline.h.
15556         (clone_fn_id_num): New variable.
15557         (clone_function_name): New function.
15558         (tree_function_versioning): Use it.
15559         * Makefile.in (GTFILES): Add tree-inline.c.
15560
15561 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
15562
15563         * BASE-VER: Change to 4.5.0.
15564
15565 2009-03-27  Xinliang David Li  <davidxl@google.com>
15566
15567         PR tree-optimization/39557
15568         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
15569
15570 2009-03-27  Xinliang David Li  <davidxl@google.com>
15571
15572         PR tree-optimization/39548
15573         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
15574         candidate check.
15575
15576 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15577
15578         * c-common.c (pointer_int_sum): Use %wd on return from
15579         tree_low_cst.
15580
15581 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15582
15583         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
15584         on return from tree_low_cst.
15585
15586 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15587
15588         PR c++/36799
15589         * ginclude/stdarg.h (va_copy): Define also for
15590         __GXX_EXPERIMENTAL_CXX0X__.
15591
15592 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15593
15594         PR c++/35652
15595         * builtins.h (c_strlen): Do not warn here.
15596         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
15597         * c-common.c (pointer_int_sum): Take an explicit location.
15598         Warn about offsets out of bounds.
15599         * c-common.h (pointer_int_sum): Adjust declaration.
15600
15601 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15602
15603         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
15604         markup glitch.
15605
15606 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
15607
15608         PR c++/39554
15609         * opts.c (warn_if_disallowed_function_p): Don't assume
15610         get_callee_fndecl must return non-NULL.
15611
15612 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
15613
15614         PR rtl-optimization/39522
15615         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
15616         when reg_reloaded_valid is set.
15617
15618 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15619
15620         * config/spu/divv2df3.c: New file.
15621         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
15622         (DPBIT_FUNCS): Filter out _div_df.
15623
15624 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
15625
15626         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
15627         a jump insn, count that jump in the distance to the loop start.
15628
15629 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15630
15631         PR target/39523
15632         * config/sh/sh.c (calc_live_regs): Fix condition for global
15633         registers except PIC_OFFSET_TABLE_REGNUM.
15634
15635 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
15636
15637         PR/39518
15638         * doc/invoke.texi (-mconsole): New.
15639         (-mcygwin): New.
15640         (-mno-cygwin): New.
15641         (-mdll): New.
15642         (-mnop-fun-dllimport): New.
15643         (-mthread): New.
15644         (-mwin32): New.
15645         (-mwindows): New.
15646         (sub section "i386 and x86-64 Windows Options"): New.
15647
15648 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
15649
15650         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
15651         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
15652
15653 2009-03-25  Richard Guenther  <rguenther@suse.de>
15654
15655         PR middle-end/39497
15656         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
15657         of -Wno-error.
15658
15659 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
15660
15661         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
15662         neither of haifa/selective schedulers are working.
15663
15664 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15665
15666         * doc/invoke.texi (Debugging Options): Fix description of
15667         -fno-merge-debug-strings.
15668
15669 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
15670
15671         * config/cris/libgcc.ver: New version-script.
15672         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
15673
15674         * configure.ac <GAS features, nop mnemonic>: Add pattern
15675         crisv32-*-* for "nop".
15676         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
15677         * configure: Regenerate.
15678
15679 2009-03-24  Ira Rosen  <irar@il.ibm.com>
15680
15681         PR tree-optimization/39529
15682         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
15683         mark_sym_for_renaming for the tag copied to the new vector
15684         pointer.
15685
15686 2009-03-24  Arthur Loiret  <aloiret@debian.org>
15687
15688         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
15689         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
15690         EXTRA_SPEC_FUNCTIONS.
15691         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
15692         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
15693         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
15694         -march and -mtune options.
15695
15696 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
15697
15698         * config/m68k/t-rtems: Add m5329 multilib.
15699
15700 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
15701             Jakub Jelinek  <jakub@redhat.com>
15702
15703         PR debug/39524
15704         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
15705         nodes.
15706
15707 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15708
15709         PR c/39495
15710         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
15711         instead of c_parser_expression_conv, if original_code isn't one of the
15712         4 allowed comparison codes, fail.
15713
15714 2009-03-23  Richard Guenther  <rguenther@suse.de>
15715
15716         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
15717         * tree.h (struct tree_type): Likewise.
15718         * reload.h (struct insn_chain): Likewise.
15719         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
15720         * function.h (struct function): Likewise.
15721         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
15722
15723 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15724
15725         PR tree-optimization/39516
15726         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
15727
15728 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
15729
15730         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
15731         should be set true if BITS_PER_WORD of target is bigger than 32
15732
15733 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
15734
15735         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
15736         Translate -B-options to -rpath-link.  Correct existing
15737         rpath-link and conditionalize on !nostdlib.
15738
15739 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15740
15741         * doc/extend.texi (Function Attributes, Variable Attributes):
15742         Fix typos.
15743         * doc/invoke.texi (Debugging Options, Optimize Options)
15744         (i386 and x86-64 Options, MCore Options): Likewise.
15745
15746 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
15747
15748         PR debug/37890
15749         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
15750         it for block local namespace aliases.
15751         (gen_decl_die): Pass context_die to gen_namespace_die.
15752
15753 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15754
15755         PR c/39495
15756         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
15757         minimum or maximum value.
15758
15759 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
15760
15761         * reginfo.c (globalize_reg): Recompute derived reg sets.
15762
15763 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
15764
15765         PR target/39063
15766         * libgcc2.c (mprotect): Do not use signed arguments for
15767         VirtualProtect, use DWORD arguments.  Also fix the 'may
15768         be used uninitialized' warning for the np variable.
15769
15770 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15771
15772         PR target/39496
15773         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
15774         functions using regparm calling conventions when not optimizing.
15775         (ix86_function_sseregparm): Similarly for sseregparm calling
15776         conventions.
15777
15778 2009-03-19  Li Feng  <nemokingdom@gmail.com>
15779
15780         PR middle-end/39500
15781         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
15782         dependence if the first conflict is after niter iterations.
15783
15784 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
15785
15786         PR middle-end/38609
15787         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
15788         functions with dynamic stack-pointer adjustments.
15789
15790 2009-03-19  Ben Elliston  <bje@au.ibm.com>
15791
15792         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
15793         option; change to -msdata=data.
15794
15795 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15796
15797         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
15798         and -fopenmp.
15799
15800 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
15801
15802         PR target/35180
15803         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
15804
15805 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
15806
15807         * doc/invoke.texi (Code Gen Options): Expand discussion of
15808         -fno-common.
15809
15810 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
15811
15812         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
15813         * matrix-reorg.c (struct matrix_info): Likewise.
15814         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
15815         * rtl.h (struct mem_attrs): Likewise.
15816         * df.h (struct df): Likewise.
15817         * tree-data-ref.h (struct data_dependence_relation): Likewise.
15818         * ira-int.h (struct ira_allocno): Likewise.
15819         * df-scan.c (struct df_collection_rec): Likewise.
15820         * ira.c (struct equivalence): Likewise.
15821         * function.c (struct temp_slot): Likewise.
15822         * cfgloop.h (struct loop): Likewise.
15823
15824         PR debug/39485
15825         * function.c (use_register_for_decl): When not optimizing, disregard
15826         register keyword for variables with types containing methods.
15827
15828 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
15829
15830         PR middle-end/39447
15831         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
15832         (is_simple_operand): Call contains_component_ref_p before calling data
15833         reference analysis that would fail on COMPONENT_REFs.
15834
15835         * tree-vrp.c (search_for_addr_array): Fix formatting.
15836
15837 2009-03-18  Richard Guenther  <rguenther@suse.de>
15838
15839         * tree-vect-transform.c (vect_loop_versioning): Fold the
15840         generated comparisons.
15841         * tree-vectorizer.c (set_prologue_iterations): Likewise.
15842         (slpeel_tree_peel_loop_to_edge): Likewise.
15843
15844 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15845
15846         PR middle-end/37805
15847         * opts.c (print_specific_help): In addition to `undocumented',
15848         accept `separate' and `joined' flags if passed alone.  Describe
15849         output by the first matched one of those.
15850         (common_handle_option): Skip over empty strings.
15851         * gcc.c (display_help): Fix help string for `--help='.
15852         * doc/invoke.texi (Option Summary, Overall Options): With
15853         `--help=', classes and qualifiers can both be repeated, but
15854         only the latter can be negated.  One should not pass only
15855         negated qualifiers.  Fix markup and examples.
15856
15857         Revert
15858         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
15859         PR middle-end/37805
15860         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
15861         and -fhelp=separate.
15862
15863 2009-03-17  Jing Yu  <jingyu@google.com>
15864
15865         PR middle-end/39378
15866         * function.h (struct rtl_data): Move is_thunk from here...
15867         (struct function): ...to here.
15868         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
15869         * varasm.c (assemble_start_function): Change is_thunk from crtl to
15870         cfun.
15871         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
15872         cfun.
15873         (alpha_does_function_need_gp, alpha_start_function): Likewise.
15874         (alpha_output_function_end_prologue): Likewise.
15875         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
15876         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
15877         (rs6000_output_function_epilogue): Likewise.
15878         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
15879
15880 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
15881
15882         PR target/39482
15883         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
15884         from different units in a single alternative.
15885         (*truncdfsf_i387): Ditto.
15886         (*truncxfsf2_mixed): Ditto.
15887         (*truncxfdf2_mixed): Ditto.
15888
15889 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
15890
15891         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
15892         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
15893
15894         PR debug/39474
15895         * tree-ssa-live.c (remove_unused_locals): Don't remove local
15896         unused non-artificial variables when not optimizing.
15897
15898         PR debug/39471
15899         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
15900         DW_TAG_imported_module even if decl is IMPORTED_DECL with
15901         NAMESPACE_DECL in its DECL_INITIAL.
15902
15903         PR middle-end/39443
15904         * optabs.c (set_user_assembler_libfunc): New function.
15905         * expr.h (set_user_assembler_libfunc): New prototype.
15906         * c-common.c: Include libfuncs.h.
15907         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
15908         for memcmp, memset, memcpy, memmove and abort.
15909         * Makefile.in (c-common.o): Depend on libfuncs.h.
15910
15911         PR debug/39412
15912         * dwarf2out.c (gen_inlined_enumeration_type_die,
15913         gen_inlined_structure_type_die, gen_inlined_union_type_die,
15914         gen_tagged_type_instantiation_die): Removed.
15915         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
15916         do nothing.
15917
15918 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
15919
15920         PR testsuite/38526
15921         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
15922         its use.
15923         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
15924         (check-parallel-%): Ditto.
15925         (check-consistency): Ditto.
15926
15927 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
15928
15929         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
15930         local variable rhs by NULL_TREE.
15931
15932 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15933
15934         PR target/39477
15935         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
15936
15937 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15938
15939         PR target/39476
15940         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
15941
15942 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15943
15944         PR target/39473
15945         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
15946         for ms->sysv ABI calls only in 64bit mode.
15947
15948         * config/i386/i386.md (untyped_call): Support 32bit.
15949
15950 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
15951
15952         * doc/extend.texi: Replace x86_65 with x86_64.
15953
15954 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
15955
15956         PR tree-optimization/39455
15957         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
15958         mismatches for POINTER_TYPE_P (type).
15959         (number_of_iterations_le): Likewise.
15960
15961 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15962
15963         * config/picochip/picochip.c: Removed profiling support.
15964         * config/picochip/picochip.md: Removed profiling instruction.
15965         * config/picochip/picochip.h: Removed profiling builtin.
15966
15967 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
15968
15969         * doc/install.texi (--with-host-libstdcxx): Document.
15970
15971 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
15972
15973         PR target/34299
15974         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
15975         generate a warning if the function name does not begin with
15976         "__vector" and the function has either the 'signal' or 'interrupt'
15977         attribute, from here to ...
15978         (avr_declare_function_name): ...here. New function.
15979         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
15980         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
15981
15982 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
15983
15984         PR bootstrap/39454
15985         * cse.c (fold_rtx): Don't modify original const_arg1 when
15986         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
15987         separate variable instead.
15988         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
15989         from out of range shift counts.
15990         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
15991
15992 2009-03-13  Catherine Moore  <clm@codesourcery.com>
15993
15994         * config/i386/x-mingw32 (host-mingw32.o): Replace
15995         diagnostic.h with $(DIAGNOSTIC_H).
15996
15997 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
15998
15999         PR target/39431
16000         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
16001         predicate.
16002         * config/i386/sync.md (sync_compare_and_swap<mode>,
16003         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
16004         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
16005         into a register.
16006         (sync_double_compare_and_swapdi_pic,
16007         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
16008         cmpxchg8b_pic_memory_operand instead of just memory_operand.
16009
16010 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
16011
16012         PR target/39445
16013         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
16014
16015 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
16016
16017         PR target/39327
16018         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16019         (avx_addsubv4df3): Likewise.
16020         (*avx_addsubv4sf3): Likewise.
16021         (sse3_addsubv4sf3): Likewise.
16022
16023 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
16024
16025         PR target/38824
16026         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
16027
16028 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
16029
16030         PR debug/39432
16031         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
16032         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
16033         registers for allocnos created from user-defined variables.
16034
16035 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16036
16037         PR target/39181
16038         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
16039         of non-integer mode as well.
16040
16041 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
16042
16043         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
16044         for functions for which the parameter types are unknown.
16045
16046 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
16047
16048         PR target/39137
16049         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
16050         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
16051         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
16052         * config/i386/i386.c (ix86_local_alignment): For
16053         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
16054         long long variables on the stack to avoid dynamic realignment.
16055         Allow the first argument to be a decl rather than type.
16056         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
16057
16058 2009-03-11  Nick Clifton  <nickc@redhat.com>
16059
16060         PR target/5362
16061         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
16062         options.
16063         Add description to mno-lsim option.
16064         * config/mcore/mcore.h: Remove comment about deprecated m4align
16065         option.
16066         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
16067         * doc/invoke.texi: Add description of mno-lsim and
16068         mstack-increment options.
16069
16070         * config/fr30/fr30.opt: Document the -mno-lsim option.
16071         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
16072         and -mno-lsim options.
16073
16074 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16075
16076         * fold-const.c (fold_comparison): Only call fold_inf_compare
16077         if the mode supports infinities.
16078
16079 2009-03-11  Jason Merrill  <jason@redhat.com>
16080
16081         PR debug/39086
16082         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
16083         end already did.  Notice GIMPLE_CALL modifications of the result.
16084         Don't copy debug information from an ignored decl or a decl from
16085         another function.
16086
16087 2009-03-10  Richard Guenther  <rguenther@suse.de>
16088             Nathan Froyd  <froydnj@codesourcery.com>
16089
16090         PR middle-end/37850
16091         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
16092         (__divMODE3): Likewise.
16093
16094 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
16095
16096         PR tree-optimization/39394
16097         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
16098         DECL_SIZE_UNIT of variable length FIELD_DECLs.
16099
16100 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16101
16102         * recog.c (verfiy_changes): Disallow renaming of hard regs in
16103         inline asms for register asm ("") declarations.
16104
16105 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
16106
16107         * fold-const.c (fold_unary): Fix comment.
16108
16109 2009-03-07  Jan Hubicka  <jh@suse.cz>
16110
16111         PR target/39361
16112         * tree-inline.c (setup_one_parameter): Do replacement of const
16113         argument by constant in SSA form.
16114
16115 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16116
16117         PR middle-end/38028
16118         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
16119         determine alignment passed to assign_stack_local.
16120         (assign_parms_unsplit_complex): Likewise.
16121         * except.c (sjlj_build_landing_pads): Likewise.
16122
16123 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
16124
16125         PR middle-end/39360
16126         * tree-flow.h (add_referenced_var): Return bool instead of void.
16127         * tree-dfa.c (add_referenced_var): Return result of
16128         referenced_var_check_and_insert call.
16129         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
16130         of referenced_var_check_and_insert.
16131
16132         PR debug/39372
16133         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
16134         (gen_variable_die): Emit DW_AT_location on abstract static variable's
16135         DIE, don't emit it if abstract origin already has it.
16136         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
16137         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
16138
16139 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
16140
16141         * genpreds.c (needs_variable): Fix parentheses at variable name
16142         detection.
16143         (write_tm_constrs_h): Indent generated code.
16144
16145 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16146
16147         * doc/extend.texi (Function Attributes): Add documentation
16148         for isr attributes.
16149
16150 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
16151
16152         PR debug/39387
16153         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
16154         take locus from its DECL_SOURCE_LOCATION instead of input_location.
16155
16156 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
16157
16158         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
16159         the loop as bad.
16160
16161 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
16162
16163         PR debug/39379
16164         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
16165         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
16166
16167 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
16168
16169         * config/i386/i386.md (R8_REG, R9_REG): New constants.
16170         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
16171         constants instead of magic numbers.
16172         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
16173         (QI_REG_P): Ditto.
16174         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
16175         (x86_64_ms_abi_int_parameter_registers): Ditto.
16176         (x86_64_int_return_registers): Ditto.
16177         (ix86_maybe_switch_abi): Ditto.
16178         (ix86_expand_call): Ditto for clobbered_registers array.
16179         (ix86_hard_regno_mode_ok): Ditto.
16180         (x86_extended_QIreg_mentioned_p): Ditto.
16181
16182 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
16183
16184         PR tree-optimization/39349
16185         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
16186
16187         * combine.c (gen_lowpart_for_combine): Use omode when generating
16188         clobber.
16189
16190 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
16191
16192         PR rtl-optimization/39235
16193         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
16194
16195 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
16196
16197         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
16198
16199 2009-03-04  Richard Guenther  <rguenther@suse.de>
16200
16201         PR tree-optimization/39362
16202         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
16203         that occur in abnormal PHIs should be varying.
16204
16205 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
16206
16207         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
16208         Extend comments.
16209         (simple_iv):  Take loop as an argument instead of statement.
16210         * tree-scalar-evolution.h (simple_iv): Declaration changed.
16211         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
16212         to simple_iv.
16213         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
16214         Ditto.
16215         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
16216         * matrix-reorg.c (analyze_transpose): Ditto.
16217         * tree-data-ref.c (dr_analyze_innermost): Ditto.
16218         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
16219         * tree-predcom.c (ref_at_iteration): Ditto.
16220         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
16221
16222 2009-03-04  Richard Guenther  <rguenther@suse.de>
16223
16224         PR tree-optimization/39358
16225         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
16226         escaped_id and callused_id.
16227         (solve_graph): Likewise.
16228
16229 2009-03-04  Richard Guenther  <rguenther@suse.de>
16230
16231         PR tree-optimization/39339
16232         * tree-sra.c (try_instantiate_multiple_fields): Make it
16233         no longer ICE on the above.
16234
16235 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
16236
16237         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
16238         that fits within Pmode.
16239
16240 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
16241
16242         PR middle-end/10109
16243         * tm.texi (LIBCALL_VALUE): Update description.
16244
16245 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
16246
16247         PR middle-end/34443
16248         * doc/extend.texi (section): Update description.
16249
16250 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16251
16252         PR middle-end/39345
16253         * tree-inline.c (remapped_type): New.
16254         (can_be_nonlocal): Call remapped_type instead of remap_type.
16255
16256 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
16257
16258         PR fortran/39354
16259         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
16260         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
16261
16262 2009-03-03  Richard Guenther  <rguenther@suse.de>
16263
16264         PR middle-end/39272
16265         * tree.c (tree_nonartificial_location): New function.
16266         * tree.h (tree_nonartificial_location): Declare.
16267         * builtins.c (expand_builtin_memory_chk): Provide location
16268         of the call location for artificial function pieces.
16269         (maybe_emit_chk_warning): Likewise.
16270         (maybe_emit_sprintf_chk_warning): Likewise.
16271         (maybe_emit_free_warning): Likewise.
16272         * expr.c (expand_expr_real_1): Likewise.
16273
16274 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
16275
16276         PR tree-optimization/39343
16277         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
16278         COMPONENT_REF t has ARRAY_TYPE.
16279
16280 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
16281
16282         PR middle-end/39335
16283         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
16284         when the type precision of the induction variable should be
16285         larger than the type precision of nit.
16286         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
16287         * graphite.c (graphite_loop_normal_form): Same.
16288         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
16289
16290 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16291
16292         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
16293         (*call_1_rex64_ms_sysv): Use named constants instead of magic
16294         numbers to describe clobbered registers.
16295         (*call_value_0_rex64_ms_sysv): Ditto.
16296         * config/i386/mmx.md (mmx_emms): Ditto.
16297         (mmx_femms): Ditto.
16298
16299 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
16300
16301         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
16302         of ABI_64.
16303
16304 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16305
16306         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
16307         (spu_section_type_flags): New function.
16308
16309 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16310
16311         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
16312         reg_class_contents of FLOAT_REGS into a temporary.
16313
16314 2009-03-02  Richard Guenther  <rguenther@suse.de>
16315             Ira Rosen  <irar@il.ibm.com>
16316
16317         PR tree-optimization/39318
16318         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
16319         information to the vectorized statement.
16320
16321 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
16322
16323         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
16324         variable.  Use defined names instead of magic constants for REX SSE
16325         registers.
16326
16327 2009-03-01  Richard Guenther  <rguenther@suse.de>
16328
16329         PR tree-optimization/39331
16330         * omp-low.c (lower_send_shared_vars): Do not receive new
16331         values for the reference of DECL_BY_REFERENCE parms or results.
16332
16333 2009-03-01  Jan Hubicka  <jh@suse.cz>
16334
16335         PR debug/39267
16336         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
16337         BLOCK_NONLOCALIZED_VAR): New macros.
16338         (tree_block): Add nonlocalized_vars.
16339         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
16340         gen_decl_die): Add origin argument.  Allow generation of die with
16341         origin at hand only.
16342         (gen_member_die, gen_type_die_with_usage, force_decl_die,
16343         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
16344         of gen_*.
16345         (gen_block_die): Fix checking for unused blocks.
16346         (process_scope_var): Break out from .... ; work with origins only.
16347         (decls_for_scope) ... here; process nonlocalized list.
16348         (dwarf2out_ignore_block): Look for nonlocalized vars.
16349         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
16350         vars.
16351         (dump_scope_block): Dump them.
16352         * tree-inline.c (remap_decls): Handle nonlocalized vars.
16353         (remap_block): Likewise.
16354         (can_be_nonlocal): New predicate.
16355         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
16356
16357 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16358
16359         * configure: Regenerate.
16360
16361 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16362
16363         * optc-gen.awk: No need to duplicate option flags twice.
16364         Reuse help texts for duplicate options which do not have any.
16365
16366         * gcc.c (display_help): Document --version.
16367
16368         * gcc.c (main): If print_help_list and verbose_flag, ensure
16369         driver output comes before subprocess output.
16370
16371         * optc-gen.awk: Assign all remaining fields to help string,
16372         space-separated, for multi-line help in *.opt.
16373
16374         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
16375         -Wno-pedantic-ms-format is for MinGW targets only.
16376
16377         * doc/options.texi (Option file format): Fix bad indentation,
16378         restoring dropped sentence.
16379
16380 2009-02-28  Jan Hubicka  <jh@suse.cz>
16381
16382         * tree-inline.c (tree_function_versioning): Output debug info.
16383
16384 2009-02-28  Jan Hubicka  <jh@suse.cz>
16385
16386         PR debug/39267
16387         * tree-inline.c (setup_one_parameter): Do not copy propagate
16388         arguments when not optimizing.
16389
16390 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
16391
16392         PR target/39327
16393         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16394         (avx_addsubv4df3): Likewise.
16395         (*avx_addsubv4sf3): Likewise.
16396         (sse3_addsubv4sf3): Likewise.
16397         (*avx_addsubv2df3): Likewise.
16398         (sse3_addsubv2df3): Likewise.
16399         (avx_unpckhps256): Correct item selectors.
16400         (avx_unpcklps256): Likewise.
16401         (avx_unpckhpd256): Likewise.
16402         (avx_unpcklpd256): Likewise.
16403
16404 2009-02-28  Jan Hubicka  <jh@suse.cz>
16405
16406         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
16407         static vars.
16408         (copy_arguments_for_versioning): If var is declared don't declare it.
16409         (tree_function_versioning): First setup substitutions and then copy
16410         args.
16411
16412 2009-02-27  Jan Hubicka  <jh@suse.cz>
16413
16414         PR debug/39267
16415         * cgraph.h (varpool_output_debug_info): Remove.
16416         * cgraphunit.c (varpool_output_debug_info): Remove.
16417         * dwarf2out.c (deferred_locations_struct): New struct
16418         (deferred_locations): New type.
16419         (deferred_locations_list): New static var.
16420         (deffer_location): New function.
16421         (gen_variable_die): Use it.
16422         (decls_for_scope): Output info on local static vars.
16423         (dwarf2out_finish): Process deferred locations.
16424         * varpool.c (varpool_output_debug_info): Remove.
16425
16426 2009-02-27  Jan Hubicka  <jh@suse.cz>
16427
16428         PR debug/39267
16429         * tree.h (TREE_PROTECTED): Fix comment.
16430         (BLOCK_HANDLER_BLOCK): Remove.
16431         (struct tree_block): Remove handler_block add body_block.
16432         (inlined_function_outer_scope_p): New.
16433         (is_body_block): Remove.
16434         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
16435         * dwarf2out.c (is_inlined_entry_point): Remove.
16436         (add_high_low_attributes): Use inlined_function_outer_scope_p.
16437         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
16438         code.
16439         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
16440         * gimplify.c (gimplify_expr): Gimplify body blocks.
16441         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
16442         block with multiple subblocks.
16443         (dump_scope_block): Prettier output; dump more flags and info.
16444         (dump_scope_blocks): New.
16445         (remove_unused_locals): Use dump_scope_blocks.
16446         * tree-flow.h (dump_scope_blocks): Declare.
16447         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
16448         * stmt.c (is_body_block): Remove.
16449         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
16450         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
16451
16452 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
16453
16454         PR middle-end/39308
16455         * graphite.c (graphite_loop_normal_form): Do not call
16456         number_of_iterations_exit from a gcc_assert.
16457
16458 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16459
16460         * config/s390/s390.c (s390_swap_cmp): Look for conditional
16461         jumps if COND is NULL.
16462         (find_cond_jump): New function.
16463         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
16464         * config/s390/s390.md: Remove z10_cobra attribute value.
16465
16466 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
16467
16468         * config/alpha/alpha.h (alpha_expand_mov): Return false if
16469         force_const_mem returns NULL_RTX.
16470
16471 2009-02-26  Jan Hubicka  <jh@suse.cz>
16472
16473         PR debug/39267
16474         * cgraph.h (varpool_output_debug_info): Remove.
16475         * cgraphunit.c (varpool_output_debug_info): Remove.
16476         * dwarf2out.c (deferred_locations_struct): New struct
16477         (deferred_locations): New type.
16478         (deferred_locations_list): New static var.
16479         (deffer_location): New function.
16480         (gen_variable_die): Use it.
16481         (decls_for_scope): Output info on local static vars.
16482         (dwarf2out_finish): Process deferred locations.
16483         * varpool.c (varpool_output_debug_info): Remove.
16484
16485 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
16486
16487         PR rtl-optimization/39241
16488         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
16489         to subreg_offset_representable_p.
16490
16491 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16492
16493         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
16494         execute function prototype.  Get f and nregs from max_reg_num
16495         and get_insns.  Remove the first backward pass as it's dead,
16496         guard the forward pass by flag_expensive_optimizations.
16497         (rest_of_handle_regmove): Delete.
16498         (pass_regmove): Replace it with regmove_optimize.
16499
16500 2009-02-25  Martin Jambor  <mjambor@suse.cz>
16501
16502         PR tree-optimization/39259
16503         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
16504         calls_alloca function flags.
16505         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
16506         calls are detected.
16507
16508 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16509
16510         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
16511         flags_set_1_rtx, flags_set_1_set): Delete.
16512         (regmove_optimize): Do not call mark_flags_life_zones.
16513
16514 2009-02-24  Julian Brown  <julian@codesourcery.com>
16515
16516         PR target/35965
16517         * config/arm/arm.c (require_pic_register): Only set
16518         cfun->machine->pic_reg once per function.
16519
16520 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
16521
16522         * doc/invoke.texi (Link Options): Document an easier way to pass
16523         options that take arguments to the GNU linker using -Xlinker and -Wl.
16524
16525 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
16526
16527         PR target/33785
16528         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
16529
16530 2009-02-24  Richard Guenther  <rguenther@suse.de>
16531
16532         PR debug/39285
16533         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
16534
16535 2009-02-24  Richard Guenther  <rguenther@suse.de>
16536             Zdenek Dvorak  <ook@ucw.cz>
16537
16538         PR tree-optimization/39233
16539         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
16540         from converting them to a generic type.
16541
16542 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
16543
16544         PR tree-optimization/39260
16545         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
16546         contains a condition with a real type.
16547         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
16548
16549 2009-02-23  Jason Merrill  <jason@redhat.com>
16550
16551         PR c++/38880
16552         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
16553         narrowing_initializer_constant_valid_p.
16554         (narrowing_initializer_constant_valid_p): Don't return
16555         null_pointer_node for adding a pointer to itself.
16556
16557 2009-02-23  Jan Hubicka  <jh@suse.cz>
16558
16559         PR c/12245
16560         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
16561         resizing.
16562
16563 2009-02-23  Jan Hubicka  <jh@suse.cz>
16564
16565         PR tree-optimization/37709
16566         * tree.c (block_ultimate_origin): Move here from dwarf2out.
16567         * tree.h (block_ultimate_origin): Declare.
16568         * dwarf2out.c (block_ultimate_origin): Move to tree.c
16569         * tree-ssa-live.c (remove_unused_scope_block_p):
16570         Eliminate blocks containig no instructions nor live variables nor
16571         nested blocks.
16572         (dump_scope_block): New function.
16573         (remove_unused_locals): Enable removal of dead blocks by default;
16574         enable dumping at TDF_DETAILS.
16575
16576 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16577
16578         * config/i386/i386.c (classify_argument): Don't allow COImode
16579         and OImode.
16580         (function_arg_advance_32): Don't allow OImode.
16581         (function_arg_32): Likewise.
16582         (function_value_32): Likewise.
16583         (return_in_memory_32): Likewise.
16584         (function_arg_64): Remove OImode comment.
16585
16586 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16587
16588         PR target/39261
16589         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16590         ix86_expand_vector_set for V4DImode in 64bit mode only.
16591         (ix86_expand_vector_init_one_var): Likewise.
16592
16593 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
16594
16595         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
16596
16597 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16598
16599         PR bootstrap/39257
16600         * loop-iv.c: Revert last change.
16601         * emit-rtl.c: Likewise.
16602
16603 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16604
16605         PR target/39256
16606         * config/i386/i386.c (type_natural_mode): Remove an extra
16607         space in the warning message.
16608         (function_value_32): Handle 32-byte vector modes.
16609         (return_in_memory_32): Likewise.
16610
16611 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16612
16613         * loop-iv.c (truncate_value): New function.
16614         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
16615         of lowpart_subreg.
16616         (lowpart_subreg): Move to...
16617         * emit-rtl.c: ...here.
16618
16619 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
16620
16621         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
16622         accidental and undocumented change at revision 140860.
16623
16624 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
16625
16626         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
16627         take gimple_seq * arguments.
16628         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
16629         types_compatible_p langhook.
16630
16631 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
16632             Joseph Myers  <joseph@codesourcery.com>
16633
16634         * config/arm/arm.c (arm_builtin_va_list): New function.
16635         (arm_expand_builtin_va_start): Likewise.
16636         (arm_gimplify_va_arg_expr): Likewise.
16637         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
16638         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
16639         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
16640         (va_list_type): New variable.
16641         (arm_mangle_type): Mangle va_list_type appropriately.
16642
16643 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16644
16645         PR middle-end/39157
16646         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
16647         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
16648         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
16649         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
16650         parameter to 1000 for -O1 by default.
16651         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
16652         parameter.
16653         * loop-invariant.c: Include params.h.
16654         (move_loop_invariants): Don't call move_single_loop_invariants on
16655         very large loops.
16656
16657 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
16658
16659         * calls.c (emit_library_call_value_1): Use slot_offset instead of
16660         offset when calculating bounds for indexing stack_usage_map.  Fixes
16661         a buffer overflow with certain target setups.
16662
16663 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16664
16665         PR target/39240
16666         * calls.c (expand_call): Clear try_tail_call if caller and callee
16667         disagree in promotion of function return value.
16668
16669 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
16670
16671         PR target/39175
16672         * c-common.c (c_determine_visibility): If visibility changed and
16673         DECL_RTL has been already set, call make_decl_rtl to update symbol
16674         flags.
16675
16676 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16677
16678         PR c++/39188
16679         * varasm.c (assemble_variable): Don't check DECL_NAME when
16680         globalizing a variable.
16681
16682 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
16683
16684         PR c/38483
16685         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
16686         expression before any __builtin_trap call.
16687         * c-typeck.c (build_function_call): Convert and check function
16688         arguments before generating a call to a trap.  Evaluate the
16689         function arguments before the trap.
16690
16691 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
16692
16693         PR target/39228
16694         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
16695         (UNSPEC_FXAM_MEM): New unspec.
16696         (fxam<mode>2_i387_with_temp): New insn and split pattern.
16697         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
16698         memory using fxam<mode>2_i387_with_temp to remove excess precision.
16699
16700 2009-02-19  Richard Guenther  <rguenther@suse.de>
16701
16702         PR tree-optimization/39207
16703         PR tree-optimization/39074
16704         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
16705         storedanything_tree): New.
16706         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
16707         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
16708         (build_succ_graph): Add edges from STOREDANYTHING to all
16709         non-direct nodes.
16710         (init_base_vars): Initialize STOREDANYTHING.
16711         (compute_points_to_sets): Free substitution info after
16712         building the succ graph.
16713         (ipa_pta_execute): Likewise.
16714
16715         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
16716         field.
16717         (do_ds_constraint): Do not add to special var or non-pointer
16718         field solutions.
16719         (type_could_have_pointers): Split out from ...
16720         (could_have_pointers): ... here.  For arrays use the element type.
16721         (create_variable_info_for): Initialize may_have_pointers.
16722         (new_var_info): Likewise.
16723         (handle_lhs_call): Make the HEAP variable unknown-sized.
16724         (intra_create_variable_infos): Use a type with pointers for
16725         PARM_NOALIAS, make it unknown-sized.
16726
16727 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16728
16729         PR target/39224
16730         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
16731
16732 2009-02-18  Jason Merrill  <jason@redhat.com>
16733
16734         PR target/39179
16735         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
16736         value if DECL_EXTERNAL.
16737         * tree-sra.c (sra_walk_gimple_assign): Likewise.
16738         * target.h (gcc_target::binds_local_p): Clarify "module".
16739         * tree.h (TREE_PUBLIC): Clarify "module".
16740
16741 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
16742
16743         PR target/38891
16744         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
16745         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
16746
16747 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
16748
16749         PR target/39082
16750         * c.opt (Wabi): Support C and ObjC.
16751         (Wpsabi): New.
16752
16753         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
16754
16755         * config/i386/i386.c (classify_argument): Warn once about the ABI
16756         change when passing union with long double.
16757
16758         * doc/invoke.texi: Update -Wabi for warning psABI changes.
16759
16760 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
16761
16762         PR c/35447
16763         * c-parser.c (c_parser_compound_statement): Always enter and leave
16764         a scope.
16765
16766 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16767
16768         PR target/34587
16769         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
16770
16771 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
16772
16773         PR tree-optimization/36922
16774         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
16775         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
16776         Likewise.
16777
16778 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16779
16780         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
16781         to 0 for EABI64.
16782
16783 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16784
16785         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
16786
16787 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16788
16789         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
16790         tree sharing.
16791
16792 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
16793             Richard Sandiford  <rdsandiford@googlemail.com>
16794
16795         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
16796         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
16797         (loongson_biadd): ...this.
16798
16799 2009-02-17  Richard Guenther  <rguenther@suse.de>
16800
16801         PR tree-optimization/39202
16802         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
16803         a var make sure to follow existing collapses.
16804
16805 2009-02-17  Richard Guenther  <rguenther@suse.de>
16806
16807         PR middle-end/39214
16808         * langhooks.c (lhd_print_error_function): Check for NULL block.
16809
16810 2009-02-17  Richard Guenther  <rguenther@suse.de>
16811
16812         PR tree-optimization/39204
16813         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
16814         of the PHI arg.
16815
16816 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
16817
16818         * config/soft-fp/double.h: Update from glibc CVS.
16819
16820 2009-02-17  Richard Guenther  <rguenther@suse.de>
16821
16822         PR tree-optimization/39207
16823         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
16824         strict-aliasing warnings for pointers pointing to NULL.
16825
16826 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
16827
16828         PR c/35446
16829         * c-parser.c (c_parser_braced_init): Call pop_init_level when
16830         skipping until next close brace.
16831
16832 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
16833
16834         PR target/37049
16835         * config/i386/i386.c (ix86_expand_push): Set memory alignment
16836         to function argument boundary.
16837
16838 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16839
16840         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
16841         in the lea_add. Reload eventually constraints it properly.
16842         * config/picochip/constraints.md: Remove the target constraint
16843         "b", since it is not needed anymore.
16844
16845 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
16846
16847         * gthr-dce.h: Uglify function parameter and local variable names.
16848         * gthr-gnat.h: Likewise.
16849         * gthr-mipssde.h: Likewise.
16850         * gthr-nks.h: Likewise.
16851         * gthr-posix95.h: Likewise.
16852         * gthr-posix.h: Likewise.
16853         * gthr-rtems.h: Likewise.
16854         * gthr-single.h: Likewise.
16855         * gthr-solaris.h: Likewise.
16856         * gthr-tpf.h: Likewise.
16857         * gthr-vxworks.h: Likewise.
16858         * gthr-win32.h: Likewise.
16859
16860 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16861
16862         PR target/39196
16863         * config/i386/i386.md: Restrict the new peephole2 to move
16864         between MMX/SSE registers.
16865
16866 2009-02-15  Richard Guenther  <rguenther@suse.de>
16867
16868         Revert
16869         2009-02-13  Richard Guenther  <rguenther@suse.de>
16870
16871         * configure.ac: Enable LFS.
16872         * configure: Re-generate.
16873         * config.in: Likewise.
16874
16875 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16876
16877         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
16878         spu_srqwbyte, spu_srqwbytebc): Define.
16879         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
16880         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
16881         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
16882         "shrqby_<mode>"): New insn-and-split patterns.
16883         * config/spu/spu.c (expand_builtin_args): Determine and return
16884         number of operands using spu_builtin_description data.
16885         (spu_expand_builtin_1): Use it.
16886
16887 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
16888
16889         PR target/38056
16890         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
16891         TARGET_CONST_GP.
16892
16893 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16894
16895         PR target/39149
16896         * config/i386/i386.c (override_options): Correct warning
16897         messages for -malign-loops, -malign-jumps and -malign-functions.
16898
16899 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16900
16901         PR target/39152
16902         * config/i386/i386.md: Restrict the new peephole2 to move
16903         between the general purpose registers.
16904
16905 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16906
16907         PR target/39162
16908         * config/i386/i386.c (type_natural_mode): Add a new argument.
16909         Return the original mode and warn ABI change if vector size is 32byte.
16910         (function_arg_advance): Updated.
16911         (function_arg): Likewise.
16912         (ix86_function_value): Likewise.
16913         (ix86_return_in_memory): Likewise.
16914         (ix86_sol10_return_in_memory): Likewise.
16915         (ix86_gimplify_va_arg): Likewise.
16916         (function_arg_32): Don't warn ABX ABI change here.
16917         (function_arg_64): Likewise.
16918
16919 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
16920
16921         * loop-iv.c (implies_p): In the final case, test that operands 0
16922         of the two comparisons match.
16923
16924         * config/bfin/bfin.c (find_prev_insn_start): New function.
16925         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
16926         (find_next_insn_start): Move.
16927
16928 2009-02-13  Richard Guenther  <rguenther@suse.de>
16929
16930         * configure.ac: Enable LFS.
16931         * configure: Re-generate.
16932         * config.in: Likewise.
16933
16934 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
16935
16936         PR c/35444
16937         * c-parser.c (c_parser_parms_list_declarator): Discard pending
16938         sizes on syntax error after some arguments have been parsed.
16939
16940 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
16941
16942         * doc/invoke.texi (-fira): Remove.
16943
16944 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16945
16946         * caller-save.c: Replace regclass.c with reginfo.c in comments.
16947         * recog.c: Likewise.
16948         * rtl.h: Likewise.
16949
16950 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
16951
16952         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
16953         (umul_ppmm): Likewise.
16954         (count_leading_zeros): Likewise.
16955         (count_trailing_zeros): Likewise.
16956         (UMUL_TIME): Likewise.
16957
16958 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16959
16960         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
16961         soft-fp/t-softfp to tmake_file.
16962
16963         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
16964         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
16965         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
16966         IA64_BUILTIN_INFQ]: New.
16967         (ia64_init_builtins): Initialize __builtin_infq,
16968         __builtin_fabsq and __builtin_copysignq if not HPUX.
16969         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
16970         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
16971
16972         * config/ia64/lib1funcs.asm (__divtf3): Define only if
16973         SHARED is defined.
16974         (__fixtfti): Likewise.
16975         (__fixunstfti): Likewise.
16976         (__floattitf): Likewise.
16977
16978         * config/ia64/libgcc-glibc.ver: New.
16979         * config/ia64/t-fprules-softfp: Likewise.
16980         * config/ia64/sfp-machine.h: Likewise.
16981
16982         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
16983         (LIBGCC2_TF_CEXT): Likewise.
16984         (TF_SIZE): Likewise.
16985         (TARGET_INIT_LIBFUNCS): Likewise.
16986
16987         * config/ia64/t-glibc (SHLINB_MAPFILES):
16988         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
16989
16990 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16991
16992         * config/i386/i386.c (construct_container): Rewrite processing
16993         BLKmode with X86_64_SSE_CLASS.
16994
16995 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
16996
16997         PR target/39152
16998         * config/i386/i386.md: Replace simplify_replace_rtx with
16999         replace_rtx in the new peephole2.
17000
17001 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
17002
17003         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
17004         loop unrolling do not happen at -O2.
17005
17006 2009-02-12  Michael Matz  <matz@suse.de>
17007
17008         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
17009
17010 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
17011
17012         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
17013         for -g3.
17014
17015 2009-02-12  Ben Elliston  <bje@au.ibm.com>
17016
17017         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
17018         patterns when updating the back chain.  Missed in the 2009-02-10
17019         change.
17020
17021 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
17022
17023         * doc/extend.texi (Decimal Floating Types): Update identifier of
17024         draft TR and list of missing support.
17025
17026 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
17027
17028         PR middle-end/39154
17029         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
17030         bit to variable length decl's flags, add it also to its
17031         pointer replacement variable.
17032
17033 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
17034             Jakub Jelinek  <jakub@redhat.com>
17035
17036         PR target/39118
17037         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
17038         (memory_blockage): New expander.
17039         (*memory_blockage): New insn pattern.
17040         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
17041         instead of general blockage at the end of function prologue when
17042         frame pointer is used to access red zone area.  Do not emit blockage
17043         when profiling, it is emitted in generic code.
17044         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
17045         function epilogue when frame pointer is used to access red zone area.
17046
17047 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
17048
17049         PR target/38824
17050         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
17051         by arithmetic with memory operands.
17052         * config/i386/predicates.md (commutative_operator): New.
17053
17054 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
17055
17056         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
17057         bulleted lists.
17058
17059 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
17060
17061         * alias.h (record_alias_subset): Declare.
17062         * alias.c (record_alias_subset): Make global.
17063
17064 2009-02-10  Nick Clifton  <nickc@redhat.com>
17065
17066         * tree-parloops.c: Change license to GPLv3.
17067         * ipa-struct-reorg.c: Change license to GPLv3.
17068         * ipa-struct-reorg.h: Change license to GPLv3.
17069
17070 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
17071
17072         PR c/39084
17073         * c-decl.c (start_struct): Return NULL on error.
17074
17075 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
17076
17077         PR middle-end/39124
17078         * cfgloopmanip.c (remove_path): Call remove_bbs after
17079         cancel_loop_tree, not before it.
17080
17081         PR target/39139
17082         * function.h (struct function): Add has_local_explicit_reg_vars bit.
17083         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
17084         VAR_DECLs were seen.
17085         * tree-ssa-live.c (remove_unused_locals): Recompute
17086         cfun->has_local_explicit_reg_vars.
17087         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
17088         copies or clearings if cfun->has_local_explicit_reg_vars.
17089
17090 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
17091
17092         PR target/39118
17093         * config/i386/i386.c (expand_prologue): Emit blockage at the end
17094         of function prologue when frame pointer is used to access
17095         red zone area.
17096
17097 2009-02-10  Richard Guenther  <rguenther@suse.de>
17098
17099         PR middle-end/39127
17100         * gimplify.c (gimple_regimplify_operands): Always look if
17101         we need to create a temporary.
17102
17103 2009-02-10  Richard Guenther  <rguenther@suse.de>
17104
17105         PR tree-optimization/39132
17106         * tree-loop-distribution.c (todo): New global var.
17107         (generate_memset_zero): Trigger TODO_rebuild_alias.
17108         (tree_loop_distribution): Return todo.
17109
17110 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
17111
17112         PR target/39119
17113         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
17114         (x86_64_reg_class_name): Removed.
17115         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
17116         first one isn't X86_64_SSE_CLASS or any other ones aren't
17117         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
17118         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
17119         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
17120         and 3 X86_64_SSEUP_CLASS.
17121         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
17122         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
17123
17124 2009-02-10  Ben Elliston  <bje@au.ibm.com>
17125
17126         * config/rs6000/rs6000.md (allocate_stack): Always use an update
17127         form instruction to update the stack back chain word, even if the
17128         user has disabled the generation of update instructions.
17129         (movdi_<mode>_update_stack): New.
17130         (movsi_update_stack): Likewise.
17131         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
17132         always use an update form instruction to update the stack back
17133         chain word.
17134
17135 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
17136
17137         PR middle-end/38953
17138         * graphite.c (if_region_set_false_region): After moving a region in
17139         the false branch of a condition, remove the empty dummy basic block.
17140         (gloog): Remove wrong fix for PR38953.
17141
17142 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17143
17144         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
17145         generation due to implicit sign extension.
17146
17147 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
17148
17149         PR middle-end/38981
17150         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
17151         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
17152
17153 2009-02-09  Richard Guenther  <rguenther@suse.de>
17154
17155         PR middle-end/35202
17156         * convert.c (convert_to_real): Disable (float)fn((double)x)
17157         to fnf(x) conversion if errno differences may occur and
17158         -fmath-errno is set.
17159
17160 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
17161
17162         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
17163         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
17164         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
17165
17166 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
17167
17168         PR c/35434
17169         * c-common.c (handle_alias_attribute): Disallow attribute for
17170         anything not a FUNCTION_DECL or VAR_DECL.
17171
17172 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
17173
17174         PR c/39035
17175         * real.c (do_compare): Special-case compare of zero against
17176         decimal float value.
17177
17178 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
17179
17180         PR c/36432
17181         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
17182         as indicating flexible array members unless the field itself is
17183         being declarared as the incomplete array.
17184
17185 2009-02-06  Jan Hubicka  <jh@suse.cz>
17186
17187         PR tree-optimization/38844
17188         * ipa-inline.c (try_inline): Stop inlining recursion when edge
17189         is already inlined.
17190
17191 2009-02-06  Richard Guenther  <rguenther@suse.de>
17192
17193         PR middle-end/38977
17194         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
17195         fork because we may expand it as __gcov_fork.
17196
17197 2009-02-06  Nick Clifton  <nickc@redhat.com>
17198
17199         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
17200
17201 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
17202
17203         PR tree-optimization/35659
17204         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
17205         vn_phi_eq): Shortcut if hashcode does not match.
17206         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
17207         NULL operands.
17208         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
17209         and avoid iterative_hash_expr.
17210         (FOR_EACH_VALUE_ID_IN_SET): New.
17211         (value_id_compare): Remove.
17212         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
17213         sort expressions by value id.
17214
17215 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
17216
17217         PR target/38991
17218         * config/sh/predicates.md (general_movsrc_operand): Don't check
17219         the subreg of system registers here.
17220
17221 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
17222
17223         PR c++/39106
17224         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
17225         on the copied decl.
17226
17227 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
17228
17229         PR rtl-optimization/39110
17230         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
17231         addresses, not aligned ones.
17232
17233 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
17234             Richard Guenther  <rguenther@suse.de>
17235
17236         PR tree-optimization/39100
17237         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
17238         comment says and add edges.
17239
17240 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
17241
17242         PR c/35435
17243         * c-common.c (handle_tls_model_attribute): Ignore attribute for
17244         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
17245
17246 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
17247
17248         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
17249         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
17250         register_bb_in_sese, new_sese, free_sese): Moved.
17251         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
17252         outermost_loop_in_scop, build_scop_iteration_domain,
17253         expand_scalar_variables_ssa_name, get_vdef_before_scop,
17254         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
17255         Use loop_in_sese_p instead of loop_in_scop_p.
17256         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
17257         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
17258         (scopdet_basic_block_info): Fix bug in scop detection.
17259         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
17260         eq_loop_to_cloog_loop): Remove.
17261         (nb_loops_around_loop_in_scop, nb_loop
17262         ref_nb_loops): Moved here...
17263         * graphite.h (ref_nb_loops): ... from here.
17264         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
17265         (loop_domain_dim, loop_iteration_vector_dim): Remove.
17266         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
17267         * testsuite/gcc.dg/graphite/scop-19.c: New
17268
17269 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
17270             Hans-Peter Nilsson  <hp@axis.com>
17271
17272         PR rtl-optimization/37889
17273         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
17274         Move offset handling from PLUS to before the switch.  Use new
17275         arguments when considering SYMBOL_REFs too.
17276         (rtx_addr_can_trap_p): Pass dummy offset and size.
17277         (enum may_trap_p_flags): Remove.
17278         (may_trap_p_1): Pass size from MEM_SIZE.
17279
17280         PR rtl-optimization/38921
17281         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
17282         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
17283         * rtlanal.c (may_trap_after_code_motion_p): Delete.
17284         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
17285
17286 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
17287
17288         AVX Programming Reference (January, 2009)
17289         * config/i386/sse.md (*vpclmulqdq): New.
17290
17291 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
17292
17293         PR tree-optimization/38977
17294         PR gcov-profile/38292
17295         * calls.c (special_function_p): Disregard __builtin_ prefix.
17296
17297 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17298
17299         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
17300         non-indexable addresses even before reload.
17301
17302 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17303
17304         PR c/29129
17305         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
17306         as having variable size.  Do not give an error for unnamed
17307         parameters with [*] declarators.  Give a warning for type names
17308         with [*] declarators and mark them as variable size.
17309         * c-parser.c (c_parser_sizeof_expression): Do not give an error
17310         for sizeof applied to [*] type names.
17311
17312 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17313
17314         PR C++/36607
17315         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
17316
17317 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17318
17319         * gcc.c (process_command): Update copyright notice dates.
17320         * gcov.c (print_version): Likewise.
17321         * gcov-dump.c (print_version): Likewise.
17322         * mips-tfile.c (main): Likewise.
17323         * mips-tdump.c (main): Likewise.
17324
17325 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17326
17327         PR c/35433
17328         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
17329         for composite type involving a zero-length array type.
17330
17331 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17332
17333         PR target/35318
17334         * function.c (match_asm_constraints_1): Skip over
17335         initial optional % in the constraint.
17336
17337         PR inline-asm/39059
17338         * c-parser.c (c_parser_postfix_expression): If fixed point is not
17339         supported, don't accept FIXED_CSTs.
17340         * c-decl.c (finish_declspecs): Error if fixed point is not supported
17341         and _Sat is used without _Fract/_Accum.  Set specs->type to
17342         integer_type_node for cts_fract/cts_accum if fixed point is not
17343         supported.
17344
17345 2009-02-02  Catherine Moore  <clm@codesourcery.com>
17346
17347         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
17348
17349 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
17350
17351         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
17352         (ABI_HAS_64BIT_SYMBOLS): Use it.
17353         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
17354
17355 2009-02-02  Paul Brook  <paul@codesourcery.com>
17356
17357         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
17358
17359 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
17360
17361         PR inline-asm/39058
17362         * recog.h (asm_operand_ok): Add constraints argument.
17363         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
17364         recurse on matching constraint.
17365         (check_asm_operands): Pass constraints as 3rd argument to
17366         asm_operand_ok.  Don't look up matching constraint here.
17367         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
17368         to asm_operand_ok.
17369
17370 2009-02-02  Ben Elliston  <bje@au.ibm.com>
17371
17372         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
17373         TARGET_NARROW_VOLATILE_BITFIELD macro names.
17374
17375 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17376
17377         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
17378         information.  Remove some obsolete information.  Reorganize.
17379
17380         * config/pa/fptr.c: Revert license to GPL 2.
17381         * config/pa/milli64.S: Likewise.
17382
17383 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17384
17385         PR target/38904
17386         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
17387         LIBRARY name in, instead of hard-coding it.
17388         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
17389         extra target make frag to tmake_files according to EH model.
17390         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
17391         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
17392         frags that define makefile variable EH_MODEL appropriately.
17393         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
17394         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
17395         to "-sjlj" according to type of EH configured.
17396         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17397         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
17398         to "_sjlj" according to type of EH configured.
17399         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17400         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
17401         (SHLIB_LINK):  Add missing semicolon to if-else construct.
17402         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17403         string value of "pe_dll" command-line option.
17404         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
17405         (SHLIB_SONAME):  Use it when overriding t-cygming default.
17406         (SHLIB_IMPLIB):  Override t-cygming default.
17407         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17408         string value of "pe_dll" command-line option.
17409
17410 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17411
17412         PR target/38952
17413         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
17414         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
17415
17416 2009-01-31  Richard Guenther  <rguenther@suse.de>
17417
17418         PR tree-optimization/38937
17419         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
17420         computing the transitive closure.
17421
17422 2009-01-30  Richard Guenther  <rguenther@suse.de>
17423
17424         PR tree-optimization/39041
17425         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
17426         Propagate variable indices only if the types match for this stmt.
17427
17428 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
17429
17430         PR target/39013
17431         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
17432         inline but never defined.
17433
17434 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
17435
17436         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
17437         (*insv_h_di_reg_extimm): New insn.
17438         (*insv_l<mode>_reg_extimm): New insn.
17439
17440 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17441
17442         * config/picochip/picochip.c (flag_conserve_stack): set
17443         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
17444         fconserve-stack. Reduce call-overhead used by inliner.
17445
17446 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17447
17448         PR/38157
17449         * common.opt (flag_conserve_stack): Initialised to zero.
17450
17451 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
17452
17453         PR/39002
17454         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
17455         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
17456         method.
17457
17458 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
17459
17460         * ira-color.c (allocno_reload_assign): Update comments.
17461         * regmove.c (regmove_optimize): Likewise.
17462
17463         * ra.h: Removed.
17464
17465 2009-01-29  Robert Millan  <rmh@aybabtu.com>
17466
17467         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
17468         * config/i386/kopensolaris-gnu.h: New file.  Undefine
17469         `MD_UNWIND_SUPPORT'.
17470         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
17471
17472 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
17473
17474         PR tree-optimization/39007
17475         * tree-loop-distribution.c (generate_builtin): Use
17476         recompute_dominator to compute the immediate dominator of the
17477         basic block just after the loop.
17478
17479 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17480
17481         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
17482         (ASM_OUTPUT_DWARF_PCREL): Define.
17483
17484 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
17485
17486         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
17487         * doc/passes.texi: Remove entries about regclass, local-alloc, and
17488         global.  Modify entries about regmove and IRA.
17489
17490         * ra-conflict.c: Remove the file.
17491
17492         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
17493
17494         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
17495         (pass_regclass_init): Rename to pass_reginfo_init.
17496
17497         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
17498
17499         * toplev.h (flag_ira): Remove.
17500
17501         * caller-save.c (setup_save_areas): Remove flag_ira.
17502
17503         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
17504
17505         * global.c: Remove the file.
17506
17507         * opts.c (decode_options): Remove flag_ira.
17508
17509         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
17510
17511         * regmove.c: Modify file description.
17512         (find_use_as_address, try_auto_increment): Define them only if
17513         AUTO_INC_DEC is defined.
17514         (replacement_quality, replace_in_call_usage, fixup_match_1,
17515         stable_and_no_regs_but_for_p): Remove.
17516         (reg_set_in_bb): Make it static.
17517         (regmove_optimize): Remove flag_ira and code which worked for
17518         !flag_ira.
17519
17520         * local-alloc.c: Remove the file.
17521
17522         * common.opt (fira): Remove.
17523
17524         * ira.c: Include except.h.
17525         (eliminable_regset): Move from global.c.
17526         (mark_elimination): Ditto.  Remove flag_ira.
17527         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
17528         equiv_mem_modified, validate_equiv_mem_from_store,
17529         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
17530         contains_replace_regs, memref_referenced_p, memref_used_between_p,
17531         no_equiv, recorded_label_ref): Move from local-alloc.c.
17532         (update_equiv_regs): Ditto.  Make it static.
17533         (print_insn_chain, print_insn_chains): Move it from global.c.
17534         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
17535         (build_insn_chain): Ditto.  Make it static.
17536         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
17537         Rename to init_live_subregs.
17538         (gate_ira): Remove flag_ira.
17539
17540         * regclass.c: Rename reginfo.c.  Change file description.
17541         (FORBIDDEN_INC_DEC_CLASSES): Remove.
17542         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
17543         (init_reg_sets_1): Remove code for evaluation of
17544         reg_class_superclasses and losing_caller_save_reg_set.
17545         (init_regs): Remove init_reg_autoinc.
17546         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
17547         ok_for_base_p_nonstrict): Remove.
17548         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
17549         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
17550         corresponding entries.
17551         (dump_regclass, record_operand_costs, scan_one_insn,
17552         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
17553         record_address_regs, auto_inc_dec_reg_p): Remove.
17554         (gt-regclass.h): Rename to gt-reginfo.h.
17555
17556         * rtl.h (dump_global_regs, retry_global_alloc,
17557         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
17558
17559         * Makefile.in (RA_H): Remove.
17560         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
17561         Rename regclass.o to reginfo.o.
17562         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
17563         gt-reginfo.h.
17564         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
17565         (GTFILES): Rename regclass.c to reginfo.c.
17566
17567         * passes.c (init_optimization_passes): Remove pass_local_alloc and
17568         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
17569
17570         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17571         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
17572         Remove flag_ira.
17573         (finish_spills): Ditto.  Remove code for !flag_ira.
17574
17575 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
17576
17577         PR middle-end/35854
17578         * doc/invoke.texi (rtl debug options): Complete rewrite.
17579         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
17580         to auto_inc_dec".
17581         * mode-switching.c (pass_mode_switching): Rename pass from
17582         "mode-sw" to "mode_sw".
17583         * except.c (pass_convert_to_eh_ranges): Rename pass from
17584         "eh-ranges" to "eh_ranges".
17585         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
17586         to "subreg1".
17587
17588
17589 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
17590             Alexander Monakov  <amonakov@ispras.ru>
17591
17592         PR middle-end/38857
17593         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
17594         register.
17595         (move_exprs_to_boundary): Change return type and pass through
17596         should_move from move_op.  Relax assert.  Update usage ...
17597         (schedule_expr_on_boundary): ... here.  Use should_move instead of
17598         cant_move.
17599         (move_op_orig_expr_found): Indicate that insn was disconnected from
17600         stream.
17601         (code_motion_process_successors): Do not call after_merge_succs
17602         callback if original expression was not found when traversing any of
17603         the branches.
17604         (code_motion_path_driver): Change return type.  Update prototype.
17605         (move_op): Update comment.  Add a new parameter (should_move).  Update
17606         prototype.  Set *should_move based on indication provided by
17607         move_op_orig_expr_found.
17608
17609 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
17610
17611         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
17612         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
17613         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
17614         * config/rs6000/rs6000.c (rs6000_override_options): Default
17615         avoid-indexed-addresses on for Power6, off for everything else.
17616         (avoiding_indexed_address_p): New function.
17617         (rs6000_legitimize_address): Use it.
17618         (rs6000_legitimate_address): Likewise.
17619         * config/rs6000/rs6000.md (movXX_updateX): Likewise
17620
17621 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
17622
17623         PR tree-optimization/38997
17624         * tree-loop-distribution.c (generate_memset_zero): Use
17625         POINTER_PLUS_EXPR for a pointer addition.
17626
17627 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
17628
17629         * config/s390/s390.md (bswap<mode>2): New pattern added.
17630
17631 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17632
17633         * config/s390/s390.md (*tls_load_31): Added type attribute.
17634
17635 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17636
17637         * config/s390/s390.md: Fix a few comments.
17638
17639 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17640
17641         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
17642         (*tm<mode>_full): Fixed z10prop attribute.
17643         (*tst<mode>_extimm): Fixed z10prop attribute.
17644         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
17645         (*tstqiCCT_cconly): Fixed z10prop attribute.
17646         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
17647         (*movsi_larl): Fixed z10prop attribute.
17648         (*movsi_zarch): Fixed z10prop attribute.
17649         (*movsi_eas): Fixed z10prop attribute.
17650         (*movhi): Fixed z10prop attribute.
17651         (*movqi): Fixed z10prop attribute.
17652         (*movstrictqi): Fixed z10prop attribute.
17653         (*mov<mode>): Fixed z10prop attribute.
17654         (*movcc): Fixed z10prop attribute.
17655         (*sethighpartdi_64): Fixed z10prop attribute.
17656         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
17657         (*negdi2_sign_cc): Fixed z10prop attribute.
17658         (*negdi2_sign): Fixed z10prop attribute.
17659         (*absdi2_sign_cc): Fixed z10prop attribute.
17660         (*absdi2_sign): Fixed z10prop attribute.
17661         (*negabsdi2_sign_cc): Fixed z10prop attribute.
17662         (*negabsdi2_sign): Fixed z10prop attribute.
17663         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
17664         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
17665         (doloop_si64): Fixed z10prop attribute.
17666         (doloop_si31): Fixed z10prop attribute.
17667         (doloop_long): Fixed z10prop attribute.
17668         (indirect_jump): Fixed z10prop attribute.
17669         (nop): Fixed z10prop attribute.
17670         (main_base_64): Fixed z10prop attribute.
17671         (reload_base_64): Fixed z10prop attribute.
17672
17673 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17674
17675         PR rtl-optimization/38740
17676         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
17677         if !optimize.
17678         * config/mips/mips.c (mips_reorg): Likewise.
17679
17680 2009-01-28  Richard Guenther  <rguenther@suse.de>
17681
17682         PR tree-optimization/38926
17683         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
17684         with the correct value id to a value.
17685         (do_regular_insertion): Use the value number of edoubleprime
17686         for the value number of the expr.
17687
17688         Revert
17689         2008-08-21  Richard Guenther  <rguenther@suse.de>
17690
17691         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
17692         a PHI ask VN if it is already available.
17693         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
17694         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
17695
17696 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17697
17698         PR middle-end/38934
17699         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
17700         set to varying whenever max has TREE_OVERFLOW set, similarly
17701         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
17702
17703 2009-01-28  Richard Guenther  <rguenther@suse.de>
17704
17705         PR middle-end/38908
17706         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
17707         uninitialized aggregate uses in call arguments.
17708
17709 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
17710
17711         PR tree-optimization/38984
17712         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
17713         the nothing_id variable if -fno-delete-null-pointer-checks.
17714
17715 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
17716
17717         PR target/38988
17718         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
17719         (set_got_offset_rex64): Ditto.
17720
17721 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
17722
17723         PR target/38941
17724         * doc/extend.texi: Improve local variable with asm reg.
17725
17726 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
17727
17728         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
17729         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
17730         was not supplied then set warn_packed_bitfield_compat to the
17731         default value of 1.
17732         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
17733         against 1.
17734
17735 2009-01-27  Richard Guenther  <rguenther@suse.de>
17736
17737         PR tree-optimization/38503
17738         * cfgexpand.c (expand_gimple_basic_block): Ignore
17739         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
17740         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
17741         variables that cannot have TBAA applied.
17742         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
17743         statements.
17744
17745 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
17746
17747         PR middle-end/38969
17748         * calls.c (initialize_argument_information): Do not wrap complex
17749         arguments in SAVE_EXPR.
17750
17751 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
17752
17753         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
17754         (INSTALL_LIBGCC): Revert typo commit.
17755
17756 2009-01-26  Richard Guenther  <rguenther@suse.de>
17757
17758         PR tree-optimization/38745
17759         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
17760         from special handling.
17761
17762 2009-01-26  Richard Guenther  <rguenther@suse.de>
17763
17764         PR tree-optimization/38745
17765         * tree-ssa.c (execute_update_addresses_taken): Do not include
17766         variables that cannot possibly be a register in not_reg_needs.
17767         Do not clear TREE_ADDRESSABLE on vars that may not become
17768         registers.
17769         * tree-ssa.c (update_alias_info_1): Include those in the set
17770         of addressable vars.
17771
17772 2009-01-26  Richard Guenther  <rguenther@suse.de>
17773
17774         PR middle-end/38851
17775         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
17776         * tree-ssa-dse.c: Include langhooks.h
17777         (execute_simple_dse): Remove stores with zero size.
17778
17779 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
17780
17781         PR c/38957
17782         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
17783         as PLUS_EXPR.
17784
17785 2009-01-24  Julian Brown  <julian@codesourcery.com>
17786
17787         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
17788         config/arm/linux-atomic.c.
17789         * config/arm/linux-atomic.c: New.
17790
17791 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
17792
17793         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
17794         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
17795         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
17796
17797 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17798
17799         PR c/38938
17800         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
17801         properly.
17802
17803 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
17804
17805         PR tree-optimization/38953
17806         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
17807         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
17808         (gloog): Split the exit of the scop when the scop exit is a loop exit.
17809         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
17810         changed the CFG.
17811
17812 2009-01-24  Paul Brook  <paul@codesourcery.com>
17813
17814         * config/arm/neon.md (neon_type): Move to arm.md.
17815         (neon_mov<VSTRUCT>): Add neon_type attribute.
17816         * config/arm/arm.md (neon_type): Move to here.
17817         (conds): Add "unconditioal" and use as default for NEON insns.
17818
17819 2009-01-24  Ben Elliston  <bje@au.ibm.com>
17820
17821         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
17822         void *' warning from -Wc++-compat.
17823         * Makefile.in (dominance.o-warn): Remove.
17824
17825 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
17826
17827         PR tree-optimization/38932
17828         * fold-const.c (fold_unary_ignore_overflow): New.
17829         * tree.h (fold_unary_ignore_overflow): Declare.
17830         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
17831         * tree-ssa-sccvn.c (visit_reference_op_load,
17832         simplify_unary_expression): Likewise.
17833
17834 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
17835
17836         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
17837         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
17838         regardless of their type.
17839         * c-common.c (handle_packed_attribute): Don't ignore packed on
17840         bitfields.
17841         * c.opt (Wpacked-bitfield-compat): New warning option.
17842         * stor-layout.c (place_field): Warn if offset of a field changed.
17843         * doc/extend.texi (packed): Mention the ABI change.
17844         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
17845         (Warning Options): Add it to the list.
17846
17847 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
17848
17849         * c-opts.c (c_common_post_options): Fix a typo in comments.
17850
17851 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
17852
17853         PR middle-end/38615
17854         * gimplify.c (gimplify_init_constructor): Fix promotion of const
17855         variables to static.
17856         * doc/invoke.texi (-fmerge-all-constants): Update description.
17857
17858 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
17859
17860         PR target/38931
17861         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
17862         (*movdi_1_rex64): Use type "mmx" for alternative 5.
17863
17864 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
17865
17866         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
17867         a word boundary.
17868         (LOCAL_ALIGNMENT): Similarly.
17869
17870 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17871             Joseph Myers  <joseph@codesourcery.com>
17872
17873         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
17874         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
17875         * config/arm/arm-tune.md: Regenerate.
17876         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
17877         -march=iwmmxt2.
17878
17879 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17880
17881         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
17882         version number to five.
17883
17884 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
17885
17886         PR c++/38930
17887         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
17888         * c-common.c (set_underlying_type): Likewise.
17889         (is_typedef_decl ): Likewise
17890         * tree.h: Likewise
17891         (set_underlying_type): Likewise.
17892         (is_typedef_type): Likewise.
17893
17894 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
17895
17896         PR middle-end/38587
17897         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
17898         crossing setjmps.
17899
17900 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
17901
17902         PR bootstrap/37660
17903         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
17904         (LIBGCC_SPEC):  Don't define.
17905         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
17906
17907 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
17908
17909         PR rtl-optimization/38879
17910         * alias.c (base_alias_check): Unaligned access via AND address can
17911         alias all surrounding object types except those with sizes equal
17912         or wider than the size of unaligned access.
17913
17914 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
17915
17916         PR c++/26693
17917         * c-decl.c (clone_underlying_type): Move this ...
17918         * c-common.c (set_underlying_type): ... here.
17919         Also, make sure the function properly sets TYPE_STUB_DECL() on
17920         the newly created typedef variant type.
17921         (is_typedef_decl ): New entry point.
17922         * tree.h: Added a new member member_types_needing_access_check to
17923         struct tree_decl_non_common.
17924         (set_underlying_type): New entry point.
17925         (is_typedef_type): Likewise.
17926
17927 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
17928
17929         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
17930         Check whether two instructions have memory references that
17931         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
17932         are helper functions for traversing.
17933         * alias.h (insn_alias_sets_confilict_p): New prototypes.
17934         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
17935         not to draw dependency edge for instructions with non-conflicting
17936         alias sets.
17937
17938 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
17939
17940         PR other/38758
17941         * longlong.h: Update copyright years.  Use soft-fp license notice.
17942         Sync __clz_tab declaration with glibc.
17943
17944 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
17945
17946         PR target/30687
17947         * doc/extend.texi (syscall_linkage): New.
17948         (version_id): Modify.
17949
17950 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17951             Richard Guenther  <rguenther@suse.de>
17952
17953         PR tree-optimization/38747
17954         PR tree-optimization/38748
17955         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
17956         conversion if the base address is an indirect reference and the
17957         aliasing sets could cause issues.
17958
17959 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
17960
17961         * common.opt (fgraphite, fgraphite-identity): Add comment for
17962         explaining why these options are not documented.
17963
17964 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
17965
17966         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
17967         gimple_call_lhs is NULL.
17968
17969 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
17970
17971         PR target/38868
17972         * emit-rtl.c (adjust_address_1): Make sure memref is never
17973         overwritten.
17974
17975 2009-01-20  Ben Elliston  <bje@au.ibm.com>
17976
17977         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17978         const qualifier from arg parameter. Remove unnecessary cast to char *.
17979         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17980         const qualifier from arg 2.
17981
17982 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
17983
17984         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
17985
17986 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
17987
17988         PR c/38869
17989         * rtl.h (reinit_regs): New prototype.
17990         * regclass.c: Include ira.h.
17991         (reinit_regs): New.
17992         * Makefile.in (regclass.o): Add ira.h.
17993         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
17994
17995 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
17996
17997         PR target/38736
17998         * c-common.c (handle_aligned_attribute): Use
17999         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
18000         default alignment value.
18001
18002         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
18003
18004         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
18005         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
18006
18007         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
18008         __BIGGEST_ALIGNMENT__.
18009
18010         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
18011
18012 2009-01-18  Richard Guenther  <rguenther@suse.de>
18013
18014         PR tree-optimization/38819
18015         * tree-flow.h (operation_could_trap_helper_p): Declare.
18016         * tree-eh.c (operation_could_trap_helper_p): Export.
18017         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
18018         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
18019         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
18020         are about to insert a possibly trapping instruction and fail
18021         in this case.
18022
18023 2009-01-18  Andreas Schwab  <schwab@suse.de>
18024
18025         * doc/install.texi (Configuration): Remove obsolete paragraph
18026         about use of --with-gnu-ld with --with-gnu-as.
18027
18028 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
18029
18030         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
18031         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
18032         Follow spelling conventions.
18033
18034 2009-01-18  Ben Elliston  <bje@au.ibm.com>
18035
18036         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
18037         C++ warning about implicit conversion from void * to struct
18038         bitmap_head_def *.
18039         (bitmap_obstack_free): Likewise for bitmap_element *.
18040         * Makefile.in (bitmap.o-warn): Remove.
18041
18042 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
18043
18044         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
18045
18046 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
18047             Tobias Grosser  <tobi.grosser@amd.com>
18048
18049         * graphite.c (graphite_trans_scop_block): Do not block single
18050         nested loops.
18051
18052 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
18053
18054         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
18055         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
18056         test with assertion.
18057
18058 2009-01-16  Richard Guenther  <rguenther@suse.de>
18059
18060         PR tree-optimization/38835
18061         PR middle-end/36227
18062         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
18063         and INT + PTR -> (INT)(PTR p+ INT) folding.
18064         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
18065
18066 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
18067
18068         PR target/38554
18069         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
18070         the subreg from a lowpart subreg if it is also casting the value.
18071
18072 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18073             Tobias Grosser  <tobi.grosser@amd.com>
18074
18075         * graphite.c (compare_prefix_loops): New.
18076         (build_scop_canonical_schedules): Rewritten.
18077         (graphite_transform_loops): Move build_scop_canonical_schedules
18078         after build_scop_iteration_domain.
18079
18080 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18081             Tobias Grosser  <tobi.grosser@amd.com>
18082
18083         * graphite.c (add_conditions_to_domain): Add the loops to
18084         the dimension of the iteration domain.  Do copy the domain
18085         only when it exists.
18086         (build_scop_conditions_1): Do not call add_conditions_to_domain.
18087         (add_conditions_to_constraints): New.
18088         (can_generate_code_stmt, can_generate_code): Removed.
18089         (gloog): Do not call can_generate_code.
18090         (graphite_transform_loops): Call add_conditions_to_constraints
18091         after building the iteration domain.
18092
18093 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
18094
18095         PR tree-optimization/38789
18096         * tree-ssa-threadedge.c
18097         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18098         __builtin_constant_p.
18099
18100 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
18101
18102         * dce.c (delete_unmarked_insns): Reversed the order that insns are
18103         examined before deleting them.
18104
18105 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
18106
18107         * function.c (aggregate_value_p): Correctly extract the function
18108         type from CALL_EXPR_FN lookup.
18109
18110 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
18111
18112         * config/picochip/picochip.c (picochip_override_options): Revert
18113         CFI asm flag disable commited previously.
18114
18115 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
18116             Tobias Grosser  <tobi.grosser@amd.com>
18117             Jan Sjodin  <jan.sjodin@amd.com>
18118
18119         * graphite.c (scan_tree_for_params): On substractions negate
18120         all the coefficients of the term.
18121         (clast_to_gcc_expression_red): New.  Handle reduction expressions
18122         of more than two operands.
18123         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
18124         (get_vdef_before_scop): Handle also the case of default definitions.
18125
18126 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
18127
18128         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
18129         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
18130         Also use them when walking CALL_INSN_FUNCTION_USAGE.
18131
18132 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
18133             Joey Ye  <joey.ye@intel.com>
18134
18135         PR middle-end/37843
18136         * cfgexpand.c (expand_stack_alignment): Don't update stack
18137         boundary nor check incoming stack boundary here.
18138         (gimple_expand_cfg): Update stack boundary and check incoming
18139         stack boundary here.
18140
18141 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
18142
18143         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
18144
18145 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
18146
18147         PR rtl-optimization/38245
18148         * calls.c (expand_call): Add stack arguments to
18149         CALL_INSN_FUNCTION_USAGE even for pure calls (when
18150         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
18151         in regs and partially in memory or BLKmode arguments.
18152         (emit_library_call_value_1): Add stack arguments to
18153         CALL_INSN_FUNCTION_USAGE even for pure calls (when
18154         ACCUMULATE_OUTGOING_ARGS).
18155         * dce.c: Include tm_p.h.
18156         (find_call_stack_args): New function.
18157         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
18158         argument.
18159         (mark_insn): Call find_call_stack_args for CALL_Ps.
18160         (prescan_insns_for_dce): Walk insns backwards in bb rather than
18161         forwards.  Allocate and free arg_stores bitmap if needed, pass it
18162         down to deletable_insn_p, don't mark stores set in arg_stores
18163         bitmap, clear the bitmap at the beginning of each bb.
18164         * Makefile.in (dce.o): Depend on $(TM_P_H).
18165
18166 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
18167
18168         PR target/22599
18169         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
18170         to make sure the insn is a conditional test (bug 22599).  Reformat a
18171         few long lines.
18172
18173 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
18174
18175         PR middle-end/38431
18176         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
18177         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
18178         (gloog): Do not call cleanup_tree_cfg.
18179         (graphite_transform_loops): Call cleanup_tree_cfg after all
18180         scops have been code generated.
18181
18182 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
18183         * doc/gty.texi (Invoking the garbage collector): Added new node
18184         and section documenting ggc_collect.
18185
18186 2009-01-14  Richard Guenther  <rguenther@suse.de>
18187
18188         PR tree-optimization/38826
18189         PR middle-end/38477
18190         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
18191         initialization notes only if we actually emitted a warning.
18192         (intra_create_variable_infos): Add constraints for a result decl
18193         that is passed by hidden reference.
18194         (build_pred_graph): Mark all related variables non-direct on
18195         address-taking.
18196
18197 2009-01-14  Nick Clifton  <nickc@redhat.com>
18198
18199         * ira-conflicts.c: Include addresses.h for the definition of
18200         base_reg_class.
18201         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
18202         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
18203
18204 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18205
18206         PR target/38811
18207         * Makefile.in (ira-lives.o): Add except.h.
18208
18209         * ira-lives.c: Include except.h.
18210         (process_bb_node_lives): Process can_throw_internal.
18211
18212 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
18213
18214         PR rtl-optimization/38774
18215         * combine.c (simplify_set): When undoing cc_use change, don't do
18216         PUT_CODE on the newly created comparison, but instead put back the
18217         old comparison.
18218
18219 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
18220
18221         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
18222         values.  Remove duplicate arm8 entry.
18223
18224 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
18225
18226         PR tree-optimization/38786
18227         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
18228         the SSA_NAME case of expand_scalar_variables_expr.
18229         Set the type of an expression to the type of its assign statement.
18230         (expand_scalar_variables_expr): Also gather the scalar computation
18231         used to index the memory access.  Do not pass loop_p.
18232         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
18233         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
18234         the gimple_stmt_iterator where it inserts new code.
18235         Do not pass loop_p.
18236         (copy_bb_and_scalar_dependences): Do not pass loop_p.
18237         (translate_clast): Update call to copy_bb_and_scalar_dependences.
18238
18239 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
18240
18241         * graphite.h (debug_value): Removed.
18242         * graphite.c (debug_value): Removed.
18243
18244 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
18245
18246         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
18247         ldrd/strd with two 32-bit instructions.
18248
18249 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
18250
18251         * config/arm/arm.c (struct processors): Pass for speed down into
18252         cost helper functions.
18253         (const_ok_for_op): Handle COMPARE and inequality nodes.
18254         (arm_rtx_costs_1): Rewrite.
18255         (arm_size_rtx_costs): Update prototype.
18256         (arm_rtx_costs): Pass speed down to helper functions.
18257         (arm_slowmul_rtx_costs): Rework cost calculations.
18258         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
18259         (arm_9e_rtx_costs): Likewise.
18260
18261 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
18262
18263         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
18264         relocations of local symbols wider than UNITS_PER_WORD are not valid.
18265         (alpha_legitimize_address): Do not split local symbols wider than
18266         UNITS_PER_WORD into HIGH/LO_SUM parts.
18267
18268 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
18269
18270         PR bootstrap/38580
18271         * gcc.c (process_command): Replace call to execvp with calls
18272         to pex_one and exit.
18273
18274 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
18275
18276         PR target/29141
18277         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
18278         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
18279         variant for devices with 3-byte PC.
18280         (__tablejump_elpm__): New.
18281
18282 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18283
18284         PR c/32041
18285         * c-parser.c (c_parser_postfix_expression): Allow `->' in
18286         offsetof member-designator, handle it as `[0].'.
18287
18288 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18289
18290         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
18291         function when not using named sections on targets with named sections
18292         if branch distance is less than 262132.
18293
18294 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
18295
18296         * combine.c (combine_instructions):  Recompute
18297         optimize_this_for_speed_p  for each BB in the main combine loop.
18298
18299 2009-01-12  Tomas Bily  <tbily@suse.cz>
18300
18301         PR middlend/38385
18302         * tree-loop-distribution.c (prop_phis): New function.
18303         (generate_builtin): Call prop_phis.
18304         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
18305
18306 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18307
18308         PR tree-optimization/38807
18309         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
18310         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
18311
18312 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
18313
18314         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
18315         subreg of op0 to the original op0.
18316
18317 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
18318
18319         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
18320
18321 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
18322
18323         PR debug/7055
18324         * mips-tfile.c (parse_def): Fix parsing of def strings
18325         starting with digits.
18326
18327 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
18328
18329         PR target/38695
18330         * config/arm/arm.c (arm_is_long_call_p): Don't call
18331         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
18332
18333 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
18334
18335         * regrename.c (regrename_optimize): Fix dumping.
18336         (find_oldest_value_reg): Preserve REG_POINTER.
18337         (copy_hardreg_forward_1): Likewise.
18338
18339 2009-01-09  Diego Novillo  <dnovillo@google.com>
18340
18341         * gimple.h (struct gimple_statement_base) <uid>: Document
18342         the restrictions on its use.
18343         (gimple_uid): Tidy.
18344         (gimple_set_uid): Tidy.
18345
18346 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18347
18348         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
18349         zero guard even if align_bytes != 0 and count is smaller than
18350         size_needed.
18351
18352 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
18353
18354         PR rtl-optimization/38495
18355         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
18356         (add_range_and_copies_from_move_list): Print all added ranges.
18357         Add ranges to memory optimized destination.
18358
18359 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18360
18361         PR target/38686
18362         PR target/38708
18363         * config/i386/i386.c (override_options): Reject
18364         -mstringop-strategy=rep_8byte with -m32.
18365         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
18366         to 1.  Do count comparison against epilogue_size_needed at compile
18367         time even when count_exp was constant forced into register.  For
18368         size_needed don't jump to epilogue, instead just avoid aligning
18369         and invoke the body algorithm.  If need_zero_guard, add zero guard
18370         even if count is non-zero, but smaller than size_needed + number of
18371         bytes that could be stored for alignment.
18372         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
18373         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
18374         but smaller than size_needed + number of bytes that could be stored
18375         for alignment.  Compare size_needed with epilogue_size_needed instead
18376         of desired_align - align, don't adjust size_needed, pass
18377         epilogue_size_needed to the epilogue expanders.
18378
18379         PR c/35742
18380         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
18381
18382 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18383
18384         * pa.c (last_address): Change to unsigned.
18385         (update_total_code_bytes): Change argument to unsigned.  Don't
18386         check if insn addresses are set.
18387         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
18388         addresses are not set.
18389         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
18390
18391 2009-01-09  Nick Clifton  <nickc@redhat.com>
18392
18393         * config/sh/symbian.c: Replace uses of DECL_INLINE with
18394         DECL_DECLARED_INLINE_P.
18395
18396 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18397
18398         PR middle-end/38347
18399         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
18400         GET_MODE (op0) in operand_subword_force calls.
18401
18402         PR middle-end/38771
18403         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
18404         fold_convert arg0 operands to TREE_TYPE (op0) first.
18405
18406 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
18407
18408         * params.def (ira-max-conflict-table-size): Decrease default value
18409         to 1000.
18410
18411 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
18412
18413         PR tree-optimization/37031
18414         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
18415         on parameter_set.
18416         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
18417         allocate it using gc instead of heap, use VEC_quick_push instead of
18418         VEC_safe_push.
18419         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
18420         instead of heap, use VEC_quick_push instead of VEC_safe_push.
18421         * tree-data-ref.h (struct access_matrix): Change matrix to gc
18422         allocated vector from heap allocated.
18423         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
18424         * tree-loop-linear.c (linear_transform_loops): Allocate nest
18425         vector only after perfect_loop_nest_depth call.
18426
18427 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
18428             Jan Sjodin  <jan.sjodin@amd.com>
18429
18430         PR tree-optimization/38559
18431         * graphite.c (debug_value, copy_constraint,
18432         swap_constraint_variables, scale_constraint_variable, ): New.
18433         (get_lower_bound, get_upper_bound): Removed.
18434         (graphite_trans_bb_strip_mine): Clean up this code that works
18435         only for constant number of iterations.  Fully copy upper and
18436         lower bound constraints, not only the constant part of them.
18437         * graphite.h (debug_value): Declared.
18438
18439 2009-01-08  Ira Rosen  <irar@il.ibm.com>
18440
18441         PR tree-optimization/37194
18442         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
18443         Don't add the cost of cost model guard in prologue to scalar
18444         outside cost in case of known number of iterations.
18445
18446 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18447             Alan Modra  <amodra@bigpond.net.au>
18448
18449         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
18450         non-word-aligned REG+CONST addressing.
18451
18452 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18453
18454         PR target/38706
18455         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
18456         free_after_compilation when outputting a thunk.
18457         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
18458         Do not call free_after_compilation here.
18459
18460 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18461
18462         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
18463         (ix86_valid_target_attribute_inner_p): Ditto.
18464
18465 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
18466
18467         PR tree-optimization/38492
18468         PR tree-optimization/38498
18469         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
18470         * tree-chrec.h (scev_is_linear_expression): Declared.
18471         * graphite.c (graphite_cannot_represent_loop_niter): New.
18472         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
18473         (graphite_loop_normal_form): Use gcc_assert.
18474         (scan_tree_for_params): Use CASE_CONVERT.
18475         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
18476         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
18477         Use gcc_assert.  Discard scops that contain unhandled cases.
18478         (build_scop_conditions): Return a boolean status for unhandled cases.
18479         (strip_mine_profitable_p): Print the loop number, not its depth.
18480         (is_interchange_valid): Pass the depth of the loop nest, don't
18481         recompute it wrongly.
18482         (graphite_trans_bb_block): Same.
18483         (graphite_trans_bb_block): Print tentative of loop blocking.
18484         (graphite_trans_scop_block): Do not print that the loop has been
18485         blocked.
18486         (graphite_transform_loops): Do not handle scops that contain condition
18487         scalar phi nodes.
18488
18489 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
18490
18491         AVX Programming Reference (December, 2008)
18492         * config/i386/avxintrin.h (_mm256_stream_si256): New.
18493         (_mm256_stream_pd): Likewise.
18494         (_mm256_stream_ps): Likewise.
18495
18496         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
18497         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
18498         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
18499         (bdesc_special_args): Add __builtin_ia32_movntdq256,
18500         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
18501         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
18502         (ix86_expand_special_args_builtin): Likewise.
18503
18504         * config/i386/sse.md (AVXMODEDI): New.
18505         (avx_movnt<mode>): Likewise.
18506         (avx_movnt<mode>): Likewise.
18507         (<sse>_movnt<mode>): Remove AVX support.
18508         (sse2_movntv2di): Likewise.
18509
18510 2009-01-07  Richard Guenther  <rguenther@suse.de>
18511
18512         PR middle-end/38751
18513         * fold-const.c (extract_muldiv): Remove obsolete comment.
18514         (fold_plusminus_mult_expr): Undo MINUS_EXPR
18515         to PLUS_EXPR canonicalization for the canonicalization.
18516
18517 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
18518
18519         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
18520         hosted cross-compilers generating less efficient code.
18521
18522 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18523
18524         * function.h (rtl_data): Add a dbr_scheduled_p field.
18525         * reorg.c (dbr_schedule): Set it.
18526         (gate_handle_delay_slots): Check it.
18527         * config/mips/mips.c (mips_base_delayed_branch): Delete.
18528         (mips_reorg): Check flag_delayed_branch instead of
18529         mips_base_delayed_branch.
18530         (mips_override_options): Don't set mips_base_delayed_branch
18531         or flag_delayed_branch.
18532
18533 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18534
18535         PR rtl-optimization/38426.
18536         * ira.c (ira): Set current_function_is_leaf earlier.
18537
18538 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
18539
18540         PR rtl-optimization/38722
18541         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
18542         too early, only set a flag and modify after last possible
18543         undo_all point.
18544
18545 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
18546
18547         PR c/34252
18548         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
18549         * real.c (decimal_single_format): Correct values of emin and emax.
18550         (decimal_double_format): Ditto.
18551         (decimal_quad_format): Ditto.
18552         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
18553         computation of DECnn_MIN and DECnn_MAX for corrected values of
18554         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
18555         __DECnn_MIN__, and adjust its computation for the corrected value
18556         of emin.
18557
18558 2009-01-06  Jan Hubicka  <jh@suse.cz>
18559
18560         PR target/38744
18561         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
18562
18563 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
18564
18565         * doc/contrib.texi (Contributors): Slightly adjust the end note.
18566         Add Robert Clark to the list of testers.
18567
18568 2009-01-06  Jan Hubicka  <jh@suse.cz>
18569             Kai Tietz  <kai.tietz@onevision.com>
18570
18571         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
18572         * config/i386/i386.c (ix86_expand_call): Add clobbers.
18573
18574 2009-01-06  Jan Hubicka  <jh@suse.cz>
18575             Kai Tietz  <kai.tietz@onevision.com>
18576
18577         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
18578         for w64 ABI.
18579         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
18580         (ix86_nsaved_regs): Count only general purpose regs.
18581         (ix86_nsaved_sseregs): New.
18582         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
18583         to 16 for w64; compute padding and size of sse reg save area.
18584         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
18585         general purpose regs.
18586         (ix86_emit_save_sse_regs_using_mov): New.
18587         (ix86_expand_prologue): Save SSE regs if needed.
18588         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
18589         (ix86_emit_restore_sse_regs_using_mov): New.
18590         (ix86_expand_epilogue): Save SSE regs if needed.
18591
18592 2009-01-06  Jan Hubicka  <jh@suse.cz>
18593             Kai Tietz  <kai.tietz@onevision.com>
18594
18595         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
18596         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
18597         functions when accumulate outgoing args is off.
18598
18599 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18600
18601         PR bootstrap/38742
18602         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
18603         before using pseudos_have_intersected_live_ranges_p.
18604
18605         * ira-int.h (ira_assert): Always define.
18606
18607 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18608
18609         AVX Programming Reference (December, 2008)
18610         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
18611         (_mm256_permute2_pd): Likewise.
18612         (_mm_permute2_ps): Likewise.
18613         (_mm256_permute2_ps): Likewise.
18614         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
18615         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
18616
18617         * config/i386/i386.c (ix86_builtins): Remove
18618         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
18619         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
18620         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
18621         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
18622         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
18623         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
18624         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
18625         __builtin_ia32_vpermil2ps256.
18626         (ix86_init_mmx_sse_builtins): Updated.
18627         (ix86_expand_args_builtin): Likewise.
18628
18629 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18630
18631         * pa.c (output_call): Relocate non-jump insns in the delay slot of
18632         long absolute calls when generating PA 2.0 code.
18633
18634 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
18635
18636         PR rtl-optimization/38583
18637         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
18638
18639         * params.def (ira-max-conflict-table-size): New.
18640
18641         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
18642
18643         * ira.h (ira_conflicts_p): New external definition.
18644
18645         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
18646         table.  Report this.  Return result of building.
18647         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
18648         building conflict table.
18649
18650         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
18651         (ira_color): Use ira_conflicts_p.
18652
18653         * global.c: Include ira.h.
18654         (pseudo_for_reload_consideration_p, build_insn_chain): Use
18655         ira_conflicts_p.
18656
18657         * Makefile.in (global.o): Add ira.h.
18658
18659         * ira-build.c (mark_all_loops_for_removal,
18660         propagate_some_info_from_allocno): New.
18661         (remove_unnecessary_allocnos): Call
18662         propagate_some_info_from_allocno.
18663         (remove_low_level_allocnos): New.
18664         (remove_unnecessary_regions): Add parameter.  Call
18665         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
18666         parameter to remove_unnecessary_regions.
18667         (ira_build): Remove all regions but root if the conflict table was
18668         not built.  Update conflict hard regs for allocnos crossing calls.
18669
18670         * ira.c (ira_conflicts_p): New global.
18671         (ira): Define and use ira_conflicts_p.
18672
18673         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18674         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
18675         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
18676
18677 2009-01-06  Ben Elliston  <bje@au.ibm.com>
18678
18679         * gengtype-lex.l (YY_NO_INPUT): Define.
18680
18681 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18682
18683         PR c/34911
18684         * c-common.c (handle_vector_size_attribute): Also reject
18685         BOOLEAN_TYPE types.
18686
18687 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
18688
18689         PR tree-optimization/38492
18690         * graphite.c (rename_map_elt, debug_rename_elt,
18691         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
18692         rename_map_elt_info, eq_rename_map_elts,
18693         get_new_name_from_old_name, bb_in_sese_p): Moved around.
18694         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
18695         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
18696         (sese_build_livein_liveouts): New.
18697         (new_sese, free_sese): New.
18698         (new_scop): Call new_sese.
18699         (free_scop): Call free_sese.
18700         (rename_variables_from_edge, rename_phis_end_scop): Removed.
18701         (register_old_new_names): Renamed register_old_and_new_names.
18702         (register_scop_liveout_renames, add_loop_exit_phis,
18703         insert_loop_close_phis, struct igp,
18704         default_liveout_before_guard, add_guard_exit_phis,
18705         insert_guard_phis, copy_renames): New.
18706         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
18707         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
18708         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
18709         (scop_adjust_phis_for_liveouts): New.
18710         (gloog): Call scop_adjust_phis_for_liveouts.
18711
18712         * graphite.h (struct sese): Documented.  Added fields liveout,
18713         num_ver and livein.
18714         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
18715         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
18716         (struct scop): Added field liveout_renames.
18717         (SCOP_LIVEOUT_RENAMES): New.
18718
18719 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18720
18721         PR tree-optimization/38510
18722         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
18723         (translate_clast): Call recompute_all_dominators before
18724         graphite_verify.
18725         (gloog): Call recompute_all_dominators before graphite_verify.
18726
18727 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18728             Jan Sjodin  <jan.sjodin@amd.com>
18729
18730         PR tree-optimization/38500
18731         * graphite.c (create_sese_edges): Call fix_loop_structure after
18732         splitting blocks.
18733
18734 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
18735
18736         * config.gcc: Add m32r*-*-rtems*.
18737         * config/m32r/rtems.h: New file.
18738
18739 2009-01-05  Ben Elliston  <bje@au.ibm.com>
18740
18741         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
18742         (.po.pox): Likewise.
18743         (po/gcc.pot): Likewise.
18744
18745 2009-01-04  David S. Miller  <davem@davemloft.net>
18746
18747         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
18748         (STARTING_FRAME_OFFSET): Always set to zero.
18749
18750 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18751
18752         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
18753         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
18754         fixed-point types, and vectors of the same.
18755
18756 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18757
18758         * config/mips/sync.md (*mb_barrier): Rename to...
18759         (*memory_barrier): ...this.
18760
18761 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
18762
18763         * doc/extend.texi (Function Attributes): Move @cindex after @item
18764         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
18765         and put in alphabetical order. Fix 'target' name and put in order.
18766         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
18767         typos.
18768
18769 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
18770
18771         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
18772         (memory_barrier): Expand as unspec instead of unspec_volatile.
18773         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18774         (*memory_barrier): Define as unspec instead of unspec_volatile.
18775         Use (match_dup 0) as input operand.
18776
18777         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
18778         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
18779         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
18780         scratch register.  Remove operand 1.
18781         (*stbar): Define as unspec instead of unspec_volatile.
18782         Use (match_dup 0) as input operand, remove (const_int 8).
18783         (*membar): Define as unspec instead of unspec_volatile.
18784         Use (match_dup 0) as input operand, remove input operand 2.
18785
18786         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
18787         (memory_barrier): Expand as unspec instead of unspec_volatile.
18788         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18789         (*memory_barrier): Define as unspec instead of unspec_volatile.
18790         Use (match_dup 0) as input operand.
18791
18792         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
18793         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18794         Set volatile flag on operand 0.
18795         (*memory_barrier): New insn pattern.
18796
18797         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
18798         insn operands.
18799         (*memory_barrier): Use (match_dup 0) as input operand.
18800
18801         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
18802         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18803         Set volatile flag on operand 0.
18804         (*mb_internal): New insn pattern.
18805
18806         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
18807
18808 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18809
18810         PR middle-end/38586
18811         * function.c (struct temp_slot): Move to the section of the file
18812         that deals with temp slots.  Remove field 'address'.
18813         (temp_slot_address_table): New hash table of address -> temp slot.
18814         (struct temp_slot_address_entry): New struct, items for the table.
18815         (temp_slot_address_compute_hash, temp_slot_address_hash,
18816         temp_slot_address_eq, insert_temp_slot_address): Support functions
18817         for the new table.
18818         (find_temp_slot_from_address): Rewrite to use the new hash table.
18819         (remove_unused_temp_slot_addresses): Remove addresses of temp
18820         slots that have been made available.
18821         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
18822         worker function for remove_unused_temp_slot_addresses.
18823         (assign_stack_temp_for_type): Don't clear the temp slot address list.
18824         Add the temp slot address to the address -> temp slot map.
18825         (update_temp_slot_address): Update via insert_temp_slot_address.
18826         (free_temp_slots): Call remove_unused_temp_slot_addresses.
18827         (pop_temp_slots): Likewise.
18828         (init_temp_slots): Allocate the address -> temp slot map, or empty
18829         the map if it is already allocated.
18830         (prepare_function_start): Initialize temp slot processing.
18831
18832 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18833
18834         PR middle-end/38584
18835         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
18836         Calculate the size of all stack vars assuming no packing of stack
18837         vars will happen, replacing a quadratic algorithm with a linear one.
18838
18839 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18840
18841         PR target/38707
18842         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
18843         can't be used.
18844
18845 2009-01-03  Diego Novillo  <dnovillo@google.com>
18846
18847         * doc/contrib.texi: Update contributions.
18848
18849 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18850
18851         PR c++/38705
18852         * builtins.c (fold_builtin_memory_op): Give up if either operand
18853         is volatile.  Set srctype or desttype to non-qualified version
18854         of the other type.
18855
18856         PR c/38700
18857         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
18858         and FUNCTION_DECLs.
18859
18860 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
18861
18862         PR rtl-optimization/35805
18863         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
18864         problem if fast dce is able to remove any instructions.
18865         * dce.c (dce_process_block): Fix dump message.
18866
18867 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
18868
18869         PR 33649
18870         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
18871
18872 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
18873
18874         PR middle-end/38690
18875         * tree-flow.h (op_code_prio, op_prio): New prototypes.
18876         * tree-pretty-print.c (op_code_prio): New function.
18877         (op_prio): No longer static.  Use op_code_prio.
18878         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
18879         Use op_prio and op_code_prio to determine if () should be
18880         printed around operand(s) or not.
18881
18882         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
18883         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
18884         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
18885         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
18886         pp_character instead of pp_string for single letter printing.
18887
18888 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
18889
18890         * doc/extend.texi: Fix '#pragma GCC option' typo.
18891
18892 2009-01-02  Richard Guenther  <rguenther@suse.de>
18893
18894         * doc/install.texi (--enable-checking): Mention different
18895         default for stage1.
18896         (--enable-stage1-checking): Document.
18897
18898 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
18899
18900         PR middle-end/30142
18901         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
18902         case to be an error.
18903
18904 2009-01-02  Ben Elliston  <bje@au.ibm.com>
18905
18906         * config/fp-bit.h (pack_d): Constify argument.
18907         * config/fp-bit.c (makenan): Constify return type. Remove casts.
18908         (isnan): Constify argument.
18909         (isinf): Likewise.
18910         (iszero): Likewise.
18911         (pack_d): Likewise.
18912         (_fpadd_parts): Constify return type.
18913         (_fpmul_parts): Likewise.
18914         (_fpdiv_parts): Likewise.
18915
18916 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
18917
18918         PR c/36489
18919         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
18920         warn about overwriting initializer with side-effects or
18921         -Woverride-init if !IMPLICIT.
18922         (output_init_element): Likewise.  Pass IMPLICIT down to
18923         add_pending_init.
18924         (process_init_element): Add IMPLICIT argument.  Pass it down
18925         to output_init_element.
18926         (push_init_element, pop_init_level, set_designator): Adjust
18927         process_init_element callers.
18928         (set_nonincremental_init, set_nonincremental_init_from_string):
18929         Adjust add_pending_init callers.
18930         (output_pending_init_elements): Adjust output_init_element callers.
18931         * c-tree.h (process_init_element): Adjust prototype.
18932         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
18933         process_init_element callers.
18934
18935 \f
18936 Copyright (C) 2009 Free Software Foundation, Inc.
18937
18938 Copying and distribution of this file, with or without modification,
18939 are permitted in any medium without royalty provided the copyright
18940 notice and this notice are preserved.