OSDN Git Service

6b658f3832e8e677ff42a7a7e824059d306f5524
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
2
3         * tree-object-size.c (addr_object_size): Handle unions with
4         array in it as last field of structs in __bos (, 1) as __bos (, 0).
5
6         PR tree-optimization/40792
7         * tree.c (build_function_type_skip_args): Remove bogus assert.
8
9 2009-07-20  Jan Hubicka  <jh@suse.cz>
10             Martin Jambor  <mjambor@suse.cz>
11
12         * cgraph.h (combined_args_to_skip): New field.
13         * cgraph.c (cgraph_create_virtual_clone): Properly handle
14         combined_args_to_skip and args_to_skip.
15         * tree-inline.c (update_clone_info): New function.
16         (tree_function_versioning): Call update_clone_info.
17         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized functions.
18         (cgraph_materialize_all_clones): More extensive dumping, working
19         with combined_args_to_skip rather than args_to_skip.
20
21 2009-07-20  Ira Rosen  <irar@il.ibm.com>
22
23         * tree-vectorizer.h (vectorizable_condition): Add parameters.
24         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
25         (get_initial_def_for_reduction): Likewise.
26         (vectorizable_reduction): Skip the check of first operand in case
27         of COND_EXPR. Add check that it is outer loop vectorization if
28         nested cycle was detected. Call vectorizable_condition() for 
29         COND_EXPR. If reduction epilogue cannot be created do not fail for
30         nested cycles (if it is not double reduction). Assert that there
31         is only one type in the loop in case of COND_EXPR. Call
32         vectorizable_condition() to vectorize COND_EXPR.
33         * tree-vect-stmts.c (vectorizable_condition): Update comment.
34         Add parameters. Allow nested cycles if called from 
35         vectorizable_reduction(). Use reduction vector variable if provided.
36         (vect_analyze_stmt): Call vectorizable_reduction() before
37         vectorizable_condition().
38         (vect_transform_stmt): Update call to vectorizable_condition().
39
40 2009-07-20  Christian Bruel  <christian.bruel@st.com>
41         
42         * config/sh/sh.opt (-mfmovd): Resurrect and document.
43         * doc/invoke.texi (-mfmovd): Likewise.
44         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
45         
46 2009-07-20  Jan Hubicka  <jh@suse.cz>
47
48         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
49         when handling SSA name.
50
51 2009-07-19  Jan Hubicka  <jh@suse.cz>
52
53         PR tree-optimization/40676
54         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
55         virtual PHIs in empty BBs.
56
57 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
58
59         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
60         re-expanded the compound use gen_lowpart instead to convert to the
61         desired mode.
62
63 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
64
65         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
66         OUTER_CONST arguments.
67         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
68         the new wider mode will be masked off.
69         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
70
71 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
72
73         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
74         high-order bits are zero.
75
76 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
77
78         * combine.c (simplify_shift_const_1): Split code to determine
79         shift_mode into ...
80         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
81         new bits shifted in are identical to the old sign bit.
82
83 2009-07-18  Richard Guenther  <rguenther@suse.de>
84
85         PR c/40787
86         * gimplify.c (gimplify_call_expr): Reject code using results from
87         functions returning void.
88
89 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
90
91         * doc/md.texi: Document the new PowerPC "es" constraint.
92         Document that "m" can include automodified addresses on this target,
93         and explain how %U must be used.  Extend the "Q" and "Z" documentation
94         to suggest "es" as well as "m".
95         * config/rs6000/constraints.md (es): New memory constraint.
96         (Q, Z): Update strings to match new documentation.
97
98 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
99
100         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
101         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
102         * config/rs6000/predicates.md (volatile_mem_operand): Use
103         offsettable_nonstrict_memref_p.
104         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
105         (*floatunssidf2_internal): Likewise.
106         (*fix_truncdfsi2_internal): Likewise.
107         (*fix_trunctfsi2_internal): Likewise.
108
109 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
110
111         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
112         atmega32u2 devices.
113         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
114
115 2009-07-17  Richard Guenther  <rguenther@suse.de>
116
117         PR c/40401
118         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
119         (pass_warn_unused_result): Likewise.
120         (TODO_set_props): Remove.
121         * omp-low.c (diagnose_omp_structured_block_errors): Change to
122         run as a pass.
123         (pass_diagnose_omp_blocks): Define.
124         * c-decl.c (pop_file_scope): Do not finalize the CU here.
125         (c_gimple_diagnostics_recursively): Remove.
126         (finish_function): Do not call it.
127         (c_write_global_declarations): Continue after errors.
128         Finalize the CU here.
129         * c-gimplify.c (c_genericize): Do not gimplify here.
130         * c-common.c (c_warn_unused_result): Move ...
131         * tree-cfg.c (do_warn_unused_result): ... here.
132         (run_warn_unused_result): New function.
133         (gate_warn_unused_result): New function.
134         (pass_warn_unused_result): New pass.
135         * c-common.h (c_warn_unused_result): Remove.
136         * flags.h (flag_warn_unused_result): Declare.
137         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
138         * opts.c (flag_warn_unused_result): Initialize to false.
139         * toplev.c (compile_file): Add comment.
140         * omp-low.c (create_omp_child_function): Do not register
141         the function with the frontend.
142         (diagnose_omp_structured_block_errors): Prepare to be
143         called as optimization pass.
144         (gate_diagnose_omp_blocks): New function.
145         (pass_diagnose_omp_blocks): New pass.
146         * cgraph.h (cgraph_optimize): Remove.
147         (cgraph_analyze_function): Likewise.
148         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
149         * cgraphunit.c (cgraph_lower_function): Lower nested functions
150         before their parents here.
151         (cgraph_finalize_function): Not here.
152         (cgraph_analyze_function): Gimplify functions here.
153         (cgraph_finalize_compilation_unit): Continue after errors.
154         Optimize the callgraph from here.
155         (cgraph_optimize): Make static.
156         * langhooks.c (write_global_declarations): Finalize the CU.
157         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
158         (gimplify_function_tree): Assert we gimplify only once.
159         Set PROP_gimple_any property.
160         * tree-nested.c (gimplify_all_functions): New function.
161         (lower_nested_functions): Gimplify all nested functions.
162         * gimple.h (diagnose_omp_structured_block_errors): Remove.
163         * passes.c (init_optimization_passes): Add pass_warn_unused_result
164         and pass_diagnose_omp_blocks after gimplification.  Do not
165         set TODO_set_props on all_lowering_passes.
166         (execute_one_pass): Do not handle TODO_set_props.
167         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
168         (gimplify.o): Add tree-pass.h dependency.
169         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
170         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
171         (unsave_r): Likewise.
172         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
173         temporary variable.
174
175 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
176
177         * doc/service.texi (Service): Restore previously removed link,
178         which isn't broken after all.
179
180 2009-07-17  Richard Guenther  <rguenther@suse.de>
181
182         PR tree-optimization/40321
183         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
184         PHI nodes to the maximal set.
185         (make_values_for_phi): Add PHI arguments to the maximal set.
186         (execute_pre): Dump PHI_GEN and the maximal set.
187
188 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
189
190         PR c++/40780
191         * gimplify.c (gimplify_conversion): Don't change non-conversions into
192         VIEW_CONVERT_EXPR.
193
194 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
195
196         * doc/extend.texi (Nested Functions): Replace broken link with
197         textual reference.
198         * doc/service.texi (Service): Remove broken link.
199
200 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
201
202         PR bootstrap/40781
203         * builtins.c (expand_builtin_memcmp): Use loc instead of
204         EXPR_LOCATION (exp).
205         (expand_builtin_strncmp): Likewise.
206
207 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
208             Manuel López-Ibáñez  <manu@gcc.gnu.org>
209
210         PR 40435 
211         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
212         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
213         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
214         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
215         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
216         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
217         tree-inline.c, c-common.c, c-common.h, gimple.c,
218         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
219         convert.c: Add location argument to fold_{unary,binary,ternary},
220         fold_build[123], build_call_expr, build_size_arg,
221         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
222         fold_build1_initializer, fold_build2_initializer,
223         fold_build3_initializer, fold_build_call_array,
224         fold_build_call_array_initializer, fold_single_bit_test,
225         omit_one_operand, omit_two_operands, invert_truthvalue,
226         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
227         combine_comparisons, fold_builtin_*, fold_call_expr,
228         build_range_check, maybe_fold_offset_to_address, round_up,
229         round_down.
230
231 2009-07-16  Jason Merrill  <jason@redhat.com>
232
233         PR libstdc++/37907
234         * c-common.c (c_common_reswords): Add __is_standard_layout
235         and __is_trivial.
236         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
237         * doc/implement-cxx.texi: New.
238         * doc/gcc.texi: Include it.
239
240 2009-07-16  DJ Delorie  <dj@redhat.com>
241
242         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
243         compares that may be indirectly affected by previous instructions.
244
245 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
246
247         * builtins.c (do_mpc_arg2): New.
248         (fold_builtin_2): Fold builtin cpow.
249         * real.h (HAVE_mpc_pow): New.
250
251 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
252
253         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
254         comparison to skip unprofitable schedule
255
256 2009-07-16  Simon Baldwin  <simonb@google.com>
257
258         * gcc.c (option_map): New flag -no-canonical-prefixes.
259         * (display_help): Print help text for new flag.
260         * (process_command): Move options translation and language specifics
261         and handle new flag early.  Use it to set a function pointer to a
262         prefix builder.  Replace make_relative_prefix calls with calls to
263         the function pointed to.  Ignore new flag in regular options handling.
264         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
265
266 2009-07-15  DJ Delorie  <dj@redhat.com>
267
268         * config/mep/mep.md (sibcall_internal): Change register to avoid
269         argument registers.
270         (sibcall_value_internal): Likewise.
271
272 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
273
274         PR rtl-optimization/40710
275         * resource.c (mark_target_live_regs): Reset DF problem to LR.
276
277 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
278
279         * config/mips/mips.md (*extenddi_truncate<mode>,
280         *extendsi_truncate<mode>): Change type attribute to move_type
281         with shift_shift.  Split out code handling exts from here ...
282         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
283         pattern.
284         (*extendhi_truncateqi): Change type attribute to move_type with
285         shift_shift.  Split out code handling exts from here ...
286         (*extendhi_truncateqi_exts): ... to this new pattern.
287
288 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
289
290         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
291         instead of "and" with inverted sign bit mask value.  Use
292         "nonimmediate_operand" for operand 1 and operand 2 predicate.
293         Allocate registers only for operand 4 and operand 5.
294
295 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
296
297         PR middle-end/40747
298         * fold-const.c (fold_cond_expr_with_comparison): When folding
299         < and <= to MIN, make sure the MIN uses the same type as the
300         comparison's operands.
301
302 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
303
304         * arm.md (ior_xor): New code iterator.
305         (split for ior/xor with shift and zero-extend): New split pattern.
306         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
307
308 2009-07-15  Richard Guenther  <rguenther@suse.de>
309
310         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
311         offset member.
312
313 2009-07-15  Richard Guenther  <rguenther@suse.de>
314
315         PR middle-end/40753
316         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
317
318 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
319
320         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
321         handle 2.6.30 kernel.
322
323 2009-07-15  DJ Delorie  <dj@redhat.com>
324
325         * config/mep/mep.md (sibcall_internal): Change register to allow
326         for 24-bit addresses.
327         (sibcall_value_internal): Likewise.
328
329 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
330         
331         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
332         that are enabled/disabled by the flags introduced by a previous patch.
333         
334 2009-07-14  DJ Delorie  <dj@redhat.com>
335
336         * config/mep/mep.md (sibcall_internal): Include non-toggling
337         non-jmp case.
338         (sibcall_value_internal): Likewise.
339
340 2009-07-14  Taras Glek  <tglek@mozilla.com>
341             Rafael Espindola  <espindola@google.com>
342
343         * doc/sourcebuild.texi: Document install-plugin target.
344         * configure.ac: Added install-plugin target to language makefiles.
345         * configure: Regenerate.
346         * Makefile.in: (install-plugin): Install more headers,
347         depend on lang.install-plugin.
348
349 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
350
351         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
352         translation.
353         
354 2009-07-14  DJ Delorie  <dj@redhat.com>
355
356         * config/mep/mep.c (mep_vliw_jmp_match): New function.
357         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
358         * config/mep/mep.md (sibcall_internal): Change test from
359         mep_vliw_mode_match to mep_vliw_jmp_match.
360         (sibcall_value_internal): Likewise.
361
362 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
363
364         * config/i386/sse.md (copysign<mode>3): New expander.
365         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
366         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
367         Use ix86_build_const_vector.
368         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
369         IX86_BUILTIN_CPYSGNPD.
370         (builtin_description): Add __builtin_ia32_copysignps and
371         __builtin_ia32_copysignpd.
372         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
373         and BUILT_IN_COPYSIGNF.
374
375 2009-07-13  Jason Merrill  <jason@redhat.com>
376
377         * builtins.c (can_trust_pointer_alignment): New fn.
378         (get_pointer_alignment): Factor it out from here.
379         * tree.h: Declare it.
380
381 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
382
383         * config/rs6000/predicates.md (offsettable_mem_operand): Test
384         RTX_AUTOINC class.
385
386 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
387
388         PR debug/40705
389         PR c++/403057
390         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
391
392 2009-07-14  Richard Guenther  <rguenther@suse.de>
393             Andrey Belevantsev <abel@ispras.ru>
394
395         PR middle-end/40745
396         * cfgexpand.c (partition_stack_vars): Do not bother to update
397         alias information when not optimizing.
398
399 2009-07-14  Richard Guenther  <rguenther@suse.de>
400         Andrey Belevantsev <abel@ispras.ru>
401
402         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
403         (pt_solution_set): Likewise.
404         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
405         * tree-ssa-structalias.c (pt_solution_set): New function.
406         * final.c (rest_of_clean_state): Free SSA data structures.
407         * print-rtl.c (print_decl_name): Remove.
408         (print_mem_expr): Implement in terms of print_generic_expr.
409         * alias.c (ao_ref_from_mem): New function.
410         (rtx_refs_may_alias_p): Likewise.
411         (true_dependence): Query alias-export info.
412         (canon_true_dependence): Likewise.
413         (write_dependence_p): Likewise.
414         * tree-dfa.c (get_ref_base_and_extent): For void types leave
415         size unknown.
416         * emit-rtl.c (component_ref_for_mem_expr): Remove.
417         (mem_expr_equal_p): Use operand_equal_p.
418         (set_mem_attributes_minus_bitpos): Do not use
419         component_ref_for_mem_expr.
420         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
421         (update_alias_info_with_stack_vars): Likewise.
422         (partition_stack_vars): Call update_alias_info_with_stack_vars.
423         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
424         explicitly nor clear stmt operands.
425         Free the decl-to-pointer map.
426         * tree-optimize.c (execute_free_datastructures): Do not free
427         SSA data structures here.
428         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
429         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
430         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
431         dependencies.
432         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
433
434 2009-07-13  DJ Delorie  <dj@redhat.com>
435
436         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
437         unrolling at the right iteration count.
438
439         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
440         calculations.
441
442 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
443         
444         * haifa-sched.c (rank_for_schedule): Introduced flags to
445         enable/disable individual scheduling heuristics.
446         * common.opt: Introduced flags to enable/disable individual
447         heuristics in the scheduler.    
448         * doc/invoke.texi: Introduced flags to enable/disable individual
449         heuristics in the scheduler.
450         
451 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
452
453         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
454         config/i386/mingw-tls.c.
455         * config/i386/mingw-tls.c: Removed.
456
457 2009-07-13  Ira Rosen  <irar@il.ibm.com>
458
459         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
460         checks access only relevant statements.
461         (vectorizable_reduction): Likewise.
462
463 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
464
465         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
466         just for 32-bit case.
467
468 2009-07-12  Jan Hubicka  <jh@suse.cz>
469
470         PR tree-optimization/40585
471         * except.c (expand_resx_expr): When there already is resume
472         instruction, produce linked list.
473         (build_post_landing_pads): Assert that resume is empty.
474         (connect_post_landing_pads): Handle resume lists.
475         (dump_eh_tree): Dump resume list.
476
477 2009-07-12  Ira Rosen  <irar@il.ibm.com>
478
479         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
480         with additional argument.
481         * tree-vectorizer.h (enum vect_def_type): Add
482         vect_double_reduction_def.
483         (vect_is_simple_reduction): Add argument.
484         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
485         indentation.
486         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
487         vect_is_simple_reduction with additional argument.
488         (vect_analyze_loop_operations): Handle exit phi nodes in case of
489         double reduction.
490         (reduction_code_for_scalar_code): Handle additional codes by
491         returning ERROR_MARK for them. Fix comment and indentation.
492         (vect_is_simple_reduction): Fix comment, add argument to specify
493         double reduction. Detect double reduction.
494         (get_initial_def_for_induction): Fix indentation.
495         (get_initial_def_for_reduction): Fix comment and indentation.
496         Handle double reduction. Create initial definitions that do not
497         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
498         (vect_create_epilog_for_reduction): Fix comment, add argument to
499         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
500         epilogue result extraction. Create double reduction phi node and
501         replace relevant uses.
502         (vectorizable_reduction): Call vect_is_simple_reduction with
503         additional argument. Fix indentation. Update epilogue code treatment
504         according to the changes in reduction_code_for_scalar_code. Check
505         for double reduction. Call vect_create_epilog_for_reduction with
506         additional argument.
507         * tree-vect-stmts.c (process_use): Handle double reduction, update
508         documentation.
509         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
510         (vect_get_vec_def_for_operand): Likewise.
511
512 2009-07-12  Danny Smith  <dansmister@gmail.com>
513
514         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
515         dllexport if !TREE_PUBLIC.
516         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
517
518 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
519
520         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
521         (avr_extra_arch_macro) Remove declatation.
522         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
523         (avr_extra_arch_macro) Declare as static.
524         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
525
526 2009-07-11  Jan Hubicka  <jh@suse.cz>
527
528         PR middle-end/48388
529         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
530
531 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
532
533         PR debug/40713
534         * dwarf2out.c (dw_fde_struct): Add in_std_section and
535         cold_in_std_section bits.
536         (dwarf2out_begin_prologue): Initialize them.
537         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
538         if already covered by text_section or cold_text_section range.
539
540         PR rtl-optimization/40667
541         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
542         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
543         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
544         * config/i386/i386.c (ix86_minimum_alignment): New function.
545         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
546         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
547         * emit-rtl.c (gen_reg_rtx): Likewise.
548         * function.c (assign_parms): Likewise.  If nominal_type needs
549         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
550         rather than passed_type's alignment.
551
552         PR target/40668
553         * function.c (assign_parm_setup_stack): Adjust
554         MEM_OFFSET (data->stack_parm) if promoted_mode is different
555         from nominal_mode on big endian.
556
557 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
558
559         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
560
561 2009-07-10  DJ Delorie  <dj@redhat.com>
562
563         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
564
565 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
566
567         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
568         attribute.
569         (thumb2_cbnz): Likewise.
570
571 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
572
573         PR target/39079
574         * config.gcc (supported_defaults): Add synci.
575         (with_synci): Add validation.
576         (all_defaults): Add synci.
577         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
578         ISA_HAS_SYNCI.
579         (synci): Same.
580         * config/mips/mips.opt (msynci): New option.
581         * config/mips/mips.c (mips_override_options): Warn on use of
582         -msynci for targets that do now support it.
583         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
584         msynci.
585         * gcc/doc/invoke.texi (-msynci): Document the new option.
586         * doc/install.texi (--with-synci): Document the new option.
587
588 2009-07-10  Richard Guenther  <rguenther@suse.de>
589
590         PR tree-optimization/40496
591         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
592         the PHI result with a compatible type.
593
594 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
595
596         PR 25509
597         PR 40614
598         * c.opt (Wunused-result): New.
599         * doc/invoke.texi: Document it.
600         * c-common.c (c_warn_unused_result): Use it.
601
602 2009-07-09  DJ Delorie  <dj@redhat.com>
603
604         * targhooks.c (default_target_can_inline_p): Rename from
605         default_target_option_can_inline_p.
606         * targhooks.h (default_target_can_inline_p): Likewise.
607         * target-def.h (TARGET_CAN_INLINE_P): Rename from
608         TARGET_OPTION_CAN_INLINE_P.
609         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
610         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
611         (mep_target_can_inline_p): Rename from
612         mep_target_option_can_inline_p.
613
614         PR target/40626
615         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
616         registers used to pass vectors.
617
618         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
619
620 2009-07-09  Tom Tromey  <tromey@redhat.com>
621
622         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
623         * config/mmix/mmix.c: Include dwarf2.h.
624         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
625         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
626         * config/sh/sh.c: Include dwarf2.h.
627         * config/i386/i386.c: Include dwarf2.h.
628         * Makefile.in (DWARF2_H): Remove 'elf'.
629         * except.c: Include dwarf2.h.
630         * unwind-dw2.c: Include dwarf2.h.
631         * dwarf2out.c: Include dwarf2.h.
632         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
633         * unwind-dw2-fde.c: Include dwarf2.h.
634         * dwarf2asm.c: Include dwarf2.h.
635
636 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
637
638         * haifa-sched.c (insn_finishes_cycle_p): New static function.
639         (max_issue): Use it.
640         * sched-int.h (struct sched_info: insn_finishes_block_p): New
641         scheduler hook.
642         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
643         (region_sched_info): Update.
644         * sched-ebb.c (ebb_sched_info): Update.
645         * modulo-sched.c (sms_sched_info): Update.
646         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
647
648 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
649
650         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
651
652 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
653
654         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
655
656 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
657
658         PR middle-end/40692
659         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
660         arg1 with arg01 if arg1 is already INTEGER_CST.
661
662 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
663
664         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
665         Transform (and (truncate)) into (truncate (and)).
666
667 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
668
669         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
670         creating LHS paradoxical subregs.  Fix surrounding returns to
671         use NULL_RTX rather than 0.
672
673 2009-07-08  DJ Delorie  <dj@redhat.com>
674
675         * config/mep/mep.c: (mep_option_can_inline_p): New.
676         (TARGET_OPTION_CAN_INLINE_P): Define.
677
678 2009-07-08  Mark Wielaard  <mjw@redhat.com>
679
680         PR debug/40659
681         * dwarf2out.c (add_data_member_location_attribute): When we have
682         only a constant offset don't emit a new location description using
683         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
684         dwarf_version > 2.
685
686 2009-07-08  Richard Henderson  <rth@redhat.com>
687
688         PR target/38900
689         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
690         (enum reg_class): Add CLOBBERED_REGS.
691         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
692         * config/i386/i386.c (ix86_conditional_register_usage): Moved
693         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
694         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
695         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
696         force 64-bit sibcalls into R11.
697         * config/i386/constraints.md (U): New constraint.
698         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
699         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
700         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
701
702 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
703
704         * basic-block.h (dump_regset, debug_regset): Remove duplicate
705         prototypes.
706         * c-objc-common.h (c_initialize_diagnostics): Ditto.
707         * ebitmap.h (dump_ebitmap): Ditto.
708         * optabs.h (optab_libfunc): Ditto.
709         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
710         * tree-flow.h (vect_can_force_dr_alignment_p,
711         get_vectype_for_scalar_type): Ditto.
712         (vectorize_loops): Move prototype to ...
713         * tree-vectorizer.h: ... here. Also, adjust comment.
714         (vect_set_verbosity_level): Remove duplicate prototype.
715         * tree-ssa-loop.c: Include tree-vectorizer.h.
716         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
717
718 2009-07-08  Nick Clifton  <nickc@redhat.com>
719
720         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
721         forward slash.
722
723 2009-07-08  DJ Delorie  <dj@redhat.com>
724
725         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
726         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
727         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
728         written to.
729         * config/mep/intrinsics.md: Regenerated.
730         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
731         registers when asm() or calls are detected.
732
733 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
734
735         PR c++/31246
736         * gimplify.c (gimplify_expr): Propagate no_warning flag when
737         gimplifying.
738         * gimple (gimple_build_call_from_tree): Likewise.
739         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
740         no_warning flag before warning.
741
742 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
743
744         * tree.c (set_expr_locus): Remove.
745         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
746         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
747         EXPR_LOCATION.
748         * gimplify.c (internal_get_tmp_var): Likewise.
749         (gimplify_call_expr): Likewise.
750         (gimplify_one_sizepos): Likewise.
751
752 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
753
754         PR debug/40666
755         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
756         to variables for debugging purposes.
757
758 2009-06-23  Mark Loeser  <mark@halcy0n.com>
759
760         PR build/40010
761         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
762
763 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
764
765         * pretty-print.c (pp_base_format): Remove %J.
766         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
767         gcc_cxxdiag_char_table): Likewise.
768         (init_dynamic_diag_info): Likewise.
769
770 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
771
772         * pretty-print.c (pp_base_format): Remove %H.
773         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
774         gcc_cxxdiag_char_table): Likewise.
775         (init_dynamic_diag_info): Likewise.
776         * config/mep/mep.c (mep_select_section): Likewise.
777
778 2009-07-07  Duncan Sands  <baldrick@free.fr>
779
780         * final.c (pass_clean_state): Give the pass a name.
781         * passes.c (pass_rest_of_compilation): Likewise.
782         * tree-optimize.c (pass_all_optimizations): Likewise.
783
784 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
785
786         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
787         an extra 'decl' for error_at.
788
789 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
790
791         PR middle-end/40669
792         * tree-tailcall.c (adjust_return_value_with_ops,
793         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
794         if it has complex or vector type.
795
796 2009-07-07  Olivier Hainque  <hainque@adacore.com>
797
798         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
799         pthread symbols.
800
801 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
802
803         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
804
805 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
806
807         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
808         * c-decl.c: Likewise.
809         * function.c: Likewise.
810         * varasm.c: Likewise.
811         * tree-ssa.c: Likewise.
812         * c-common.c: Likewise.
813         * tree-cfg.c: Likewise.
814         * config/spu/spu.c: Likewise.
815         * config/ia64/ia64.c: Likewise.
816         * config/v850/v850.c: Likewise.
817
818 2009-07-06  DJ Delorie  <dj@redhat.com>
819
820         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
821         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
822         unspecified accesses to control registers.
823         * config/mep/intrinsics.md: Regenerate.
824         * config/mep/intrinsics.h: Regenerate.
825         * config/mep/mep-intrin.h: Regenerate.
826
827 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
828
829         * c-lex.c: Replace %H by an explicit location. Update all calls.
830         * c-common.c: Likewise.
831         * c-decl.c: Likewise.
832         * c-typeck.c: Likewise.
833         * fold-const.c: Likewise.
834         * gimplify.c: Likewise.
835         * stmt.c: Likewise.
836         * tree-cfg.c: Likewise.
837         * tree-ssa-loop-niter.c: Likewise.
838         * tree-vrp.c: Likewise.
839         * value-prof.c: Likewise.
840
841 2009-07-06  Diego Novillo  <dnovillo@google.com>
842
843         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
844         if it has one.  Handle cases where VAR does not have an
845         annotation or cfun is NULL.
846
847 2009-07-06  Diego Novillo  <dnovillo@google.com>
848
849         * tree.c: Include debug.h.
850         (initialize_tree_contains_struct): New.
851         (init_ttree): Call it.
852         (tree_node_structure_for_code): Factor out of ...
853         (tree_node_structure): ... here.
854         * treestruct.def (TS_PHI_NODE): Remove.
855         (TS_GIMPLE_STATEMENT): Remove.
856
857 2009-07-06  Diego Novillo  <dnovillo@google.com>
858
859         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
860         (debug_tree_chain): Handle cycles.
861
862 2009-07-06  Nick Clifton  <nickc@redhat.com>
863             DJ Delorie  <dj@redhat.com>
864
865         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
866         __FMOVD_ENABLED__ is defined.
867         * config/sh/sh.h
868         (TARGET_FMOVD): Provide a default definition.
869         (MASK_FMOVD): Likewise.
870         (TARGET_CPU_CPP_BUILTINS): Define
871         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
872         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
873         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
874         (split for DF load from memory into register): Also handle
875         MEMs which consist of REG+DISP addressing.
876         (split for DF store from register to memory): Likewise.
877         (movsf_ie): Always use single fp_mode.
878         * config/sh/sh.c (sh_override_options): Do not automatically
879         enable TARGET_MOVD for the SH2A when supporting doubles - leave
880         that to the -mfmovd command line switch.
881         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
882         (fldi_ok): Always allow.
883         * config/sh/sh.opt (mfmovd): Remove this switch.
884         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
885
886 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
887             Kaz Kojima  <kkojima@gcc.gnu.org>
888
889         PR rtl-optimization/30807
890         * postreload.c (reload_combine): For every new use of REG_SUM,
891         record the use of BASE.
892
893 2009-07-06  Jan Hubicka  <jh@suse.cz>
894
895         * params.def: Revert my accidental commit at 2009-06-30.
896
897 2009-07-04  Ian Lance Taylor  <iant@google.com>
898
899         PR target/40636
900         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
901         EXPORTED_CONST.
902         (mingw_format_attribute_overrides): Likewise.
903
904 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
905
906         PR debug/40596
907         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
908         don't check cfa.reg.  Instead of cfa.indirect use
909         fde && fde->drap_reg != INVALID_REGNUM test.
910
911 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
912
913         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
914
915 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
916
917         PR target/40587
918         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
919
920 2009-07-03  Richard Guenther  <rguenther@suse.de>
921
922         PR tree-optimization/40640
923         * tree-switch-conversion.c (build_arrays): Perform arithmetic
924         in original type.
925
926 2009-07-03  Jan Hubicka  <jh@suse.cz>
927
928         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
929         for size, reduce amount of inlining.
930
931 2009-07-03  Richard Guenther  <rguenther@suse.de>
932
933         PR middle-end/34163
934         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
935         if t +- x is known to not overflow and the conversion widens the
936         operation.
937         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
938
939 2009-07-03  Jan Hubicka  <jh@suse.cz>
940
941         * ipa-pure-const.c (analyze): Update loop optimizer init.
942         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
943         try_remove_empty_loop, remove_empty_loops): Remove.
944         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
945         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
946         to mark regular loops as neccesary.
947         (degenerate_phi_p): New function.
948         (propagate_necessity, remove_dead_phis): Use it.
949         (forward_edge_to_pdom): Likewise.
950         (eliminate_unnecessary_stmts): Take care to remove uses of results of
951         virtual PHI nodes that became unreachable.
952         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
953         * tree-flow.h (remove_empty_loops): Remove.
954         * passes.c (init_optimization_passes): Remove.
955
956 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
957
958         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
959         can_create_pseudo_p.
960         (*fix_trunc<mode>_i387_1): Ditto.
961         (*floathi<mode>2_1): Ditto.
962         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
963         (*fistdi2_1): Ditto.
964         (*fist<mode>2_1): Ditto.
965         (frndintxf2_floor): Ditto.
966         (*fist<mode>2_floor_1): Ditto.
967         (frndintxf2_ceil): Ditto.
968         (*fist<mode>2_ceil_1): Ditto.
969         (frndintxf2_trunc): Ditto.
970         (frndintxf2_mask_pm): Ditto.
971         (fxam<mode>2_i387_with_temp): Ditto.
972         * config/i386/sse.md (mulv16qi3): Ditto.
973         (*sse2_mulv4si3): Ditto.
974         (mulv2di3): Ditto.
975         (sse4_2_pcmpestr): Ditto.
976         (sse4_2_pcmpistr): Ditto.
977
978 2009-07-03  Jan Hubicka  <jh@suse.cz>
979
980         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
981         (mark_stmt_necessary): Set it.
982         (mark_operand_necessary): Set it.
983         (mark_control_dependent_edges_necessary): Set it.
984         (mark_virtual_phi_result_for_renaming): New function.
985         (get_live_post_dom): New function.
986         (forward_edge_to_pdom): New function.
987         (remove_dead_stmt): Fix handling of control dependences.
988         (tree_dce_init): Init new bitmap.
989         (tree_dce_done): Free it.
990
991 2009-07-02  Richard Guenther  <rguenther@suse.de>
992
993         PR bootstrap/40617
994         * tree-ssa-structalias.c (new_var_info): Initialize
995         is_restrict_var.
996
997 2009-07-02  Jan Hubicka  <jh@suse.cz>
998
999         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
1000         local.
1001
1002 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
1003
1004         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
1005         instead of recomputing it.  Adjust calls.
1006         (emit_store_flag): Adjust recursive calls.
1007
1008 2009-07-02  Richard Guenther  <rguenther@suse.de>
1009
1010         * tree-ssa-live.c (remove_unused_locals): Do not remove
1011         heap variables.
1012         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
1013         of DECL_EXTERNAL for HEAP variables.
1014         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
1015         HEAP variables.  Do not adjust RESTRICT vars.
1016         (find_what_var_points_to): Nobody cares if something
1017         points to READONLY.
1018
1019 2009-07-02  Ben Elliston  <bje@au.ibm.com>
1020
1021         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
1022         pc_low and pc_high declarations to the top of the function.
1023
1024 2009-07-01  DJ Delorie  <dj@redhat.com>
1025
1026         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
1027         registers as fixed.
1028         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
1029         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
1030         unspecified accesses to control registers.
1031         * config/mep/intrinsics.md: Regenerate.
1032         * config/mep/intrinsics.h: Regenerate.
1033         * config/mep/mep-intrin.h: Regenerate.
1034
1035 2009-07-01  Anthony Green  <green@moxielogic.com>
1036
1037         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
1038         instruction when possible.
1039         (moxie_expand_prologue): Ditto.  Also, save an instruction and
1040         some complexity by popping off of $r12 instead of $sp.
1041         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
1042         operands.
1043
1044 2009-07-01  Richard Henderson  <rth@redhat.com>
1045
1046         PR bootstrap/40347
1047         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
1048         contained no insns, reposition note before last insn.
1049
1050 2009-07-01  Richard Henderson  <rth@redhat.com>
1051
1052         PR debug/40431
1053         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
1054         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
1055
1056 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1057
1058         PR bootstrap/40558
1059         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
1060         darwin9 for printing reg addresses with %y.
1061
1062 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
1063
1064         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
1065         truncation from operands in binary operations.
1066
1067 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
1068
1069         Revert:
1070         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
1071         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
1072         subreg of op0 to the original op0.
1073
1074         * expmed.c (store_bit_field_1): Use a temporary as the destination
1075         instead of a paradoxical subreg when we need to truncate the result.
1076
1077 2009-07-01  DJ Delorie  <dj@redhat.com>
1078
1079         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
1080         names to VLIW variants.
1081         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
1082         * config/mep/intrinsics.md: Regenerate.
1083         * config/mep/intrinsics.h: Regenerate.
1084         * config/mep/mep-intrin.h: Regenerate.
1085
1086 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
1087
1088         PR debug/40462
1089         * jump.c (returnjump_p): Revert last patch.
1090         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
1091
1092 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1093
1094         PR target/40575
1095         * pa.md (casesi32p): Use jump table label to determine the offset
1096         of the jump table.
1097         (casesi64p): Likewise.
1098
1099         * pa.c (forward_branch_p): Return bool type.  Use instruction
1100         addresses when available.  Assert that INSN has a jump label.
1101         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
1102         have a jump label.
1103
1104 2009-07-01  Richard Guenther  <rguenther@suse.de>
1105
1106         PR tree-optimization/19831
1107         * tree-ssa-dce.c (propagate_necessity): Calls to functions
1108         that only act as barriers do not make any previous stores necessary.
1109         * tree-ssa-structalias.c (handle_lhs_call): Delay making
1110         HEAP variables global, do not add a constraint from nonlocal.
1111         (find_func_aliases): Handle escapes through return statements.
1112         (compute_points_to_sets): Make escaped HEAP variables global.
1113
1114 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
1115
1116         PR bootstrap/40597
1117         * expmed.c (emit_store_flag): Perform a conversion if necessary,
1118         after reducing a DImode cstore to SImode.
1119
1120 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
1121
1122         * expr.c (expand_expr_real_1): Reinstate fallthrough to
1123         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
1124
1125 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
1126
1127         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
1128         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
1129         to 0.
1130         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
1131         and umod_optab if TARGET_BSD_DIVMOD.
1132         * config/vax/lib1funcs.asm: New file.
1133         * config/vax/t-linux: New file.
1134         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
1135
1136 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
1137
1138         PR c++/40566
1139         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
1140         to type arguments that have void type.
1141
1142         PR debug/40573
1143         * dwarf2out.c (gen_formal_parameter_die): Call
1144         equate_decl_number_to_die if node is different from origin.
1145
1146 2009-06-30  Anthony Green  <green@moxielogic.com>
1147
1148         Clean up moxie port for --enable-build-with-cxx.
1149         * config/moxie/moxie.c (moxie_function_value): First two
1150         parameters are const_tree, not tree.
1151         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
1152         (REG_CLASS_NAMES): Ditto.
1153         (REGNO_REG_CLASS): Ditto.
1154         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
1155         (moxie_function_value): Fix constyness of arguments.
1156
1157 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1158
1159         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1160         finalize_size_functions before further processing.
1161         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
1162         (variable_size): Call self_referential_size on size expressions
1163         that contain a PLACEHOLDER_EXPR.
1164         (size_functions): New static variable.
1165         (copy_self_referential_tree_r): New static function.
1166         (self_referential_size): Likewise.
1167         (finalize_size_functions): New global function.
1168         * tree.c: Include tree-inline.h.
1169         (push_without_duplicates): New static function.
1170         (find_placeholder_in_expr): New global function.
1171         (substitute_in_expr) <tcc_declaration>: Return the replacement object
1172         on equality.
1173         <tcc_expression>: Likewise.
1174         <tcc_vl_exp>: If the replacement object is a constant, try to inline
1175         the call in the expression.
1176         * tree.h (finalize_size_functions): Declare.
1177         (find_placeholder_in_expr): Likewise.
1178         (FIND_PLACEHOLDER_IN_EXPR): New macro.
1179         (substitute_placeholder_in_expr): Update comment.
1180         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
1181         is true.
1182         (copy_tree_body_r): Likewise.
1183         (copy_tree_body): New static function.
1184         (maybe_inline_call_in_expr): New global function.
1185         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
1186         (maybe_inline_call_in_expr): Declare.
1187         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
1188         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
1189         GIMPLE_H.
1190
1191 2009-06-30  Richard Guenther  <rguenther@suse.de>
1192
1193         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
1194         continue walking.
1195         (propagate_necessity): Do not mark reaching defs of stores
1196         as necessary.
1197
1198 2009-06-30  Jan Hubicka  <jh@suse.cz>
1199
1200         * cfgloopanal.c (check_irred): Move into ...
1201         (mark_irreducible_loops): ... here; return true if ireducible
1202         loops was found.
1203         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
1204         (analyze_function): Try to prove loop finiteness.
1205         * cfgloop.h (mark_irreducible_loops): Update prototype.
1206         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
1207
1208 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
1209
1210         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
1211
1212 2009-06-30  Ira Rosen  <irar@il.ibm.com>
1213
1214         PR tree-optimization/40542
1215         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
1216         types.
1217
1218 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1219
1220         PR tree-optimization/40582
1221         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
1222         than useless_type_conversion_p.
1223         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
1224         proper place.
1225
1226 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1227
1228         PR middle-end/40554
1229         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
1230
1231 2009-06-30  Richard Guenther  <rguenther@suse.de>
1232
1233         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
1234         use ao_ref references.
1235         (walk_aliased_vdefs): Likewise.
1236         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
1237         * tree-ssa-dce.c (struct ref_data): Remove.
1238         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
1239         (mark_aliased_reaching_defs_necessary): Adjust.
1240         (mark_all_reaching_defs_necessary_1): Likewise.
1241
1242 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
1243
1244         PR boostrap/40597
1245         * expmed.c (emit_cstore): New name of emit_store_flag_1.
1246         (emit_store_flag_1): Extract from emit_store_flag, adjust
1247         calls to (what now is) emit_cstore.
1248         (emit_store_flag): Call emit_store_flag_1 and also use it
1249         for what used to be recursive calls.
1250
1251 2009-06-30  Wei Guozhi  <carrot@google.com>
1252
1253         PR/40416
1254         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
1255         if the target bb post dominates from bb.
1256         * config/i386/i386.c (memory_address_length): Check existence of base
1257         register before using it.
1258
1259 2009-06-30  Nick Clifton  <nickc@redhat.com>
1260             DJ Delorie  <dj@redhat.com>
1261
1262         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
1263         __FMOVD_ENABLED__ is defined.
1264         * config/sh/sh.h
1265         (TARGET_FMOVD): Provide a default definition.
1266         (MASK_FMOVD): Likewise.
1267         (TARGET_CPU_CPP_BUILTINS): Define
1268         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
1269         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
1270         two fmov instructions depending upon whether TARGET_FMOVD is
1271         enabled.
1272         (split for DF load from memory into register): Also handle
1273         MEMs which consist of REG+DISP addressing.
1274         (split for DF store from register to memory): Likewise.
1275         * config/sh/sh.opt (mfmovd): Remove this switch.
1276         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
1277         * config/sh/sh.c (sh_override_options): Do not automatically
1278         enable TARGET_MOVD for the SH2A when supporting doubles - leave
1279         that to the -mfmovd command line switch.
1280
1281         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
1282         the SH4 and SH4A.
1283         (fldi_ok): Always allow.
1284         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
1285
1286 2009-06-29  DJ Delorie  <dj@redhat.com>
1287
1288         * doc/install.texi (mep-x-elf): Correct chip's full name.
1289
1290 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
1291
1292         * doc/extend.texi: Fix typo.
1293
1294 2009-06-29  Tom Tromey  <tromey@redhat.com>
1295
1296         * dwarf2.h: Remove.
1297         * Makefile.in (DWARF2_H): New variable.
1298         (except.o): Use it.
1299         (dwarf2out.o): Likewise.
1300         (dwarf2asm.o): Likewise.
1301         * config/i386/t-i386: Use DWARF2_H.
1302         * except.c: Include elf/dwarf2.h.
1303         * unwind-dw2.c: Include elf/dwarf2.h.
1304         * dwarf2out.c: Include elf/dwarf2.h.
1305         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
1306         <dtprel>: New field.
1307         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
1308         (size_of_loc_descr): Likewise.
1309         (output_loc_operands_raw): Likewise.
1310         (output_loc_operands): Handle new dtprel field.
1311         (loc_checksum): Update.
1312         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
1313         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
1314         * unwind-dw2-fde.c: Include elf/dwarf2.h.
1315         * dwarf2asm.c: Include elf/dwarf2.h.
1316         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
1317         * config/mmix/mmix.c: Include elf/dwarf2.h.
1318         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
1319         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
1320         * config/sh/sh.c: Include elf/dwarf2.h.
1321         * config/i386/i386.c: Include elf/dwarf2.h.
1322
1323 2009-06-29  DJ Delorie  <dj@redhat.com>
1324
1325         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
1326
1327         * doc/extend.texi: Add MeP attributes and pragmas.
1328         * doc/invoke.text: Add MeP Options.
1329         * doc/contrib.texi: Add MeP contribution.
1330         * doc/md.texi: Add MeP constraints.
1331         * doc/install.texi: Add MeP target.
1332
1333 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
1334
1335         * target.h (struct gcc_target): Add frame_pointer_required field.
1336         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
1337         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
1338         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
1339         hook.
1340         * reload1.c (update_eliminables): (Ditto.).
1341         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
1342         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1343         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
1344
1345         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
1346
1347         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
1348         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1349         (arm_frame_pointer_required): New function.
1350
1351         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
1352         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1353         (avr_frame_pointer_required_p): Declare as static.
1354         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
1355
1356         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
1357         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1358         (bfin_frame_pointer_required): Make as static, change return type
1359         to bool.
1360         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
1361
1362         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
1363         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1364         (cris_frame_pointer_required): New function.
1365         
1366         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
1367
1368         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
1369         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1370         (fr30_frame_pointer_required): New function.
1371         
1372         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
1373         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1374         (frv_frame_pointer_required): Make as static, change return type
1375         to bool.
1376         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
1377
1378         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
1379         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1380         (ix86_frame_pointer_required): Make as static, change return type to
1381         bool.
1382         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
1383
1384         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
1385         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1386
1387         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
1388
1389         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
1390         
1391         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1392
1393         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1394         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1395         (mips_frame_pointer_required): Make as static.
1396         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1397         
1398         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1399         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1400         (mmix_frame_pointer_required): Mew function.
1401
1402         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1403         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1404
1405         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1406
1407         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1408
1409         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1410
1411         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1412         (CAN_ELIMINATE): Redefine.
1413         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1414         (sparc_frame_pointer_required): New function.
1415         (sparc_can_eliminate): New function.
1416         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1417
1418         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1419         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1420
1421         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1422         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1423         (xtensa_frame_pointer_required): Make as static, change return type
1424         to bool.
1425         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1426         Remove.
1427
1428 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
1429
1430         * doc/plugins.texi: Document PLUGIN_START_UNIT.
1431         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1432         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1433         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1434         (register_callback): Handle PLUGIN_START_UNIT.
1435         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1436
1437 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1438
1439         * tree.c (process_call_operands): Propagate TREE_READONLY from the
1440         operands.
1441         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1442         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1443
1444 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
1445
1446         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1447         move cost.
1448
1449 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
1450
1451         * doc/extend.texi (Additional Floating Types): __float128 is also
1452         supported on i386 targets.
1453
1454 2009-06-29  Richard Guenther  <rguenther@suse.de>
1455
1456         PR middle-end/14187
1457         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1458         flag.
1459         (pt_solutions_same_restrict_base): Declare.
1460         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1461         flag.
1462         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1463         (make_constraint_from, make_copy_constraint): Move earlier.
1464         (make_constraint_from_heapvar): New function.
1465         (make_constraint_from_restrict): Likewise.
1466         (handle_lhs_call): Use it.
1467         (find_func_aliases): Use it to track conversions to restrict
1468         qualified pointers.
1469         (struct fieldoff): Add only_restrict_pointers flag.
1470         (push_fields_onto_fieldstack): Initialize it.
1471         (create_variable_info_for): Track global restrict qualified pointers.
1472         (intra_create_variable_infos): Use make_constraint_from_heapvar.
1473         Track restrict qualified pointer arguments.
1474         (set_uids_in_ptset): Use varinfo is_global_var flag.
1475         (find_what_var_points_to): Set the vars_contains_restrict flag.
1476         Always create the points-to solution for sets including restrict tags.
1477         (pt_solutions_same_restrict_base): New function.
1478         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1479         qualified pointers use pt_solutions_same_restrict_base as
1480         additional source for disambiguation.
1481
1482 2009-06-29  Richard Guenther  <rguenther@suse.de>
1483
1484         PR middle-end/38212
1485         * alias.c (find_base_decl): Remove.
1486         (get_deref_alias_set_1): Remove restrict handling.
1487         * c-common.c (c_apply_type_quals_to_decl): Do not set
1488         DECL_POINTER_ALIAS_SET.
1489         * gimplify.c (find_single_pointer_decl_1): Remove.
1490         (find_single_pointer_decl): Likewise.
1491         (internal_get_tmp_var): Remove restrict handling.
1492         (gimple_regimplify_operands): Likewise.
1493         * omp-low.c (expand_omp_atomic_pipeline): Do not set
1494         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1495         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1496         * tree.c (restrict_base_for_decl): Remove.
1497         (init_ttree): Do not allocate it.
1498         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
1499         LABEL_DECL_UID for label decls.
1500         (copy_node_stat): Do not copy restrict information.
1501         (decl_restrict_base_lookup): Remove.
1502         (decl_restrict_base_insert): Likewise.
1503         (print_restrict_base_statistics): Likewise.
1504         (dump_tree_statistics): Do not call print_restrict_base_statistics.
1505         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1506         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1507         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1508         (LABEL_DECL_UID): Adjust.
1509         (DECL_BASED_ON_RESTRICT_P): Remove.
1510         (DECL_GET_RESTRICT_BASE): Likewise.
1511         (SET_DECL_RESTRICT_BASE): Likewise.
1512         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1513
1514         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1515         instead of DECL_POINTER_ALIAS_SET.
1516         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1517         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1518         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1519
1520 2009-06-29  Richard Guenther  <rguenther@suse.de>
1521
1522         PR tree-optimization/40579
1523         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1524         the IL to simplify has constants that overflowed.
1525
1526 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
1527
1528         PR tree-optimization/40550
1529         * tree-vect-generic.c (expand_vector_operations_1): Compute in
1530         vector_compute_type only when the size of vector_compute_type is
1531         less than the size of type.
1532
1533 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1534
1535         * fold-const.c (contains_label_1): Fix comments.
1536         (contains_label_p): Do not walk trees multiple time.
1537
1538 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1539
1540         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
1541         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
1542         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
1543         ix86_fp_comparison_operator.
1544         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
1545         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
1546         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
1547         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
1548         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
1549         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
1550         (related splits): Change predicate to ix86_fp_comparison_operator.
1551         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
1552         instead of ix86_fp_comparison_codes.
1553         (ix86_trivial_fp_comparison_operator,
1554         ix86_fp_comparison_operator): New.
1555         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
1556         (ix86_expand_compare): Eliminate last two parameters.
1557         (ix86_fp_jump_nontrivial_p): Kill.
1558         * config/i386/i386.c (put_condition_code): Eliminate call to
1559         ix86_fp_comparison_codes and subsequent assertion.
1560         (ix86_fp_comparison_codes): Eliminate.
1561         (ix86_fp_swap_condition): New.
1562         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
1563         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
1564         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
1565         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
1566         and ix86_fp_swap_condition.
1567         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
1568         Use ix86_fp_comparison_strategy.
1569         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
1570         (ix86_fp_jump_nontrivial_p): Eliminate.
1571         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
1572         call to ix86_expand_compare.
1573         (ix86_split_fp_branch, ix86_expand_setcc,
1574         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
1575         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
1576
1577 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1578
1579         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
1580         related to jump_clobbers.
1581         * config/arm/arm.md (conds): Remove jump_clob case.
1582         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
1583         splits): Change comparison_operator to arm_comparison_operator.
1584         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
1585         Eliminate.
1586
1587 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1588
1589         * dojump.c (do_compare_rtx_and_jump): Try swapping the
1590         condition for floating point modes.
1591         * expmed.c (emit_store_flag_1): Move here a bigger part
1592         of emit_store_flag.
1593         (emit_store_flag): Try swapping the condition for floating point
1594         modes.
1595         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
1596
1597 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1598
1599         * expr.c (expand_expr_real_1): Just use do_store_flag.
1600         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
1601         emit_store_flag_force.
1602         * expmed.c (emit_store_flag_force): Copy here trick
1603         previously in expand_expr_real_1.  Try reversing the comparison.
1604         (emit_store_flag_1): Work if target is NULL.
1605         (emit_store_flag): Work if target is NULL, using the result mode
1606         from the comparison.  Use split_comparison, restructure final part
1607         to simplify conditionals.
1608
1609 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1610
1611         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
1612         * dojump.c (do_jump): Change handling of floating-point
1613         ops to use just do_compare_and_jump.
1614         (split_comparison): New.
1615         (do_compare_rtx_and_jump): Add here logic coming previously
1616         in do_jump, using split_comparison.
1617
1618 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
1619
1620         PR target/40489
1621         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
1622
1623 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1624
1625         * tree-ssa-alias.c: Fix unintentional commit.
1626
1627 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1628
1629         * passes.c (execute_one_pass): Fix unintentional commit.
1630
1631 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1632
1633         * df-problems.c (df_set_seen, df_unset_seen): Delete.
1634         (df_rd_local_compute, df_md_local_compute): Inline them.
1635
1636         (df_md_scratch): New.
1637         (df_md_alloc, df_md_free): Allocate/free it.
1638         (df_md_local_compute): Only include live registers in init.
1639         (df_md_transfer_function): Prune the in-set computed by
1640         the confluence function, and the gen-set too.
1641
1642 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1643
1644         PR rtl-optimization/26854
1645         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
1646         * df-problems.c (df_rd_add_problem): Fix comment.
1647         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
1648         df_md_simulate_artificial_defs_at_top,
1649         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
1650         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
1651         df_md_transfer_function, df_md_init, df_md_confluence_0,
1652         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
1653         problem_MD, df_md_add_problem): New.
1654         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
1655         df_md_get_bb_info): New.
1656         (DF_LAST_PROBLEM_PLUS1): Adjust.
1657
1658         * Makefile.in (fwprop.o): Include domwalk.h.
1659         * fwprop.c: Include domwalk.h.
1660         (reg_defs, reg_defs_stack): New.
1661         (bitmap_only_bit_between): Remove.
1662         (process_defs): New.
1663         (process_uses): Use reg_defs and local_md instead of
1664         bitmap_only_bit_between and local_rd.
1665         (single_def_use_enter_block): New, from build_single_def_use_links.
1666         (single_def_use_leave_block): New.
1667         (build_single_def_use_links): Remove code moved to
1668         single_def_use_enter_block, invoke domwalk.
1669         (use_killed_between): Adjust comment.
1670
1671 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1672
1673         * bitmap.h (bitmap_ior_and_into): New.
1674         * bitmap.c (bitmap_ior_and_into): New.
1675
1676 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1677
1678         * domwalk.h (struct dom_walk_data): Remove all callbacks except
1679         before_dom_children_before_stmts and after_dom_children_after_stmts.
1680         Rename the two remaining callbacks to just before_dom_children and 
1681         after_dom_children. Remove other GIMPLE statement walking bits.
1682         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
1683         * graphite.c: Do not include domwalk.h.
1684         * tree-into-ssa.c (interesting_blocks): New global.
1685         (struct mark_def_sites_global_data): Remove it and names_to_rename.
1686         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
1687         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
1688         now that they're not domwalk callbacks.
1689         (rewrite_initialize_block): Rename to...
1690         (rewrite_enter_block): ... this, place after called functions.  Test
1691         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
1692         (rewrite_finalize_block): Rename to...
1693         (rewrite_leave_block): ... this, place after called functions.
1694         (rewrite_update_init_block): Rename to...
1695         (rewrite_update_enter_block): ... this, place after called functions.
1696         Test interesting_blocks, call rewrite_update_stmt and 
1697         rewrite_update_phi_arguments.
1698         (rewrite_update_fini_block): Rename to...
1699         (rewrite_leave_block): ... this, place after called functions.
1700         (rewrite_blocks): Remove last argument, simplify initialization of
1701         walk_data.
1702         (mark_def_sites_initialize_block): Rename to...
1703         (mark_def_sites_block): ... this, call mark_def_sites.
1704         (mark_def_sites_blocks): Remove argument, simplify initialization of
1705         walk_data.
1706         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
1707         (update_ssa): Likewise.
1708         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
1709         callback.
1710         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
1711         (dom_opt_initialize_block): Rename to...
1712         (dom_opt_enter_block): ... this, place after called functions.  Walk
1713         statements here, inline propagate_to_outgoing_edges.
1714         (dom_opt_finalize_block): Rename to...
1715         (dom_opt_leave_block): ... this, place after called functions.
1716         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
1717         domwalk callback.
1718         (dse_enter_block, dse_record_phi): New.
1719         (dse_record_phis): Delete.
1720         (dse_finalize_block): Rename to...
1721         (dse_leave_block): ... this.
1722         (tree_ssa_dse): Simplify initialization of walk_data.
1723         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
1724         Adjust initialization of walk_data.
1725         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
1726         * tree-ssa-loop-phiopt.c (get_non_trapping):
1727         Adjust initialization of walk_data.
1728         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
1729         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
1730         it's not a domwalk callback.
1731         (uncprop_initialize_block): Rename to...
1732         (dse_enter_block): ... this, call uncprop_into_successor_phis.
1733         (dse_finalize_block): Rename to...
1734         (dse_leave_block): ... this.
1735         (tree_ssa_uncprop): Simplify initialization of walk_data.
1736         * Makefile.in: Adjust dependencies.
1737
1738 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
1739
1740         * arm.md (casesi): Fix test for Thumb1.
1741         (thumb1_casesi_internal_pic): Likewise.
1742         (thumb1_casesi_dispatch): Likewise.
1743
1744 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
1745
1746         * config/arm/arm-cores.def: Added core cortex-m0.
1747         * config/arm/arm-tune.md: Regenerated.
1748         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
1749
1750 2009-06-26  DJ Delorie  <dj@redhat.com>
1751
1752         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
1753
1754         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
1755         the scheduler doesn't tag jump insns.
1756
1757 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1758
1759         * c-decl.c (merge_decls): Re-indent.
1760
1761 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
1762
1763         PR c/39902
1764         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
1765         Special-case decimal float constants.
1766
1767 2009-06-26  Richard Henderson  <rth@redhat.com>
1768
1769         * function.h (struct function): Add cannot_be_copied_reason,
1770         and cannot_be_copied_set.
1771         * tree-inline.c (has_label_address_in_static_1): Rename from
1772         inline_forbidden_p_2; don't set inline_forbidden_reason here.
1773         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
1774         don't set inline_forbidden_reason.
1775         (copy_forbidden): New function, split out of inline_forbidden_p.
1776         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
1777         (inline_forbidden_p): Use copy_forbidden.
1778         (tree_versionable_function_p): Likewise.
1779         (inlinable_function_p): Merge into tree_inlinable_function_p.
1780         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
1781         * ipa-cp.c (ipcp_versionable_function_p): New function.
1782         (ipcp_cloning_candidate_p): Use it.
1783         (ipcp_node_modifiable_p): Likewise.
1784
1785 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
1786
1787         * builtins.c (expand_builtin_alloca): Handle builtin alloca
1788         that is marked not to be inlined. Remove flag_mudflap use.
1789         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
1790         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
1791
1792 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
1793
1794         PR bootstrap/40338
1795         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
1796         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
1797
1798 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
1799
1800         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
1801         shared libgcc.
1802         (__mingwthr_remove_key_dtor): Likewise.
1803
1804 2009-06-26  Richard Guenther  <rguenther@suse.de>
1805
1806         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
1807
1808 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1809
1810         PR middle-end/40525
1811         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
1812         try the non-cond_exec path also.
1813
1814 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1815
1816         PR target/40468
1817         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
1818         (output_cbranch): Use new functions.
1819         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
1820         Likewise.
1821
1822 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1823             Pat Haugen  <pthaugen@us.ibm.com>
1824             Revital Eres <ERES@il.ibm.com>
1825
1826         * config/rs6000/rs6000.c (print_operand): Correct lossage message
1827         for %c error.  Add %x support to print VSX registers as a unified
1828         register set, instead of separate float and altivec registers.
1829         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
1830         %y case, and add support for VSX pre-modify addresses.
1831         (output_toc): Add assert for CONST containing an integer constant
1832         in the PLUS case.
1833         (rs6000_adjust_cost): Add POWER7 support.
1834         (insn_must_be_first_in_group): Ditto.
1835         (insn_must_be_last_in_group): Ditto.
1836         (rs6000_emit_popcount): Ditto.
1837         (rs6000_vector_mode_supported_p): Ditto.
1838
1839         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
1840         Change some of the functions called by macros to being called
1841         through a pointer, so debug functions can be inserted if
1842         -mdebug=addr or -mdebug=cost. 
1843         (rs6000_preferred_reload_class_ptr): Ditto.
1844         (rs6000_secondary_reload_class_ptr): Ditto.
1845         (rs6000_secondary_memory_needed_ptr): Ditto.
1846         (rs6000_cannot_change_mode_class_ptr): Ditto.
1847         (rs6000_secondary_reload_inner): Ditto.
1848         (rs6000_legitimize_reload_address): Ditto.
1849         (rs6000_legitimize_reload_address_ptr): Ditto.
1850         (rs6000_mode_dependent_address): Ditto.
1851         (rs6000_mode_dependent_address_ptr): Ditto.
1852
1853         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
1854         function to return true if the mode allows reg + integer
1855         addresses.
1856         (virtual_stack_registers_memory_p): New function to return true if
1857         the address refers to a virtual stack register.
1858         (rs6000_legitimate_offset_address_p): Move code to say whether a
1859         mode supports reg+int addressing to reg_offset_addressing_ok_p and
1860         call it.
1861         (rs6000_legitimate_address_p): Add checks for modes that only can
1862         do reg+reg addressing.  Start adding VSX support.
1863         (rs6000_legitimize_reload_address): Ditto.
1864         (rs6000_legitimize_address): Ditto.
1865         (rs6000_debug_legitimate_address_p): New debug functions for
1866         -mdebug=addr and -mdebug=cost.
1867         (rs6000_debug_rtx_costs): Ditto.
1868         (rs6000_debug_address_costs): Ditto.
1869         (rs6000_debug_adjust_cost): Ditto.
1870         (rs6000_debug_legitimize_address): Ditto.
1871         (rs6000_legitimize_reload_address_ptr): Point to call normal
1872         function or debug function.  Make functions called via pointer
1873         static.
1874         (rs6000_mode_dependent_address_ptr): Ditto.
1875         (rs6000_secondary_reload_class_ptr): Ditto.
1876         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
1877         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
1878         into a friendlier error.
1879         (rs6000_init_builtins): Add initial VSX support.
1880         (rs6000_adjust_cost): Fix some spacing issues.
1881
1882         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
1883         (REG_CLASS_NAMES): Ditto.
1884         (REG_CLASS_CONTENTS): Ditto.
1885         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
1886         pointer, to add -mdebug=addr support.
1887         (CANNOT_CHANGE_MODE_CLASS): Ditto.
1888         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
1889         -mdebug=addr support.
1890         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
1891         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
1892         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
1893
1894         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
1895         16-bit values.
1896         (bswapsi*): Set attribute types for load/store.  Add combiner
1897         patterns to eliminate zero extend on 64-bit.
1898         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
1899         stdbrx if the hardware supports those instructions.
1900
1901 2009-06-25  Ian Lance Taylor  <iant@google.com>
1902
1903         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
1904         (Link Options): Document -static-libstdc++.
1905
1906 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1907
1908         PR target/38731
1909         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
1910         DATA_ALIGNMENT instead.
1911
1912 2009-06-25  Richard Guenther  <rguenther@suse.de>
1913
1914         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
1915         indirect references against the callused/escaped solutions.
1916         (call_may_clobber_ref_p_1): Likewise.
1917
1918 2009-06-25  Martin Jambor  <mjambor@suse.cz>
1919
1920         PR tree-optimization/40493
1921         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
1922         (enum unscalarized_data_handling): New type.
1923         (handle_unscalarized_data_in_subtree): Return what has been done.
1924         (load_assign_lhs_subreplacements): Handle left flushes differently.
1925         (sra_modify_assign): Use unscalarized_data_handling, simplified
1926         condition determining whether to remove the statement.
1927
1928 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
1929
1930         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
1931         excerpt - @ should be doubled for texinfo.
1932
1933 2009-06-24  Ian Lance Taylor  <iant@google.com>
1934
1935         * config/arc/arc.c: Include "df.h".
1936         (arc_attribute_table): Make static.  Move higher in file.
1937         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
1938         (output_shift): Initialize n later to avoid warning.
1939         * config/arm/arm.c (arm_attribute_table): Make static.  Move
1940         higher in file.
1941         * config/avr/avr.c (avr_attribute_table): Make static.  Move
1942         higher in file.
1943         (reg_class_tab): Change array type from int to enum reg_class.
1944         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
1945         LABEL_REF.
1946         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
1947         (lshrhi3_out): Likewise.
1948         (class_likely_spilled_p): Change return type to bool.
1949         (avr_rtx_costs): Use local code variable with enum type.
1950         * config/avr/avr.md (movmemhi): Use add_reg_note.
1951         (andhi3, andsi3): Don't use AS2 with "and".
1952         (iorhi3, iorsi3): Don't use AS2 with "or".
1953         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
1954         * config/crx/crx.c: Include "df.h".
1955         (crx_attribute_table): Make static.
1956         * config/m32r/m32r.c: Include "df.h".
1957         (m32r_attribute_table): Make static.  Move higher in file.
1958         (pop): Use add_reg_note.
1959         (block_move_call): Change 0 to LCT_NORMAL in function call.
1960         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
1961         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
1962         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
1963         declare, not just when TREE_CODE is defined.
1964         * config/m68hc11/m68hc11.c: Include "expr.h".
1965         (m68hc11_attribute_table): Make static.  Move higher in file.
1966         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
1967         function call.
1968         (m68hc11_register_indirect_p): Likewise.
1969         (m68hc11_function_arg_padding): Change return type to enum
1970         direction.
1971         (emit_move_after_reload): Use add_reg_note.
1972         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
1973         (m68hc11_split_logical): Likewise.
1974         (m68hc11_rtx_costs): Add local code_and outer_code variables with
1975         enum type.
1976         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
1977         to VOIDmode in function call.
1978         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
1979         tree is defined.
1980         (m68hc11_split_logical): Update declaration.
1981         (m68hc11_function_arg_padding): Update declaration.
1982         * config/mcore/mcore.c (regno_reg_class): Change form array of int
1983         to array of enum reg_class.
1984         (mcore_attribute_table): Make static.  Move higher in file.
1985         (mcore_rtx_costs): Add cast to enum type.
1986         * config/mcore/mcore.h (regno_reg_class): Update declaration.
1987         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
1988         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
1989         in file.
1990         * config/sh/predicates.md (trapping_target_operand): Rename and to
1991         and_expr.
1992         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
1993         higher in file.
1994         * config/spu/spu.c (spu_attribute_table): Make static.  Move
1995         higher in file.
1996         * config/v850/v850.c (v850_attribute_table): Make static.  Move
1997         higher in file.
1998         (v850_rtx_costs): Use local code with enum type.
1999         (expand_epilogue): Add cast.
2000         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
2001
2002 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
2003
2004         PR target/40515
2005         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
2006         -m2a-single-only and -m2a-nofpu.
2007         * config/sh/sh.opt: Document m2a generates FPU code.  
2008
2009 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
2010
2011         * defaults.h (CAN_ELIMINATE): Provide default.
2012         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
2013         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
2014         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
2015         * config/spu/spu.h (CAN_ELIMINATE): Delete.
2016         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
2017         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
2018         * config/cris/cris.h (CAN_ELIMINATE): Delete.
2019         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
2020         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
2021         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
2022
2023 2009-06-24  DJ Delorie  <dj@redhat.com>
2024
2025         * mep-ext-cop.cpu: Fix copyright notice.
2026         * mep-default: Fix copyright notice.
2027         * mep-core: Fix copyright notice.
2028         * mep: Fix copyright notice.
2029         * mep-ivc2: Fix copyright notice.
2030         * mep-c5: Fix copyright notice.
2031
2032 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
2033
2034         * doc/contrib.texi (Contributors): 
2035
2036 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2037         
2038         PR middle-end/40501
2039         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
2040         src and dst operands if necessary.
2041
2042 2009-06-23  DJ Delorie  <dj@redhat.com>
2043
2044         Add MeP port.
2045         * config.gcc: Add mep support.
2046         * recog.c: Resurrect validate_replace_rtx_subexp().
2047         * recog.h: Likewise.
2048         * config/mep/: Add new port:
2049         * config/mep/constraints.md: New file.
2050         * config/mep/default.h: New file.
2051         * config/mep/intrinsics.h: New file.
2052         * config/mep/intrinsics.md: New file.
2053         * config/mep/ivc2-template.h: New file.
2054         * config/mep/mep-c5.cpu: New file.
2055         * config/mep/mep-core.cpu: New file.
2056         * config/mep/mep-default.cpu: New file.
2057         * config/mep/mep-ext-cop.cpu: New file.
2058         * config/mep/mep-intrin.h: New file.
2059         * config/mep/mep-ivc2.cpu: New file.
2060         * config/mep/mep-lib1.asm: New file.
2061         * config/mep/mep-lib2.c: New file.
2062         * config/mep/mep-pragma.c: New file.
2063         * config/mep/mep-protos.h: New file.
2064         * config/mep/mep-tramp.c: New file.
2065         * config/mep/mep.c: New file.
2066         * config/mep/mep.cpu: New file.
2067         * config/mep/mep.h: New file.
2068         * config/mep/mep.md: New file.
2069         * config/mep/mep.opt: New file.
2070         * config/mep/predicates.md: New file.
2071         * config/mep/t-mep: New file.
2072
2073 2009-06-23  Ian Lance Taylor  <iant@google.com>
2074
2075         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
2076         from loose_warn into c_loose_warn and from strict_warn into
2077         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
2078         --enable-build-with-cxx.  Set and substitute
2079         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
2080         * Makefile.in (CXXFLAGS): New variable.
2081         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
2082         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
2083         the default is the same as $(STRICT_WARN).
2084         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
2085         (CXX): New variable.
2086         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
2087         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
2088         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
2089         (HOST_LIBS): New variable.
2090         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
2091         (ALL_CXXFLAGS): New variable.
2092         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
2093         * doc/install.texi (Configuration): Document
2094         --enable-build-with-cxx, --with-stage1-ldflags,
2095         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
2096         * configure: Rebuild.
2097
2098 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2099
2100         * config/arm/arm.c (arm_override_options): Fix braces and formatting
2101         from previous commit.
2102
2103 2009-06-23  Ian Lance Taylor  <iant@google.com>
2104
2105         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
2106
2107 2009-06-23  Ian Lance Taylor  <iant@google.com>
2108
2109         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
2110         with ATTRIBUTE_UNUSED.
2111
2112 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2113             Pat Haugen  <pthaugen@us.ibm.com>
2114             Revital Eres  <eres@il.ibm.com>
2115
2116         * config.in (HAVE_AS_POPCNTD): Add default definition.
2117         (HAVE_AS_LWSYNC): Ditto.
2118
2119         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
2120         release number.
2121         (gcc_cv_as_powerpc_cmpb): Ditto.
2122         (gcc_cv_as_powerpc_dfp): Ditto.
2123         (gcc_cv_as_powerpc_vsx): Ditto.
2124         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
2125         supporting the popcntd/lwsync instructions.
2126         (gcc_cv_as_powerpc_lwsync): Ditto.
2127         * configure: Regenerate.
2128
2129         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
2130         -mcpu=native and -mcpu=power7.
2131         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
2132
2133         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
2134         a variable instead of a mask to reduce the number of mask bits.
2135         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2136         (-mbit-word): Ditto.
2137         (-mregnames): Ditto.
2138         * config/rs6000/rs6000.opt (-mupdate): Ditto.
2139         (-mfused-madd): Ditto.
2140
2141         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
2142         2.06 instructions.
2143         (-mvsx): New switch for VSX instructions.
2144         (-misel): Move from a variable to a mask to allow it to be set by
2145         -mcpu=.
2146
2147         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
2148         function declaration to an array declaration.
2149         (rs6000_hard_regno_nregs): New external array declaration.
2150
2151         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
2152         files included by rs6000.md.
2153
2154         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2155         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
2156
2157         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
2158         a target mask.
2159         (rs6000_debug_reg): New -mdebug= variables.
2160         (rs6000_debug_addr): Ditto.
2161         (rs6000_debug_cost): Ditto.
2162         (rs6000_pmode): New variable to hold Pmode.
2163         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
2164         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
2165         calculated at compiler start.
2166         (rs6000_hard_regno_nregs): Change function to an array which holds
2167         HARD_REGNO_NREGS calculated at compiler start.
2168         (rs6000_explicit_options): Delete isel field.
2169         (rs6000_vector_unit): New array to hold which vector unit
2170         supports arithmetic options for a given type.
2171         (rs6000_vector_mem): New array to hold which vector unit supports
2172         memory reference operations for a given type.
2173         (rs6000_vector_align): New array to given the alignment of each
2174         vector type.
2175         (power7_cost): New basic costs for power7.
2176         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
2177         (rs6000_hard_regno_nregs_internal): New function, moved from
2178         HARD_REGNO_NREGS, to calculate the number of registers each hard
2179         register takes for each type.
2180         (rs6000_debug_reg_print): New function for -mdebug=reg support.
2181         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
2182         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
2183         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
2184         unit information here so it is calculated once at compiler startup
2185         time.
2186         (rs6000_override_options): Make -misel a target mask.  Add more
2187         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
2188         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
2189         -mdebug=cost.
2190         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
2191         (rs6000_handle_option): Move -misel from variable to target mask.
2192         (rs6000_builtin_mask_for_load): Add VSX support.
2193         (rs6000_conditional_register_usage): Ditto.
2194         (USE_ALTIVEC_FOR_ARG_P): Ditto.
2195         (function_arg_boundary): Ditto.
2196         (rs6000_expand_builtin): Ditto.
2197         (def_builtin): Make abort message a little friendlier.
2198         (rs6000_emit_int_cmove): Add support for 64-bit isel.
2199
2200         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
2201         assembler support the popcntd instruction instead of a vsx
2202         instruction to enable power7 support.
2203         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
2204         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
2205         option to the assembler if -mcpu=native.
2206         (ASM_CPU_NATIVE_SPEC): Ditto.
2207         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
2208         ISA 2.06 features.
2209         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
2210         the lwsync instruction.
2211         (enum processor_type): Add PROCESSOR_POWER7.
2212         (rs6000_debug_reg): New -mdebug= options.
2213         (rs6000_debug_addr): Ditto.
2214         (rs6000_debug_cost): Ditto.
2215         (rs6000_isel): Delete.
2216         (enum rs6000_vector): New enum to say what vector unit we have.
2217         (VECTOR_UNIT_*): New macros to say which vector unit has
2218         arithmetic operations for a given type.
2219         (VECTOR_MEM_*): New macros to say which vector unit has memory
2220         operations for a given type.
2221         (TARGET_LDBRX): Whether the machine supports the ldbrx
2222         instruction.
2223         (TARGET_ISEL): Delete, -misel moved to be a mask.
2224         (TARGET_ISEL64): New macro for 64-bit isel support.
2225         (UNITS_PER_VSX_WORD): New macro.
2226         (POINTER_SIZE): Move to be an external variable, rather than
2227         calculating whether we are generating 32 ot 64-bit code.
2228         (Pmode): Ditto.
2229         (STACK_BOUNDARY): Add VSX support.
2230         (LOCAL_ALIGNMENT): Ditto.
2231         (SLOW_UNALIGNED_ACCESS): Ditto.
2232         (VSX_REGNO_P): New macro for VSX support.
2233         (VFLOAT_REGNO_P): Ditto.
2234         (VINT_REGNO_P): Ditto.
2235         (VLOGICAL_REGNO_P): Ditto.
2236         (VSX_VECTOR_MODE): Ditto.
2237         (VSX_SCALAR_MODE): Ditto.
2238         (VSX_MODE): Ditto.
2239         (VSX_MOVE_MODE): Ditto.
2240         (VSX_REG_CLASS_P): Ditto.
2241         (HARD_REGNO_NREGS): Instead of calling a function, use an array
2242         lookup.
2243         (UNITS_PER_SIMD_WORD): Add VSX support.
2244         (MODES_TIEABLE_P): Ditto.
2245         (STARTING_FRAME_OFFSET): Ditto.
2246         (STACK_DYNAMIC_OFFSET): Ditto.
2247         (EPILOGUE_USES): Ditto.
2248         (REGNO_REG_CLASS): Move to array lookup.
2249         (CLASS_MAX_NREGS): Ditto.
2250         (rs6000_vector_reg_class): Add declaration.
2251         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
2252         overlap with the floating point and Altivec registers.
2253
2254         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
2255
2256         * config/rs6000/driver-rs6000.c (asm_names): New static array to
2257         give the appropriate asm switches if -mcpu=native.
2258         (host_detect_local_cpu): Add support for "asm".
2259         (host_detect_local_cpu): Follow GNU code guidelines for name.
2260
2261         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
2262         -mbit-word to a variable instead of being a target mask.
2263
2264         * config/rs6000/sync.md (lwsync): If the assembler supports it,
2265         emit the lwsync instruction instead of emitting the instruction as
2266         an integer constant.
2267
2268         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
2269         fixuns_trundfsi2, move expander into rs6000.md.
2270
2271         * config/rs6000/rs6000.md (cpu): Add power7.
2272         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
2273         (logical predicate patterns): Change the single instruction
2274         primitives that set CR0 to be fast_compare instead of compare.
2275         (norsi*): Ditto.
2276         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
2277         (popcntddi2): Ditto.
2278         (popcount<mode>): Ditto.
2279         (floating multiply/add insns): Name the floating point
2280         multiply/add insns.
2281         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
2282         (isel_unsigned_<mode>): Ditto.
2283         (fixuns_trundfsi2): Move expander here from spe.md.
2284         (smindi3): Define if we have -misel on 64-bit systems.
2285         (smaxdi3): Ditto.
2286         (umindi3): Ditto.
2287         (umaxdi3): Ditto.
2288
2289 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
2290
2291         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
2292         extra_objs.
2293         * config/avr/avr.c (avr_current_device): New variable.
2294         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
2295         (avr_arch, mcu_type_s): Move to avr.h.
2296         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
2297         default_data_section_start fields.
2298         (avr_arch): Moved from avr.c.
2299         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
2300         library_name fields.
2301         (avr_current_device, avr_mcu_types, avr_arch_types,
2302         avr_device_to_arch, avr_device_to_data_start,
2303         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
2304         (EXTRA_SPEC_FUNCTIONS): Define.
2305         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
2306         options mapping. Use device_to_arch and device_to_data_start insted.
2307         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
2308         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
2309         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
2310         * config/avr/driver-avr.c: New file.
2311         * config/avr/avr-devices.c: New file.
2312
2313 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
2314
2315         * var-tracking.c (unshare_variable): Force initialized to
2316         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
2317         (set_variable_part): Likewise.
2318         (struct variable_union_info): Remove pos_src field.
2319         (vui_vec, vui_allocated): New variables.
2320         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
2321         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
2322         == 1 use a simpler sorting algorithm.  Compute pos field right
2323         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
2324         Avoid quadratic comparison if !flag_var_tracking_uninit.
2325         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
2326         unshare_variable unconditionally.   
2327         (dataflow_set_different_2): Removed.
2328         (dataflow_set_different): Don't traverse second hash table.
2329         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
2330         unconditionally to var_reg_set or var_mem_set.
2331         (emit_notes_in_bb): Likewise.
2332         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
2333         unshare_variable.
2334         (emit_note_insn_var_location): Don't set initialized to
2335         VAR_INIT_STATUS_INITIALIZED early.
2336         (vt_finalize): Free vui_vec if needed, clear vui_vec and
2337         vui_allocated.
2338         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
2339
2340         * tree-object-size.c (addr_object_size): Instead of checking
2341         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
2342         are no FIELD_DECLs following it.
2343
2344 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2345
2346         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
2347         order to match bswaps with signed source operands.
2348
2349 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2350
2351         * sdbout.c (sdbout_one_type): Fix braces in switch.
2352
2353 2009-06-23  Richard Guenther  <rguenther@suse.de>
2354
2355         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
2356         member.
2357         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
2358         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
2359         var_callused, callused_tree, var_storedanything, storedanything_tree,
2360         var_integer, integer_tree): Remove global variables.
2361         (new_var_info): Do not pass new id, append the new var to the
2362         global variable vector.
2363         (do_ds_constraint): Use is_global_var member of the variable-info.
2364         (new_scalar_tmp_constraint_exp): Adjust.
2365         (create_function_info_for): Likewise.
2366         (create_variable_info_for): Likewise.
2367         (find_what_var_points_to): Remove dead code.
2368         (init_base_vars): Simplify.
2369         (compute_points_to_sets): Adjust.
2370
2371 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2372
2373         * combine.c (try_combine): Dump information about the insns we're
2374         combining.
2375
2376 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2377
2378         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
2379         check when calling force_to_mode on TRUNCATE's operand.
2380
2381 2009-06-22  Ian Lance Taylor  <iant@google.com>
2382
2383         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
2384
2385 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2386
2387         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
2388
2389 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2390
2391         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2392         override library linkage flags such as -static-libgcc or
2393         -shared-libgcc.
2394
2395 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2396
2397         * config/m68k/m68k-devices.def: Add line for MCF5221x.
2398
2399 2009-06-22  Ian Lance Taylor  <iant@google.com>
2400
2401         * config/linux.opt: Put mglibc ahead of muclibc.
2402
2403         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2404         for duplicate decls.
2405
2406 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2407
2408         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2409
2410 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2411
2412         PR objc/28050
2413         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2414         instead of NULL if a parser error occurs.
2415
2416 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2417
2418         * dwarf2out.c (dwarf2_debug_hooks): Initialize
2419         non-DWARF2_DEBUGGING_INFO version.
2420
2421 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
2422
2423         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2424         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2425
2426         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
2427         (LIBGCC2_TF_CEXT): Define.
2428         (TF_SIZE): Define.
2429
2430 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2431
2432         PR target/40463
2433         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2434
2435 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2436
2437         * config/arm/arm.c (arm_override_options): Disable
2438         -mcaller-super-interworking and -mcallee-super-interworking.
2439         * doc/invoke.texi (ARM Options): Document this.
2440
2441 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2442
2443         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2444         * config/arm/constraints.md (j): New constraint for movw operands.
2445         (N): Remove thumb2 meaning.
2446         * config/arm/arm.md (*arm_movw): Delete.
2447         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2448         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2449         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2450
2451 2009-06-22  Martin Jambor  <mjambor@suse.cz>
2452
2453         PR tree-optimization/40492
2454         * tree-sra.c (sra_modify_assign): Pass zero offsets to
2455         build_ref_for_offset.
2456
2457 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
2458
2459         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2460         JUMP_TABLE_DATA_P predicates where applicable.
2461         * auto-inc-dec.c: Ditto.
2462         * builtins.c: Ditto.
2463         * caller-save.c: Ditto.
2464         * calls.c: Ditto.
2465         * cfgcleanup.c: Ditto.
2466         * cfglayout.c: Ditto.
2467         * cfgrtl.c: Ditto.
2468         * combine.c: Ditto.
2469         * combine-stack-adj.c: Ditto.
2470         * cse.c: Ditto.
2471         * cselib.c: Ditto.
2472         * dbxout.c: Ditto.
2473         * df-scan.c: Ditto.
2474         * dse.c: Ditto.
2475         * dwarf2asm.c: Ditto.
2476         * dwarf2out.c: Ditto.
2477         * emit-rtl.c: Ditto.
2478         * except.c: Ditto.
2479         * explow.c: Ditto.
2480         * expmed.c: Ditto.
2481         * expr.c: Ditto.
2482         * final.c: Ditto.
2483         * function.c: Ditto.
2484         * fwprop.c: Ditto.
2485         * gcse.c: Ditto.
2486         * genpreds.c: Ditto.
2487         * genrecog.c: Ditto.
2488         * ifcvt.c: Ditto.
2489         * ira-costs.c: Ditto.
2490         * ira-lives.c: Ditto.
2491         * jump.c: Ditto.
2492         * loop-iv.c: Ditto.
2493         * lower-subreg.c: Ditto.
2494         * modulo-sched.c: Ditto.
2495         * optabs.c: Ditto.
2496         * postreload.c: Ditto.
2497         * print-rtl.c: Ditto.
2498         * recog.c: Ditto.
2499         * reginfo.c: Ditto.
2500         * regmove.c: Ditto.
2501         * reload1.c: Ditto.
2502         * reload.c: Ditto.
2503         * reorg.c: Ditto.
2504         * rtlanal.c: Ditto.
2505         * rtl.c: Ditto.
2506         * sched-vis.c: Ditto.
2507         * sdbout.c: Ditto.
2508         * sel-sched-ir.c: Ditto.
2509         * simplify-rtx.c: Ditto.
2510         * targhooks.c: Ditto.
2511         * var-tracking.c: Ditto.
2512         * vmsdbgout.c: Ditto.
2513
2514 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2515
2516         * Makefile.in (install-plugin): Always use DESTDIR.
2517
2518 2009-06-22  Olivier Hainque  <hainque@adacore.com>
2519         
2520         * config/pa/pa.c (output_call): Don't optimize post call jumps
2521         into return address adjustments if the call may throw.
2522
2523 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
2524
2525         * arm.c (thumb1_output_casesi): New function.
2526         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2527         optimizing for size or PIC.
2528         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2529         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2530         (casesi): Handle Thumb-1 when optimizing for size or PIC.
2531         (thumb1_casesi_internal_pic): New expand rule.
2532         (thumb1_casesi_dispatch): New pattern.
2533         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2534         thumb-1 mode.
2535         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2536         in the text seciton when PIC or optimizing for size.
2537         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2538         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
2539         preservation properties of code.
2540         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
2541         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
2542         (__gnu_thumb1_case_si): New function.
2543         * t-arm (LIB1ASMSRC): Define here.
2544         (LIB1ASMFUNCS): Add some common functions.
2545         * t-arm-elf (LIB1ASMSRC): Delete.
2546         (LIB1ASMFUNCS): Append to existing set.
2547         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2548         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2549         * t-symbian (LIB1ASMFUNCS): Likewise.
2550         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2551         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2552
2553 2009-06-21  Richard Guenther  <rguenther@suse.de>
2554
2555         PR tree-optimization/38729
2556         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
2557         to loops with a single exit if -fno-expensive-optimizations.
2558
2559 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
2560
2561         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
2562         (dataflow_set): Change vars type from htab_t to shared_hash.
2563         (shared_hash_pool, empty_shared_hash): New variables.
2564         (vars_clear): Removed.
2565         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
2566         shared_hash_find_slot_unshare, shared_hash_find_slot,
2567         shared_hash_find_slot_noinsert, shared_hash_find): New
2568         static inlines.
2569         (shared_hash_unshare, shared_hash_destroy): New functions.
2570         (unshare_variable): Unshare set->vars if shared, use
2571         shared_hash_htab.
2572         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
2573         (get_init_value, find_src_set_src, dump_dataflow_set,
2574         clobber_variable_part, emit_notes_for_differences): Use
2575         shared_hash_htab.
2576         (dataflow_set_init): Remove second argument, set vars to
2577         empty_shared_hash instead of creating a new htab.
2578         (dataflow_set_clear): Call shared_hash_destroy and set vars
2579         to empty_shared_hash instead of calling vars_clear.
2580         (dataflow_set_copy): Don't call vars_copy, instead just share
2581         the src htab with dst.
2582         (variable_union): Use shared_hash_*, use initially NO_INSERT
2583         lookup if set->vars is shared.  Don't keep slot cleared before
2584         calling unshare_variable.  Unshare set->vars if needed.
2585         Even ->refcount == 1 vars must be unshared if set->vars is shared
2586         and var needs to be modified.
2587         (variable_canonicalize): New function.
2588         (dataflow_set_union): If dst->vars is empty, just share src->vars
2589         with dst->vars and traverse with variable_canonicalize to canonicalize
2590         and unshare what is needed.
2591         (dataflow_set_different): If old_set and new_set use the same shared
2592         htab, they aren't different.  If number of htab elements is different,
2593         htabs are different.  Use shared_hash_*.
2594         (dataflow_set_destroy): Call shared_hash_destroy instead of
2595         htab_delete.
2596         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
2597         second argument to dataflow_set_init.
2598         (vt_initialize): Likewise.  Initialize shared_hash_pool and
2599         empty_shared_hash, move bb in/out initialization afterwards.
2600         Use variable_htab_free instead of NULL as changed_variables del hook.
2601         (variable_was_changed): Change type of second argument to pointer to
2602         dataflow_set.  When inserting var into changed_variables, bump
2603         refcount.  Unshare set->vars if set is shared htab and slot needs to
2604         be cleared.
2605         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
2606         lookup if set->vars is shared.  Unshare set->vars if needed.
2607         Even ->refcount == 1 vars must be unshared if set->vars is shared
2608         and var needs to be modified.  Adjust variable_was_changed caller.
2609         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
2610         vars must be unshared if set->vars is shared and var needs to be
2611         modified.  Adjust variable_was_changed caller.
2612         (emit_note_insn_var_location): Don't pool_free var.
2613         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
2614         instead of 1.
2615         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
2616         free_alloc_pool on shared_hash_pool.
2617
2618 2009-06-20  Anthony Green  <green@moxielogic.com>
2619
2620         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
2621         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
2622
2623 2009-06-20  Richard Guenther  <rguenther@suse.de>
2624
2625         * tree-ssa-structalias.c (find_func_aliases): For memset use
2626         a constraint from NULL if we memset to zero.
2627         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
2628         we explicitly handle that do not read from memory.
2629         (call_may_clobber_ref_p_1): Properly handle builtins that may
2630         set errno.
2631
2632 2009-06-20  Richard Guenther  <rguenther@suse.de>
2633
2634         PR tree-optimization/40495
2635         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
2636         (new_scalar_tmp_constraint_exp): New function.
2637         (process_constraint): Do not create temporary decls.
2638         (process_all_all_constraints): Likewise.
2639         (handle_const_call): Likewise.
2640         (create_function_info_for): Do not set decl.
2641
2642 2009-06-19  Ian Lance Taylor  <iant@google.com>
2643
2644         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
2645         (rs6000_attribute_table): Make static; move before use.
2646
2647 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
2648
2649         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
2650         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
2651         Propagate the TREE_READONLY flag without overwriting it.
2652         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
2653         Propagate the TREE_READONLY flag onto the result.
2654         (process_call_operands): Move around.  Use correct constant value.
2655
2656 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2657
2658         PR target/40482
2659         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
2660         * config/arm/arm.md: Likewise.
2661
2662 2009-06-19  Ian Lance Taylor  <iant@google.com>
2663
2664         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
2665         to GIMPLE_ERROR_MARK.
2666
2667         * c-typeck.c (build_conditional_expr): Add op1_original_type and
2668         op2_original_type parameters.  Warn about using different enum types.
2669         * c-parser.c (c_parser_conditional_expression): Pass original
2670         types to build_conditional_expr.
2671         * c-tree.h (build_conditional_expr): Update declaration.
2672
2673 2009-06-19  Ian Lance Taylor  <iant@google.com>
2674
2675         * config/i386/i386.c (ix86_function_specific_save): Test that
2676         fields match values, rather than testing the values are in a
2677         certain range.
2678
2679 2009-06-19  Richard Guenther  <rguenther@suse.de>
2680
2681         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2682         ADDR_EXPR pointers.
2683         (ptr_derefs_may_alias_p): Likewise.
2684         (ptr_deref_may_alias_ref_p_1): New function.
2685         (ptr_deref_may_alias_ref_p): Likewise.
2686         (ref_maybe_used_by_call_p_1): Handle builtins that are not
2687         covered by looking at the ESCAPED solution.
2688         (call_may_clobber_ref_p_1): Likewise.
2689         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
2690         Handle NULL_TREE offset.  Do not produce redundant constraints.
2691         (process_all_all_constraints): New helper function.
2692         (do_structure_copy): Use it.
2693         (handle_lhs_call): Likewise.
2694         (find_func_aliases): Handle some builtins with pointer arguments
2695         and/or return values explicitly.
2696
2697 2009-06-19  Ian Lance Taylor  <iant@google.com>
2698
2699         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
2700
2701 2009-06-19  Ian Lance Taylor  <iant@google.com>
2702
2703         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
2704
2705 2009-06-19  Ian Lance Taylor  <iant@google.com>
2706
2707         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
2708         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
2709         version.
2710
2711         * c-decl.c (finish_decl): If -Wc++-compat, warn about
2712         uninitialized const.
2713
2714 2009-06-19  Ian Lance Taylor  <iant@google.com>
2715
2716         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
2717         all uses.
2718
2719         * c-decl.c (in_struct, struct_types): Remove.
2720         (struct c_binding): Add in_struct field.
2721         (c_binding_ptr): Define type, along with VEC.
2722         (struct c_struct_parse_info): Define.
2723         (struct_parse_info): New static variable.
2724         (bind): Initialize in_struct field.
2725         (start_struct): Remove enclosing_in_struct and
2726         enclosing_struct_types parameters.  Add
2727         enclosing_struct_parse_info parameter.  Change all callers.  Set
2728         struct_parse_info rather than in_struct and struct_types.
2729         (grokfield): If -Wc++-compat and there is a symbol binding for the
2730         field name, set the in_struct flag and push it on the
2731         struct_parse_info->fields vector.
2732         (warn_cxx_compat_finish_struct): New static function.
2733         (finish_struct): Remove enclosing_in_struct and
2734         enclosing_struct_types parameters.  Add
2735         enclosing_struct_parse_info parameter.  Change all callers.  Don't
2736         set C_TYPE_DEFINED_IN_STRUCT here.  Call
2737         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
2738         parameter.  Only push on struct_types if warn_cxx_compat.
2739         (finish_enum): Only push on struct_types if warn_cxx_compat.
2740         (declspecs_add_type): Add loc parameter.  Change all callers.
2741         Change all error calls to error_at.  Pass loc, not input_location,
2742         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
2743         defined in a struct.  If -Wc++-compat and parsing a struct, record
2744         that a typedef name was used.
2745         * c-parser.c (c_parser_declspecs): Get location to pass to
2746         declspecs_add_type.
2747         (c_parser_struct_or_union_specifier): Update calls to start_struct
2748         and finish_struct.
2749         * c-tree.h (struct c_struct_parse_info): Declare.
2750         (finish_struct, start_struct): Update declarations.
2751         (declspecs_add_type): Update declaration.
2752
2753 2009-06-19  Ian Lance Taylor  <iant@google.com>
2754
2755         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
2756         variable with an anonymous type.
2757
2758 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2759
2760         * see.c: Remove for real.
2761
2762 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2763
2764         * optabs.h (enum optab_index): Add new OTI_significand.
2765         (significand_optab): Define corresponding macro.
2766         * optabs.c (init_optabs): Initialize significand_optab.
2767         * genopinit.c (optabs): Implement significand_optab using
2768         significand?f2 patterns.
2769         * builtins.c (expand_builtin_mathfn): Handle
2770         BUILT_IN_SIGNIFICAND{,F,L}.
2771         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
2772         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2773
2774         * config/i386/i386.md (significandxf2, significand<mode>2): New
2775         expanders to implement significandf, significand and significandl
2776         built-ins as inline x87 intrinsics.
2777
2778 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
2779
2780         * config/avr/avr.c (avr_override_options): Remove setting value of
2781         PARAM_INLINE_CALL_COST.
2782
2783 2009-06-18  Richard Henderson  <rth@redhat.com>
2784
2785         PR 40488
2786         * tree-pass.h (TDF_ASMNAME): New.
2787         * tree-dump.c (dump_options): Add asmname.
2788         * doc/invoke.texi: Document it.
2789
2790         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
2791         (dump_decl_name): ...here.
2792         (dump_function_name): New flags arg; mind TDF_ASMNAME.
2793         (dump_generic_node): Update dump_function_name calls.
2794         (print_call_name): New flags arg; update all dump calls.
2795         * diagnostic.h (print_call_name): Update.
2796         * gimple-pretty-print.c (dump_gimple_call): Update.
2797
2798 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2799
2800         PR target/40470
2801         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
2802
2803 2009-06-18  Diego Novillo  <dnovillo@google.com>
2804
2805         * doc/plugins.texi: Document plugin_is_GPL_compatible.
2806         * plugin.c (str_license): Declare.
2807         (try_init_one_plugin): Assert that the symbol
2808         'plugin_is_GPL_compatible' exists.
2809
2810 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
2811
2812         * see.c: Remove.
2813         * Makefile.in (OBJS-common): Remove see.o.
2814         (see.o): Remove.
2815         * common.opt (fsee): Mark as preserved for backward compatibility.
2816         * opts.c (common_handle_option): Add OPT_fsee to the backward 
2817         compatibility section.
2818         * passes.c (init_optimization_passes, pass_see): Remove pass.
2819         * timevar.def (TV_SEE): Remove.
2820         * tree-pass.h (pass_see): Remove declaration.
2821         * doc/invoke.texi (-fsee): Remove documentation.
2822         
2823 2009-06-18  Martin Jambor  <mjambor@suse.cz>
2824
2825         * tree-sra.c: Include statistics.h
2826         (sra_stats): New variable.
2827         (sra_initialize): Clear sra_stats.
2828         (create_access_replacement): Increment sra_stats.replacements.
2829         (get_access_replacement): Do not return twice.
2830         (analyze_all_variable_accesses): Increment statistics counter by the
2831         number of scalarized aggregates.
2832         (generate_subtree_copies): Increment sra_stats.subtree_copies.
2833         (sra_modify_expr): Increment sra_stats.exprs.
2834         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
2835         (sra_modify_assign): Increment sra_stats.exprs,
2836         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
2837         (perform_intra_sra): Update statistics counters.
2838         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
2839
2840 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2841
2842         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2843         (arm_scalar_mode_supported_p): New function.
2844
2845 2009-06-18  Paul Brook  <paul@codesourcery.com>
2846             Sandra Loosemore  <sandra@codesourcery.com>
2847
2848         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
2849         (__extendhfsf2, __truncsfhf2): Define.
2850         * config/arm/fp16.c: New file.
2851         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2852         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
2853
2854 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2855
2856         * doc/extend.texi (Half-Precision): New section.
2857         * doc/invoke.texi (Option Summary): List -mfp16-format.
2858         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
2859         * config/arm/arm.opt (mfp16-format=): New.
2860         * config/arm/arm.c: Include intl.h.
2861         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
2862         (TARGET_INVALID_RETURN_TYPE): Redefine.
2863         (TARGET_PROMOTED_TYPE): Redefine.
2864         (TARGET_CONVERT_TO_TYPE): Redefine.
2865         (arm_fp16_format): Define.
2866         (all_fpus): Add entry for neon-fp16.
2867         (fp_model_for_fpu): Likewise.
2868         (struct fp16_format): Declare.
2869         (all_fp16_formats): Define.
2870         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
2871         functions.
2872         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
2873         and no ldrh.
2874         (arm_legitimate_index_p): Treat HFmode like HImode.
2875         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
2876         (coproc_secondary_reload_class): Special-case HFmode.
2877         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
2878         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
2879         (arm_init_fp16_builtins): New.
2880         (arm_init_builtins): Call it.
2881         (arm_invalid_parameter_type): New.
2882         (arm_invalid_return_type): New.
2883         (arm_promoted_type): New.
2884         (arm_convert_to_type).
2885         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
2886         format.
2887         (arm_emit_fp16_const): New function.
2888         (arm_mangle_type): Mangle __fp16 as "Dh".
2889         * config/arm/arm.h (TARGET_VFPD32): Make it know about
2890         FPUTYPE_NEON_FP16.
2891         (TARGET_NEON_FP16): New.
2892         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
2893         (enum fputype): Add FPUTYPE_NEON_FP16.
2894         (enum arm_fp16_format_type): Declare.
2895         (arm_fp16_format): Declare.
2896         (LARGEST_EXPONENT_IS_NORMAL): Define.
2897         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
2898         * config/arm/arm-modes.def (HFmode): Define.
2899         * config/arm/vfp.md: (*movhf_vfp): New.
2900         (extendhfsf2): New.
2901         (truncsfhf2): New.
2902         * config/arm/arm.md: (fpu): Add neon_fp16.
2903         (floatsihf2, floatdihf2): New.
2904         (fix_trunchfsi2, fix_trunchfdi2): New.
2905         (truncdfhf2): New.
2906         (extendhfdf2): New.
2907         (movhf): New.
2908         (*arm32_movhf): New.
2909         (*thumb1_movhf): New.
2910         (consttable_2): Add check for HFmode constants.
2911         (consttable_4): Handle HFmode constants.
2912
2913 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
2914
2915         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
2916
2917 2009-06-17  Olivier Hainque  <hainque@adacore.com>
2918
2919         * collect2.c (main): Use CONST_CAST2 to perform char ** to
2920         const char ** conversion in AIX specific section.
2921         
2922 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
2923
2924         * config/i386/i386.c (ix86_special_builtin_type): Remove
2925         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
2926         (bdesc_special_args): Updated.
2927         (ix86_init_mmx_sse_builtins): Likewise.
2928         (ix86_expand_special_args_builtin): Likewise.
2929
2930 2009-06-17  Richard Henderson  <rth@redhat.com>
2931
2932         * tree-pretty-print.c (maybe_dump_asm_name): New.
2933         (dump_decl_name): Use it.
2934         (PRINT_FUNCTION_NAME): Merge into...
2935         (dump_function_name): ... here.  Use maybe_dump_asm_name.
2936
2937 2009-06-17  Cary Coutant  <ccoutant@google.com>
2938
2939         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
2940         Change caller.
2941         * debug.c (struct gcc_debug_hooks): Change placeholder for
2942         source_line hook.
2943         (debug_nothing_int_charstar_int): Replaced by...
2944         (debug_nothing_int_charstar_int_bool): ...this.
2945         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
2946         source_line prototype.
2947         (debug_nothing_int_charstar_int): Replaced by...
2948         (debug_nothing_int_charstar_int_bool): ...this.
2949         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
2950         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
2951         Output is_stmt operand when necessary.
2952         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
2953         (notice_source_line): Add is_stmt parameter.
2954         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
2955         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
2956         Change callers.
2957         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
2958         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
2959
2960 2009-06-17  Ian Lance Taylor  <iant@google.com>
2961
2962         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
2963         Change all uses.
2964         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
2965         call uses.
2966
2967 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
2968
2969         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
2970         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
2971         tree_strip_sign_nop_conversions and
2972         tree_ssa_strip_useless_type_conversions rather than stripping
2973         the operations here.
2974         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
2975         Declare them.
2976         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
2977         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
2978         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
2979         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
2980         functions.
2981
2982 2009-06-17  Michael Eager  <eager@eagercon.com>
2983
2984         * config/rs6000/constraints.md (register_constraint "d"): New.
2985         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
2986         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2987         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
2988         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
2989         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2990         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
2991         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
2992         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
2993         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
2994         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
2995         __fctiwz): Same.
2996         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
2997         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
2998         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
2999         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
3000         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3001         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
3002         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
3003         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
3004         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
3005         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
3006         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
3007         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
3008         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
3009         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
3010
3011 2009-06-16  Ian Lance Taylor  <iant@google.com>
3012
3013         * profile.c (total_num_never_executed): Don't define.
3014         (compute_branch_probabilities): Don't count or print
3015         num_never_executed.
3016         (init_branch_prob): Don't set total_num_never_executed.
3017         (end_branch_prob): Don't print total_num_never_executed.
3018
3019 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
3020
3021         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
3022
3023 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
3024
3025         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
3026         (nabstd2_fpr): Same.
3027
3028 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
3029
3030         * expr.c (expand_assignment): Change complex type check.
3031
3032 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
3033
3034         * doc/plugins.texi (Building GCC plugins): Added new section. 
3035
3036 2009-06-17  Ian Lance Taylor  <iant@google.com>
3037
3038         * c-pch.c (get_ident): Don't set size of templ array.
3039         (pch_init): Don't set size of partial_pch array.
3040
3041         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
3042         string constant to intialize an array whose size is the length of
3043         the string.
3044
3045 2009-06-17  Richard Guenther  <rguenther@suse.de>
3046
3047         PR tree-optimization/40389
3048         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
3049         to addressable types.
3050         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
3051
3052 2009-06-17  Richard Guenther  <rguenther@suse.de>
3053
3054         PR middle-end/40460
3055         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
3056         if there is no evolution of left in the loop bail out.
3057         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
3058         chrec_fold_multiply.
3059
3060 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
3061             Janis Johnson  <janis187@us.ibm.com>
3062
3063         PR target/39254
3064         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
3065         for the symbol ref of a constant that is the source of a move
3066         - nor for any other not-obvious-label-ref constants.
3067
3068 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
3069
3070         * plugin.c (position_pass): Skip newly inserted pass during list
3071         traversal to avoid repeated insertion.
3072
3073 2009-06-16  Ian Lance Taylor  <iant@google.com>
3074
3075         * vec.h (VEC_stack_alloc): Define different version if
3076         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
3077         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
3078         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
3079         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
3080
3081 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
3082
3083         * config.gcc (extra_headers): Add ia32intrin.h for x86.
3084
3085         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
3086         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
3087         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
3088         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
3089         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
3090         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
3091         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
3092         (bdesc_special_args): Add __builtin_ia32_rdtsc and
3093         __builtin_ia32_rdtscp.
3094         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
3095         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
3096         and __builtin_ia32_rorhi.
3097         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
3098         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
3099         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
3100         (ix86_expand_args_builtin): Likewise.
3101         (ix86_expand_special_args_builtin): Likewise.
3102
3103         * config/i386/i386.md (UNSPECV_RDTSCP): New.
3104         (UNSPECV_RDTSC): Likewise.
3105         (UNSPECV_RDPMC): Likewise.
3106         (*bsr): Renamed to ...
3107         (bsr): This
3108         (*bsr_rex64): Renamed to ...
3109         (bsr_rex64): This.
3110         (rdpmc): New.
3111         (*rdpmc): Likewise.
3112         (*rdpmc_rex64): Likewise.
3113         (rdtsc): Likewise.
3114         (*rdtsc): Likewise.
3115         (*rdtsc_rex64): Likewise.
3116         (rdtscp): Likewise.
3117         (*rdtscp): Likewise.
3118         (*rdtscp_rex64): Likewise.
3119
3120         * config/i386/ia32intrin.h: New.
3121
3122         * config/i386/x86intrin.h: Include <ia32intrin.h>.
3123
3124 2009-06-16  Ian Lance Taylor  <iant@google.com>
3125
3126         * ira-build.c (copy_info_to_removed_store_destinations):
3127         Initialize parent_a.
3128
3129 2009-06-16  Ian Lance Taylor  <iant@google.com>
3130
3131         * c-decl.c (grokdeclarator): Change size_varies to bool.
3132
3133 2009-06-16  Ian Lance Taylor  <iant@google.com>
3134
3135         * sel-sched.c: Make forward declarations of move_op_hooks and
3136         fur_hooks explicitly extern.
3137
3138 2009-06-16  Ian Lance Taylor  <iant@google.com>
3139
3140         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
3141         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
3142
3143 2009-06-16  Ian Lance Taylor  <iant@google.com>
3144
3145         * resource.c (mark_referenced_resources): Change
3146         include_delayed_effects parameter to bool.  Change all callers.
3147         (mark_end_of_function_resources): Likewise.
3148         * reorg.c (insn_references_resource_p): Likewise.
3149         (insn_sets_resource_p): Likewise.
3150         * resource.h (mark_referenced_resources): Update declaration.
3151         (mark_end_of_function_resources): Update declaration.
3152
3153 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
3154
3155         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
3156
3157 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
3158
3159         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
3160         GCC can bootstrap on AIX with GNU Binutils 2.20.
3161
3162 2009-06-16  Ian Lance Taylor  <iant@google.com>
3163
3164         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
3165
3166 2009-06-16  Ian Lance Taylor  <iant@google.com>
3167
3168         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
3169         inline, not extern inline.
3170         (exact_log2): Likewise.
3171         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
3172         test CLZ_HWI.
3173         (exact_log2): Likewise, but don't test CTZ_HWI.
3174
3175 2009-06-16  Ian Lance Taylor  <iant@google.com>
3176
3177         * bitmap.c (bitmap_clear): Don't declare as inline.
3178         * gimple.c (gimplify_assign): Likewise.
3179         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
3180         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
3181         (sched_scan_info): Remove duplicate definition.
3182
3183 2009-06-16  Ian Lance Taylor  <iant@google.com>
3184
3185         * c-common.c (skip_evaluation): Don't define.
3186         (c_inhibit_evaluation_warnings): Define global variable.
3187         (overflow_warning): Check c_inhibit_evaluation_warnings rather
3188         than skip_evaluation.
3189         (convert_and_check, warn_for_div_by_zero): Likewise.
3190         * c-common.h (skip_evaluation): Don't declare.
3191         (c_inhibit_evaluation_warnings): Declare.
3192         * c-parser.c (c_parser_typeof_specifier): Set
3193         c_inhibit_evaluation_warnings rather than skip_evaluation.
3194         (c_parser_conditional_expression): Likewise.
3195         (c_parser_binary_expression): Likewise.
3196         (c_parser_sizeof_expression): Likewise.
3197         (c_parser_alignof_expression): Likewise.
3198         * c-typeck.c (build_indirect_ref): Check
3199         c_inhibit_evaluation_warnings rather than skip_evaluation.
3200         (build_conditional_expr, build_binary_op): Likewise.
3201
3202 2009-06-16  Richard Guenther  <rguenther@suse.de>
3203
3204         * tree-ssa-alias.c (is_escape_site): Remove.
3205         * tree-ssa-alias.h (enum escape_type): Remove.
3206         (is_escape_site): Likewise.
3207         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
3208         via casts and asms without deferring to is_escape_site.
3209
3210 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
3211
3212         PR middle-end/40446
3213         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
3214         use gen_lowpart if op0 has complex mode.
3215
3216 2009-06-16  Richard Guenther  <rguenther@suse.de>
3217
3218         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
3219         variables add them to ESCAPED.
3220         (find_func_aliases): Do not make all indirectly stored values escaped.
3221
3222 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
3223
3224         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
3225         make_decl_one_only.
3226
3227 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3228
3229         PR tree-optimization/40432
3230         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
3231         check whether we need to force gimple register operand.
3232
3233 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3234
3235         PR tree-optimization/40413
3236         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
3237         build_ref_for_offset.
3238         (propagate_subacesses_accross_link): Fix a typo in a comment.
3239
3240 2009-06-16  Ira Rosen  <irar@il.ibm.com>
3241
3242         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
3243         with additional parameter.
3244         * tree-vectorizer.h (enum vect_def_type): Add new value
3245         vect_nested_cycle.
3246         (enum vect_relevant): Add comments.
3247         (vect_is_simple_reduction): Add new argument.
3248         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
3249         Detect nested cycles.
3250         (vect_is_simple_reduction): Update documentation, add an argument to
3251         distinguish inner-loop reduction from nested cycle, detect nested
3252         cycles, fix printings and indentation, don't swap operands in case
3253         of nested cycle.
3254         (get_initial_def_for_reduction): Handle subtraction.
3255         (vect_create_epilog_for_reduction): Add new argument to specify
3256         reduction variable.
3257         (vect_finalize_reduction): Handle subtraction, fix comments.
3258         (vectorizable_reduction): Handle nested cycles. In case of nested
3259         cycle keep track of the reduction variable position. Call 
3260         vect_is_simple_reduction with additional parameter. Use original
3261         statement code in reduction epilogue for nested cycle. Call
3262         vect_create_epilog_for_reduction with additional parameter.
3263         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
3264         inner-loop vectorization.
3265         (vect_recog_widen_sum_pattern): Likewise.
3266         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
3267         and reductions.
3268         (vect_mark_stmts_to_be_vectorized): Likewise.
3269         (vect_get_vec_def_for_operand): Handle nested cycles.
3270
3271 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3272
3273         * doc/invoke.texi (Debugging Options): Fix option index entries
3274         for -fdump-statistics, -frandom-seed add entries for
3275         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
3276         (FRV Options): Fix entries for -mTLS, -mtls.
3277         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
3278         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
3279         (M68hc1x Options): Fix @itemx for -mnominmax.
3280         (MCore Options): Fix entry for -mno-lsim.
3281         (MMIX Options): Fix entry for -mabi=mmixware.
3282         (PDP-11 Options): Fix entry for -mbcopy-builtin.
3283
3284 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
3285
3286         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
3287         Mention the plugin mode of gengtype.
3288         * doc/gty.texi (Source Files Containing Type Information): Likewise.
3289         * gengtype.c: Updated copyright.
3290         (plugin_files, nb_plugin_files) Added new static variables.
3291         (measure_input_list) Care about plugin_files.
3292         (write_rtx_next): Added early return in plugin mode.
3293         (create_file): Updated copyright year in generated file. Added
3294         asserts.
3295         (oprintf): Added early return if NULL outf.
3296         (get_output_file_with_visibility): Care of plugin_files.
3297         (get_output_file_name): May return null.
3298         (write_local): Added early return.
3299         (put_mangled_filename): Ditto.
3300         (finish_root_table): Added check for base_files.
3301         (write_roots): Care about null when plugins.
3302         (main): Added plugin mode.
3303
3304 2009-06-15  Ian Lance Taylor  <iant@google.com>
3305
3306         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
3307         * gcov.c (read_count_file): Add braces around variables declared
3308         before label.
3309
3310         * c.opt (Wjump-misses-init): New warning.
3311         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
3312         -Wall and -Wc++-compat if not already set.
3313         (c_common_post_options): Clear warn_jump_misses_init if it was not
3314         set.
3315         * c-decl.c (struct c_binding): Change type field to a union with
3316         new label field.  Make it the first field in the struct.  Update
3317         references to type to use u.type instead.
3318         (struct c_spot_bindings): Define.
3319         (struct c_goto_bindings): Define.
3320         (c_goto_bindings_p): Define, along with VECs.
3321         (struct c_label_vars): Define.
3322         (struct c_scope): Add has_label_bindings field.
3323         (bind_label, set_spot_bindings): New static functions.
3324         (decl_jump_unsafe, update_spot_bindings): New static functions.
3325         (update_label_decls): New static function.
3326         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
3327         Update binding u.label field to shadowed field.
3328         (c_binding_start_stmt_expr): New function.
3329         (c_binding_end_stmt_expr): New function.
3330         (pushdecl): Don't call c_begin_vm_scope.
3331         (make_label): Add defining and p_label_vars parameters.  Change
3332         all callers.
3333         (lookup_label): Correct test for whether a label has not yet been
3334         defined.  Call bind_label rather than bind.
3335         (warn_about_goto): New static function.
3336         (lookup_label_for_goto): New function.
3337         (declare_label): Call bind_label rather than bind.
3338         (check_earlier_gotos): New static function.
3339         (define_label): Don't give errors about jumping into statement
3340         expressions or scopes of variably modified types.  Call
3341         set_spot_bindings and check_earlier_gotos.  Call bind_label
3342         instead of bind.  Don't set label_context_stack_se or
3343         label_context_stack_vm.
3344         (c_get_switch_bindings): New function.
3345         (c_release_switch_bindings): New function.
3346         (c_check_switch_jump_warnings): New function.
3347         (start_function): Don't set label_context_stack_se or
3348         label_context_stack_vm.
3349         (finish_function): Likewise.
3350         * c-typeck.c (label_context_stack_se): Don't define.
3351         (label_context_stack_vm): Don't define.
3352         (c_finish_goto_label): Call lookup_label_for_goto rather than
3353         lookup_label.  Don't give errors about jumping into a statement
3354         expression or the scope of a variably modified type.  Don't set
3355         label_context_stack_se or label_context_stack_vm.
3356         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
3357         fields.  Add bindings field.
3358         (c_start_case): Don't set deleted fields.  Set bindings field.
3359         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
3360         or blocked_vm.  Call c_check_switch_jump_warnings.
3361         (c_finish_case): Don't test blocked_stmt_expr field.  Call
3362         c_release_switch_bindings.
3363         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
3364         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3365         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
3366         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
3367         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3368         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
3369         (c_begin_vm_scope, c_end_vm_scope): Don't define.
3370         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
3371         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
3372         (C_DECL_UNJUMPABLE_VM): Don't define.
3373         (C_DECL_UNDEFINABLE_VM): Don't define.
3374         (struct c_label_list): Don't define.
3375         (struct c_label_context_se): Don't define.
3376         (struct c_label_context_vm): Don't define.
3377         (struct c_spot_bindings): Declare.
3378         (c_bindings_start_stmt_expr): Declare.
3379         (c_bindings_end_stmt_expr): Declare.
3380         (lookup_label_for_goto): Declare.
3381         (c_get_switch_bindings, c_release_switch_bindings): Declare.
3382         (c_check_switch_jump_warnings): Declare.
3383         (label_context_stack_se, label_context_stack_vm): Don't declare.
3384         (c_finish_goto_label): Update declaration.
3385         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
3386         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
3387         (Warning Options): Document -Wjump-misses-init.
3388
3389 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
3390
3391         * tree-object-size.c (addr_object_size): Fix a pasto in the last
3392         change.
3393
3394 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3395
3396         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3397
3398 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3399
3400         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3401
3402 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3403
3404         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3405
3406 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3407
3408         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3409         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3410         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3411         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
3412         * dwarf2asm.c (dw2_force_const_mem): Update call to
3413         make_decl_one_only.
3414         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3415         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3416         * langhooks.c (lhd_comdat_group): Remove.
3417         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3418         * tree.h (DECL_COMDAT_GROUP): New.
3419         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3420         (tree_decl_with_vis): Add comdat_group. Remove one_only.
3421         (make_decl_one_only): Change signature.
3422         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3423         make_decl_one_only.
3424         (make_decl_one_only): Change signature.
3425         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3426
3427 2009-06-15  Richard Guenther  <rguenther@suse.de>
3428
3429         PR middle-end/40439
3430         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3431
3432 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3433
3434         * tree-ssa-math-opts.c: Remove extra divide.
3435
3436 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3437
3438         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3439
3440 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3441
3442         * passes.c: Add bswap pass.
3443         * tree-pass.h: Add pass_optimize_bswap declaration.
3444         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3445         Include rtl.h, expr.h and optabs.h for optab_handler check.
3446         (struct symbolic_number, pass_optimize_bswap): New definition.
3447         (do_shift_rotate, verify_symbolic_number_p): New functions.
3448         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3449         (gate_optimize_bswap): New function.
3450         * tree.c (widest_int_cst_value): New function.
3451         * tree.h (widest_int_cst_value): Prototype added.
3452
3453 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
3454
3455         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3456         REG_EQUAL/REG_EQUIV notes.
3457
3458 2009-06-14  Richard Guenther  <rguenther@suse.de>
3459
3460         PR middle-end/40389
3461         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3462         has its address taken if NRV was applied and it is addressable.
3463         * tree-ssa-structalias.c (get_constraint_for_address_of): New
3464         function split out from ...
3465         (get_constraint_for_1): ... here.
3466         (handle_rhs_call): Use it to mark the return slot escaped if
3467         it is addressable and NRV was applied.
3468
3469 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3470
3471         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3472         Change first argument type to location_t.
3473         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3474         Do not set input_location.
3475         Use loc instead of input_location throughout.
3476
3477 2009-06-13  Richard Guenther  <rguenther@suse.de>
3478
3479         PR tree-optimization/40421
3480         * tree-predcom.c (should_unroll_loop_p): Remove.
3481         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3482
3483 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3484
3485         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3486         Add location argument.
3487
3488 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3489
3490         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3491         build_decl.
3492         * config/s390/s390.c (s390_build_builtin_va_list): Same.
3493         (s390_gimplify_va_arg): Pass location to create_artificial_label.
3494         * config/spu/spu-protos.h: Add location to
3495         spu_resolve_overloaded_builtin.
3496         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3497         spu_build_builtin_va_list.
3498         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3499         argument.  Pass location to build_function_call_vec.
3500         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3501         build_decl.
3502         (emit_fpu_switch): Same.
3503         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3504         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3505         to build_decl and create_artificial_label.
3506         (xtensa_gimplify_va_arg_expr): Same.
3507         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3508         (xstormy16_gimplify_va_arg_expr): Same.
3509         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3510         * config/arm/arm.c (arm_build_builtin_va_list): Same.
3511         * config/mips/mips.c (mips_build_builtin_va_list): Same.
3512         (mips16_build_function_stub): Same.
3513         (mips16_build_call_stub): Same.
3514
3515 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
3516
3517         PR target/40327
3518         * arm/constraints.md (Pa, Pb): New constraints.
3519         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
3520         split pattern to deal with them.
3521
3522 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
3523
3524         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3525         fix index entry for -Xpreprocessor.
3526
3527 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3528
3529         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3530         Add location argument to build_decl call.
3531         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3532         (rs6000_init_builtins): Same.
3533         (spe_init_builtins): Same.
3534         (rs6000_gimplify_va_arg): Add location argument to
3535         create_artificial_label call.
3536
3537 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
3538
3539         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
3540         * combine-stack-adj.c (pass_stack_adjustments): Use it.
3541         * Makefile.in: Fix GGC dependency for gcse.o.
3542
3543 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3544
3545         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
3546         * gimple-pretty-print.c (dump_gimple_stmt): Same.
3547         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
3548         created.
3549         * c-parser.c (c_parser_binary_expression): Use current column while
3550         building binary operations.
3551         * common.opt (fshow-column): Enable by default.
3552         * tree-vrp.c (check_array_ref): Use warning_at.
3553         (check_array_bounds): Use location from call back if expr has no
3554         location.
3555         * tree.h: Add location argument to maybe_fold_*.
3556         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
3557         (maybe_fold_offset_to_array_ref): Add location argument and use it.
3558         (maybe_fold_offset_to_component_ref): Same.
3559         (maybe_fold_offset_to_reference): Same.
3560         (maybe_fold_offset_to_address): Same.
3561         (maybe_fold_stmt_indirect): Same.
3562         (maybe_fold_stmt_addition): Same.
3563         (fold_stmt_r): Pass location to maybe_fold_*.
3564         (fold_gimple_assign): Same.
3565         * c-tree.h: Add location argument to finish_decl,
3566         default_function_array_conversion, store_init_value.
3567         * c-decl.c (define_label): Use error_at.
3568         (c_make_fname_decl): Pass location to finish_decl.
3569         (finish_decl): New location argument.
3570         (build_compound_literal): Pass location to store_init_value.
3571         (grokdeclarator): Pass location to finish_decl.
3572         (grokfield): Same.
3573         * c-typeck.c (array_to_pointer_conversion): New location argument.
3574         (function_to_pointer_conversion): Same.
3575         (default_function_array_conversion): Same.
3576         (parser_build_unary_op): Pass location to overflow_warning.
3577         (parser_build_binary_op): Same.  Use warning_at.
3578         (build_unary_op): Pass location to array_to_pointer_conversion.
3579         (build_c_cast): Pass location to digest_init.
3580         (build_modify_expr): New location argument.
3581         (convert_for_assignment): Same.
3582         (store_init_value): Same.
3583         (digest_init): Same.
3584         (output_init_element): Pass location to digest_init and
3585         array_to_pointer_conversion.
3586         (c_finish_return): Pass location to convert_for_assignment.
3587         * gimplify.c (gimplify_conversion): Pass location to
3588         maybe_fold_offset_to_address.
3589         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
3590         to maybe_fold_stmt_addition.
3591         * c-omp.c (c_finish_omp_atomic): Pass new location to
3592         build_modify_expr.
3593         (c_finish_omp_for): Same.
3594         * c-common.c (overflow_warning): New argument.
3595         * c-common.h: New argument to build_modify_expr, overflow_warning.
3596         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
3597         finish_decl.
3598         (c_parser_initializer): Pass location to
3599         default_function_array_conversion.
3600         (c_parser_initelt): Same.
3601         (c_parser_initval): Same.
3602         (c_parser_asm_operands): Same.
3603         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
3604         (c_parser_conditional_expression): Same.
3605         (c_parser_binary_expression): Add location info to stack.  Use it.
3606         (c_parser_unary_expression): Pass location to
3607         default_function_array_conversion, parser_build_unary_op,
3608         build_indirect_ref, c_parser_postfix_expression_after_primary.
3609         (c_parser_postfix_expression_after_primary): New location argument.
3610         Use it.
3611         (c_parser_expression_conv): Pass location to
3612         default_function_array_conversion.
3613         (c_parser_expr_list): Same.
3614         (c_parser_omp_atomic): Same.
3615         (c_parser_omp_for_loop): Same.
3616         * c-tree.h: (struct c_declarator): Add comment to id_loc.
3617         (build_array_declarator): New argument.
3618         * c-decl.c (build_array_declarator): Add location argument.
3619         (grokdeclarator): Set id_loc for cdk_array.
3620         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
3621         build_array_declarator.
3622         * tree.c (build_omp_clause): Add location argument.
3623         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
3624         (OMP_CLAUSE_LOCATION): New macro.
3625         (struct tree_omp_clause): Add location field.
3626         (build_omp_clause): Add argument.
3627         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
3628         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
3629         build_omp_clause.
3630         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
3631         (cp_parser_omp_clause_collapse): Same.
3632         (cp_parser_omp_clause_default): Same.
3633         (cp_parser_omp_clause_if): Same.
3634         (cp_parser_omp_clause_nowait): Same.
3635         (cp_parser_omp_clause_num_threads): Same.
3636         (cp_parser_omp_clause_ordered): Same.
3637         (cp_parser_omp_clause_schedule): Same.
3638         (cp_parser_omp_clause_untied): Same.
3639         (cp_parser_omp_for_loop): Same.
3640         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3641         * c-tree.h (c_start_case): Add location argument.
3642         (c_process_expr_stmt): Same.
3643         (c_finish_goto_*): Same.
3644         * tree-parloops.c (initialize_reductions): Pass location to
3645         build_omp_clause.
3646         (create_parallel_loop): Same.
3647         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
3648         (gfc_trans_omp_reduction_list): Same.
3649         (gfc_trans_omp_clauses): Same.
3650         (gfc_trans_omp_do): Same.
3651         * c-typeck.c (c_finish_goto_label): Same.
3652         (c_finish_goto_ptr): New location argument.
3653         (c_start_case): Same.
3654         (emit_side_effect_warnings): Same.
3655         (c_process_expr_stmt): Same.
3656         (c_finish_stmt_expr): Same.
3657         (c_finish_omp_clauses): Use error_at instead of error.
3658         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
3659         build_omp_clause.
3660         * c-omp.c (c_split_parallel_clauses): New location argument.
3661         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
3662         to build_omp_clause.
3663         (convert_local_reference_stmt): Same.
3664         (convert_gimple_call): Same.
3665         * c-common.h (c_split_parallel_clauses): New argument.
3666         * c-parser.c (c_parser_statement_after_labels): Pass location to
3667         c_finish_goto_label.
3668         (c_parser_switch_statement): Pass location to c_start_case.
3669         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
3670         and c_process_expr_stmt.
3671         (c_parser_omp_variable_list): Add location argument.
3672         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
3673         (c_parser_omp_clause_default): Same.
3674         (c_parser_omp_clause_if): Same.
3675         (c_parser_omp_clause_num_threads): Same.
3676         (-c_parser_omp_clause_ordered): Same.
3677         (c_parser_omp_clause_reduction): Pass location to
3678         c_parser_omp_variable_list.
3679         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
3680         (c_parser_omp_clause_untied): Same.
3681         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
3682         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3683
3684         * c-tree.h (check_for_loop_decls, undeclared_variable,
3685         build_component_ref, build_array_ref, build_external_ref,
3686         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
3687         build_conditional_expr, build_compound_expr, c_cast_expr,
3688         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
3689         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
3690         argument.
3691         * c-semantics.c (build_stmt): Same.
3692         (build_case_label): Same.
3693         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
3694         (undeclared_variable): New argument.
3695         (make_label): Same.
3696         (lookup_label): Pass location on down.
3697         (define_label): Same.
3698         (finish_decl): Same.
3699         (build_compound_literal): Same.
3700         (finish_struct): Same.
3701         (finish_function): Do not set location here.
3702         (check_for_loop_decls): New argument.
3703         * tree.c (save_expr): Set location.
3704         (build_empty_stmt): New argument.
3705         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
3706         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
3707         * builtins.c (gimplify_va_arg_expr): Use locations.
3708         (expand_builtin_sync_operation): Same.
3709         * c-typeck.c (build_component_ref): New argument.
3710         (build_array_ref): Same.
3711         (build_external_ref): Same.
3712         (c_expr_sizeof_expr): Same.
3713         (c_expr_sizeof_type): Same.
3714         (parser_build_unary_op): Same.
3715         (build_conditional_expr): Same.
3716         (build_compound_expr): Pass location on down.
3717         (build_compound_expr): New argument.
3718         (build_c_cast): Same.
3719         (c_cast_expr): Same.
3720         (build_asm_expr): Same.
3721         (c_finish_return): Same.
3722         (c_process_expr_stmt): Pass location on down.
3723         (c_finish_stmt_expr): New argument.
3724         (push_clenaup): Same.
3725         (c_finish_omp_parallel): Same.
3726         (c_finish_omp_task): Same.
3727         * gimplify.c (gimplify_call_expr): Pass location on down.
3728         * c-omp.c (c_finish_omp_master): New argument.
3729         (c_finish_omp_critical): Same.
3730         (c_finish_omp_ordered): Same.
3731         (c_finish_omp_barrier): Same.
3732         (-c_finish_omp_taskwait): Same.
3733         (c_finish_omp_atomic): Same.
3734         (c_finish_omp_flush): Same.
3735         * tree-inline.c (copy_tree_body_r): Pass location on down.
3736         (inline_forbidden_p): Remove use of input_location.
3737         * c-gimplify.c (c_build_bind_expr): New argument.
3738         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
3739         (c_sizeof_or_alignof_type): New argument.
3740         (c_alignof_expr): Same.
3741         (build_va_arg): Same.
3742         (c_add_case_label): Same.
3743         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
3744         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
3745         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
3746         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
3747         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
3748         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
3749         New argument.
3750         * stub-objc.c (objc_build_selector_expr): Same.
3751         (objc_build_throw_stmt): Same.
3752         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
3753         (c_parser_initelt): Same.
3754         (c_parser_compound_statement): Same.
3755         (c_parser_compound_statement_nostart): Same.
3756         (c_parser_label): Same.
3757         (c_parser_statement_after_labels): Same.
3758         (c_parser_if_body): Same.
3759         (c_parser_else_body): Same.
3760         (c_parser_if_statement): Same.
3761         (c_parser_switch_statement): Same.
3762         (c_parser_while_statement): Same.
3763         (c_parser_do_statement): Same.
3764         (c_parser_for_statement): Same.
3765         (c_parser_asm_statement): Same.
3766         (c_parser_conditional_expression): Same.
3767         (c_parser_binary_expression): Same.
3768         (c_parser_cast_expression): Same.
3769         (c_parser_unary_expression): Same.
3770         (c_parser_sizeof_expression): Same.
3771         (c_parser_alignof_expression): Same.
3772         (c_parser_postfix_expression): Same.
3773         (c_parser_expression): Same.
3774         (c_parser_objc_receiver): Same.
3775         (c_parser_omp_variable_list): Same.
3776         (c_parser_omp_structured_block): Same.
3777         (c_parser_omp_atomic): New argument.
3778         (c_parser_omp_barrier): Same.
3779         (c_parser_omp_critical): Same.
3780         (c_parser_omp_flush): Pass location on down.
3781         (c_parser_omp_for_loop): New argument.
3782         (c_parser_omp_for): Same.
3783         (c_parser_omp_master): Same.
3784         (c_parser_omp_ordered): Same.
3785         (c_parser_omp_sections_scope): Same.
3786         (c_parser_omp_sections): Same.
3787         (c_parser_omp_parallel): Same.
3788         (c_parser_omp_single): Same.
3789         (c_parser_omp_task): Same.
3790         (c_parser_omp_taskwait): Pass location on down.
3791         (c_parser_omp_construct): Same.
3792         (c_parser_omp_threadprivate): Same.
3793         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
3794         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
3795         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
3796         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
3797         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
3798         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
3799         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
3800         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
3801         config/i386/i386.c, stmt.c:
3802         Add location argument to the following function definitions and/or
3803         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
3804         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
3805         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
3806         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
3807         do_case, c_finish_bc_stmt, build_compound_literal,
3808         build_function_call.
3809         * c-decl.c (build_compound_literal): Add location argument.
3810         Make all diagnostic calls use location.
3811         (start_struct): Same.
3812         (finish_struct): Same.
3813         (start_enum): Same.
3814         (build_enumerator): Same.
3815         (start_function): Same.
3816         (grokdeclarator): Make all diagnostic calls use location.
3817         (store_parm_decls_oldstyle): Same.
3818         * c-typeck.c (build_function_call): Add location argument.
3819         Make all diagnostic calls use location.
3820         (do_case): Same.
3821         (c_finish_bc_stmt): Same.
3822         * tree-nested.c (get_trampoline_type): Add argument.
3823         Pass location to build_decl.
3824         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
3825         * rtl.h (RTL_LOCATION): New.
3826         * c-common.c (c_add_case_label): Add location argument.
3827         Make all diagnostic calls use location.
3828         * c-common.h: Add location argument to make_fname_decl, do_case,
3829         c_add_case_label, build_function_call, resolve_overloaded_builtin.
3830         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
3831         Set it appropriately for every case.  Pass enum_loc to start_enum
3832         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
3833         parser_xref_tag.
3834         (c_parser_struct_or_union_specifier): Save location.  Use it for
3835         start_struct, finish_struct, and parser_xref_tag.
3836
3837 2009-06-12  Ian Lance Taylor  <iant@google.com>
3838
3839         * fold-const.c (fold_unary): Rename local variable and to and_expr.
3840
3841         * c-opts.c (c_common_handle_option): For -Wc++-compat set
3842         cpp_opts->warn_cxx_operator_names.
3843
3844 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3845
3846         PR tree-opt/38865
3847         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
3848         is returns NULL and OP is a VCE, look through the VCE.
3849
3850 2009-06-12  Ian Lance Taylor  <iant@google.com>
3851
3852         PR bootstrap/40430
3853         * collect2.c (main): Use CONST_CAST2 in code inside #if
3854         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
3855
3856 2009-06-12  Joey Ye  <joey.ye@intel.com>
3857
3858         PR middle-end/39146
3859         * cfgexpand.c (get_decl_align_unit): Update
3860         max_used_stack_slot_alignment with align instead of
3861         stack_alignment_needed.
3862
3863         * function.c (assign_stack_local_1): Update
3864         max_used_stack_slot_alignment with alignment_in_bits instead
3865         of stack_alignment_needed.
3866         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
3867         here.
3868
3869 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
3870
3871         * dwarf2out.c (last_var_location_insn): New variable.
3872         (dwarf2out_end_epilogue): Clear last_var_location_insn.
3873         (dwarf2out_var_location): Don't record anything after last real
3874         insn.  Only change labels if there were any real instructions
3875         in between last note and this one, or if changed sections.
3876
3877 2009-06-11  Richard Henderson  <rth@redhat.com>
3878
3879         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
3880         note when storing the frame pointer in a register.
3881         (FRP): Don't redefine to nothing for epilogue.
3882         (alpha_expand_epilogue): Mark register and sp restores.
3883         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
3884
3885         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
3886         when gen_lowpart is needed.
3887
3888 2009-06-11  Richard Henderson  <rth@redhat.com>
3889
3890         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
3891
3892         * dwarf2out.c (need_data_align_sf_opcode): New.
3893         (div_data_align): Move earlier.
3894         (def_cfa_1, reg_save): Use it.
3895
3896 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
3897
3898         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
3899         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
3900         (ix86_handle_option): Handle OPT_mcrc32.
3901         (ix86_target_string): Add -mcrc32.
3902         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
3903
3904         * config/i386/i386.h (TARGET_CRC32): New.
3905
3906         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
3907         (sse4_2_crc32di): Likewise.
3908
3909         * config/i386/i386.opt (mcrc32): New.
3910
3911         * doc/invoke.texi: Document -mcrc32.
3912
3913 2009-06-11  Richard Henderson  <rth@redhat.com>
3914
3915         * common.opt (gdwarf-): Accept a version number.
3916         * doc/invoke.texi (gdwarf-): Update docs.
3917         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
3918         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
3919         version level, and record it.
3920
3921         * dwarf2.h (DW_CIE_VERSION): Remove.
3922         * dwarf2out.c (DWARF_VERSION): Remove.
3923         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
3924         (output_call_frame_info): Use CIE version 3 for dwarf3,
3925         or if the return register column is out of range for version 1.
3926         (dwarf_stack_op_name): Add all dwarf3 values.
3927         (DEBUG_PUBTYPES_SECTION): New.
3928         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
3929         encoding change for dwarf3.
3930         (output_die) [dw_val_class_die_ref]: Likewise.
3931         (output_compilation_unit_header): Emit correct version for dwarf3.
3932         (output_line_info): Likewise.
3933         (output_pubnames): Update for DWARF_VERSION removal.
3934         (output_aranges): Likewise.
3935         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
3936         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
3937         (dwarf2out_finish): Likewise.
3938
3939 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3940
3941         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
3942         in r148403.
3943
3944 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3945
3946         PR c/39252
3947         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
3948         * builtins.c (expand_builtin_unreachable): New function.
3949         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
3950         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
3951         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
3952         successors.
3953         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
3954         searching for missing barriers.
3955
3956 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3957
3958         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
3959         when -fprofile-generate* was passed.
3960         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3961
3962 2009-06-11  Anthony Green  <green@moxielogic.com>
3963
3964         * config/moxie/moxie.md: Define length attribute for all instructions.
3965         (rCC): Define.
3966         (*b<cond:code>): Support limited branch ranges for new PC-relative
3967         branch instructions.
3968         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
3969
3970 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
3971
3972         * config/i386/i386.c (min_insn_size): Use get_attr_length
3973         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.