OSDN Git Service

* c-common.c (max_tinst_depth): Increase default to 1024.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-07-21  Jason Merrill  <jason@redhat.com>
2
3         * c-common.c (max_tinst_depth): Increase default to 1024.
4
5 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
6
7         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
8         (vec_unpacku_float_lo_v4si): Ditto.
9
10 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
11
12         PR target/40811
13         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
14         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
15         (builtin_description): Add __builtin_ia32_cvtudq2ps.
16         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
17
18 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
19
20         PR tree-optimization/40813
21         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
22         it.
23
24 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
25
26         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
27         with a NOP_EXPR if needed.
28
29 2009-07-21  Paul Brook <paul@codesourcery.com>
30
31         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
32         Terminate debug dump with newline.
33
34 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35
36         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
37         Cast "1" to unsigned HOST_WIDE_INT.
38         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
39         deposit length to the maximum length - lsb.  Extend length if
40         HOST_BITS_PER_WIDE_INT is 32.
41
42 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
43
44         * cgraph.h (constant_pool_htab): New function.
45         (constant_descriptor_tree): Move from varasm.c.
46         * varasm.c (constant_pool_htab): New function.
47         (constant_descriptor_tree): Move to cgraph.h.
48
49 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
50
51         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
52
53 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
54
55         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
56         $(VARRAY_H).
57
58 2009-07-20  Xinliang David Li  <davidxl@google.com>
59
60         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
61
62 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
63
64         * config/mips/mips.md (move_type): Add arith.
65         (type): Handle arith.
66         (zero_extendsidi2): Rename this into ...
67         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
68         (zero_extendsidi2): New expander.
69         (*zero_extendsidi2_dext): New pattern.
70
71 2009-07-20  Nick Clifton  <nickc@redhat.com>
72
73         * config.gcc (mips64-*-*): Add definition of tm_defines in order
74         to set MIPS_ABI_DEFAULT.
75         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
76
77 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
78
79         * tree-object-size.c (addr_object_size): Handle unions with
80         array in it as last field of structs in __bos (, 1) as __bos (, 0).
81
82         PR tree-optimization/40792
83         * tree.c (build_function_type_skip_args): Remove bogus assert.
84
85 2009-07-20  Jan Hubicka  <jh@suse.cz>
86             Martin Jambor  <mjambor@suse.cz>
87
88         * cgraph.h (combined_args_to_skip): New field.
89         * cgraph.c (cgraph_create_virtual_clone): Properly handle
90         combined_args_to_skip and args_to_skip.
91         * tree-inline.c (update_clone_info): New function.
92         (tree_function_versioning): Call update_clone_info.
93         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized functions.
94         (cgraph_materialize_all_clones): More extensive dumping, working
95         with combined_args_to_skip rather than args_to_skip.
96
97 2009-07-20  Ira Rosen  <irar@il.ibm.com>
98
99         * tree-vectorizer.h (vectorizable_condition): Add parameters.
100         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
101         (get_initial_def_for_reduction): Likewise.
102         (vectorizable_reduction): Skip the check of first operand in case
103         of COND_EXPR. Add check that it is outer loop vectorization if
104         nested cycle was detected. Call vectorizable_condition() for 
105         COND_EXPR. If reduction epilogue cannot be created do not fail for
106         nested cycles (if it is not double reduction). Assert that there
107         is only one type in the loop in case of COND_EXPR. Call
108         vectorizable_condition() to vectorize COND_EXPR.
109         * tree-vect-stmts.c (vectorizable_condition): Update comment.
110         Add parameters. Allow nested cycles if called from 
111         vectorizable_reduction(). Use reduction vector variable if provided.
112         (vect_analyze_stmt): Call vectorizable_reduction() before
113         vectorizable_condition().
114         (vect_transform_stmt): Update call to vectorizable_condition().
115
116 2009-07-20  Christian Bruel  <christian.bruel@st.com>
117         
118         * config/sh/sh.opt (-mfmovd): Resurrect and document.
119         * doc/invoke.texi (-mfmovd): Likewise.
120         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
121         
122 2009-07-20  Jan Hubicka  <jh@suse.cz>
123
124         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
125         when handling SSA name.
126
127 2009-07-19  Jan Hubicka  <jh@suse.cz>
128
129         PR tree-optimization/40676
130         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
131         virtual PHIs in empty BBs.
132
133 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
134
135         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
136         re-expanded the compound use gen_lowpart instead to convert to the
137         desired mode.
138
139 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
140
141         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
142         OUTER_CONST arguments.
143         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
144         the new wider mode will be masked off.
145         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
146
147 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
148
149         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
150         high-order bits are zero.
151
152 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
153
154         * combine.c (simplify_shift_const_1): Split code to determine
155         shift_mode into ...
156         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
157         new bits shifted in are identical to the old sign bit.
158
159 2009-07-18  Richard Guenther  <rguenther@suse.de>
160
161         PR c/40787
162         * gimplify.c (gimplify_call_expr): Reject code using results from
163         functions returning void.
164
165 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
166
167         * doc/md.texi: Document the new PowerPC "es" constraint.
168         Document that "m" can include automodified addresses on this target,
169         and explain how %U must be used.  Extend the "Q" and "Z" documentation
170         to suggest "es" as well as "m".
171         * config/rs6000/constraints.md (es): New memory constraint.
172         (Q, Z): Update strings to match new documentation.
173
174 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
175
176         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
177         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
178         * config/rs6000/predicates.md (volatile_mem_operand): Use
179         offsettable_nonstrict_memref_p.
180         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
181         (*floatunssidf2_internal): Likewise.
182         (*fix_truncdfsi2_internal): Likewise.
183         (*fix_trunctfsi2_internal): Likewise.
184
185 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
186
187         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
188         atmega32u2 devices.
189         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
190
191 2009-07-17  Richard Guenther  <rguenther@suse.de>
192
193         PR c/40401
194         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
195         (pass_warn_unused_result): Likewise.
196         (TODO_set_props): Remove.
197         * omp-low.c (diagnose_omp_structured_block_errors): Change to
198         run as a pass.
199         (pass_diagnose_omp_blocks): Define.
200         * c-decl.c (pop_file_scope): Do not finalize the CU here.
201         (c_gimple_diagnostics_recursively): Remove.
202         (finish_function): Do not call it.
203         (c_write_global_declarations): Continue after errors.
204         Finalize the CU here.
205         * c-gimplify.c (c_genericize): Do not gimplify here.
206         * c-common.c (c_warn_unused_result): Move ...
207         * tree-cfg.c (do_warn_unused_result): ... here.
208         (run_warn_unused_result): New function.
209         (gate_warn_unused_result): New function.
210         (pass_warn_unused_result): New pass.
211         * c-common.h (c_warn_unused_result): Remove.
212         * flags.h (flag_warn_unused_result): Declare.
213         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
214         * opts.c (flag_warn_unused_result): Initialize to false.
215         * toplev.c (compile_file): Add comment.
216         * omp-low.c (create_omp_child_function): Do not register
217         the function with the frontend.
218         (diagnose_omp_structured_block_errors): Prepare to be
219         called as optimization pass.
220         (gate_diagnose_omp_blocks): New function.
221         (pass_diagnose_omp_blocks): New pass.
222         * cgraph.h (cgraph_optimize): Remove.
223         (cgraph_analyze_function): Likewise.
224         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
225         * cgraphunit.c (cgraph_lower_function): Lower nested functions
226         before their parents here.
227         (cgraph_finalize_function): Not here.
228         (cgraph_analyze_function): Gimplify functions here.
229         (cgraph_finalize_compilation_unit): Continue after errors.
230         Optimize the callgraph from here.
231         (cgraph_optimize): Make static.
232         * langhooks.c (write_global_declarations): Finalize the CU.
233         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
234         (gimplify_function_tree): Assert we gimplify only once.
235         Set PROP_gimple_any property.
236         * tree-nested.c (gimplify_all_functions): New function.
237         (lower_nested_functions): Gimplify all nested functions.
238         * gimple.h (diagnose_omp_structured_block_errors): Remove.
239         * passes.c (init_optimization_passes): Add pass_warn_unused_result
240         and pass_diagnose_omp_blocks after gimplification.  Do not
241         set TODO_set_props on all_lowering_passes.
242         (execute_one_pass): Do not handle TODO_set_props.
243         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
244         (gimplify.o): Add tree-pass.h dependency.
245         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
246         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
247         (unsave_r): Likewise.
248         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
249         temporary variable.
250
251 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
252
253         * doc/service.texi (Service): Restore previously removed link,
254         which isn't broken after all.
255
256 2009-07-17  Richard Guenther  <rguenther@suse.de>
257
258         PR tree-optimization/40321
259         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
260         PHI nodes to the maximal set.
261         (make_values_for_phi): Add PHI arguments to the maximal set.
262         (execute_pre): Dump PHI_GEN and the maximal set.
263
264 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
265
266         PR c++/40780
267         * gimplify.c (gimplify_conversion): Don't change non-conversions into
268         VIEW_CONVERT_EXPR.
269
270 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
271
272         * doc/extend.texi (Nested Functions): Replace broken link with
273         textual reference.
274         * doc/service.texi (Service): Remove broken link.
275
276 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
277
278         PR bootstrap/40781
279         * builtins.c (expand_builtin_memcmp): Use loc instead of
280         EXPR_LOCATION (exp).
281         (expand_builtin_strncmp): Likewise.
282
283 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
284             Manuel López-Ibáñez  <manu@gcc.gnu.org>
285
286         PR 40435 
287         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
288         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
289         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
290         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
291         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
292         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
293         tree-inline.c, c-common.c, c-common.h, gimple.c,
294         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
295         convert.c: Add location argument to fold_{unary,binary,ternary},
296         fold_build[123], build_call_expr, build_size_arg,
297         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
298         fold_build1_initializer, fold_build2_initializer,
299         fold_build3_initializer, fold_build_call_array,
300         fold_build_call_array_initializer, fold_single_bit_test,
301         omit_one_operand, omit_two_operands, invert_truthvalue,
302         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
303         combine_comparisons, fold_builtin_*, fold_call_expr,
304         build_range_check, maybe_fold_offset_to_address, round_up,
305         round_down.
306
307 2009-07-16  Jason Merrill  <jason@redhat.com>
308
309         PR libstdc++/37907
310         * c-common.c (c_common_reswords): Add __is_standard_layout
311         and __is_trivial.
312         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
313         * doc/implement-cxx.texi: New.
314         * doc/gcc.texi: Include it.
315
316 2009-07-16  DJ Delorie  <dj@redhat.com>
317
318         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
319         compares that may be indirectly affected by previous instructions.
320
321 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
322
323         * builtins.c (do_mpc_arg2): New.
324         (fold_builtin_2): Fold builtin cpow.
325         * real.h (HAVE_mpc_pow): New.
326
327 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
328
329         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
330         comparison to skip unprofitable schedule
331
332 2009-07-16  Simon Baldwin  <simonb@google.com>
333
334         * gcc.c (option_map): New flag -no-canonical-prefixes.
335         * (display_help): Print help text for new flag.
336         * (process_command): Move options translation and language specifics
337         and handle new flag early.  Use it to set a function pointer to a
338         prefix builder.  Replace make_relative_prefix calls with calls to
339         the function pointed to.  Ignore new flag in regular options handling.
340         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
341
342 2009-07-15  DJ Delorie  <dj@redhat.com>
343
344         * config/mep/mep.md (sibcall_internal): Change register to avoid
345         argument registers.
346         (sibcall_value_internal): Likewise.
347
348 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
349
350         PR rtl-optimization/40710
351         * resource.c (mark_target_live_regs): Reset DF problem to LR.
352
353 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
354
355         * config/mips/mips.md (*extenddi_truncate<mode>,
356         *extendsi_truncate<mode>): Change type attribute to move_type
357         with shift_shift.  Split out code handling exts from here ...
358         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
359         pattern.
360         (*extendhi_truncateqi): Change type attribute to move_type with
361         shift_shift.  Split out code handling exts from here ...
362         (*extendhi_truncateqi_exts): ... to this new pattern.
363
364 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
365
366         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
367         instead of "and" with inverted sign bit mask value.  Use
368         "nonimmediate_operand" for operand 1 and operand 2 predicate.
369         Allocate registers only for operand 4 and operand 5.
370
371 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
372
373         PR middle-end/40747
374         * fold-const.c (fold_cond_expr_with_comparison): When folding
375         < and <= to MIN, make sure the MIN uses the same type as the
376         comparison's operands.
377
378 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
379
380         * arm.md (ior_xor): New code iterator.
381         (split for ior/xor with shift and zero-extend): New split pattern.
382         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
383
384 2009-07-15  Richard Guenther  <rguenther@suse.de>
385
386         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
387         offset member.
388
389 2009-07-15  Richard Guenther  <rguenther@suse.de>
390
391         PR middle-end/40753
392         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
393
394 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
395
396         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
397         handle 2.6.30 kernel.
398
399 2009-07-15  DJ Delorie  <dj@redhat.com>
400
401         * config/mep/mep.md (sibcall_internal): Change register to allow
402         for 24-bit addresses.
403         (sibcall_value_internal): Likewise.
404
405 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
406         
407         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
408         that are enabled/disabled by the flags introduced by a previous patch.
409         
410 2009-07-14  DJ Delorie  <dj@redhat.com>
411
412         * config/mep/mep.md (sibcall_internal): Include non-toggling
413         non-jmp case.
414         (sibcall_value_internal): Likewise.
415
416 2009-07-14  Taras Glek  <tglek@mozilla.com>
417             Rafael Espindola  <espindola@google.com>
418
419         * doc/sourcebuild.texi: Document install-plugin target.
420         * configure.ac: Added install-plugin target to language makefiles.
421         * configure: Regenerate.
422         * Makefile.in: (install-plugin): Install more headers,
423         depend on lang.install-plugin.
424
425 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
426
427         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
428         translation.
429         
430 2009-07-14  DJ Delorie  <dj@redhat.com>
431
432         * config/mep/mep.c (mep_vliw_jmp_match): New function.
433         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
434         * config/mep/mep.md (sibcall_internal): Change test from
435         mep_vliw_mode_match to mep_vliw_jmp_match.
436         (sibcall_value_internal): Likewise.
437
438 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
439
440         * config/i386/sse.md (copysign<mode>3): New expander.
441         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
442         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
443         Use ix86_build_const_vector.
444         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
445         IX86_BUILTIN_CPYSGNPD.
446         (builtin_description): Add __builtin_ia32_copysignps and
447         __builtin_ia32_copysignpd.
448         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
449         and BUILT_IN_COPYSIGNF.
450
451 2009-07-13  Jason Merrill  <jason@redhat.com>
452
453         * builtins.c (can_trust_pointer_alignment): New fn.
454         (get_pointer_alignment): Factor it out from here.
455         * tree.h: Declare it.
456
457 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
458
459         * config/rs6000/predicates.md (offsettable_mem_operand): Test
460         RTX_AUTOINC class.
461
462 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
463
464         PR debug/40705
465         PR c++/403057
466         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
467
468 2009-07-14  Richard Guenther  <rguenther@suse.de>
469             Andrey Belevantsev <abel@ispras.ru>
470
471         PR middle-end/40745
472         * cfgexpand.c (partition_stack_vars): Do not bother to update
473         alias information when not optimizing.
474
475 2009-07-14  Richard Guenther  <rguenther@suse.de>
476             Andrey Belevantsev <abel@ispras.ru>
477
478         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
479         (pt_solution_set): Likewise.
480         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
481         * tree-ssa-structalias.c (pt_solution_set): New function.
482         * final.c (rest_of_clean_state): Free SSA data structures.
483         * print-rtl.c (print_decl_name): Remove.
484         (print_mem_expr): Implement in terms of print_generic_expr.
485         * alias.c (ao_ref_from_mem): New function.
486         (rtx_refs_may_alias_p): Likewise.
487         (true_dependence): Query alias-export info.
488         (canon_true_dependence): Likewise.
489         (write_dependence_p): Likewise.
490         * tree-dfa.c (get_ref_base_and_extent): For void types leave
491         size unknown.
492         * emit-rtl.c (component_ref_for_mem_expr): Remove.
493         (mem_expr_equal_p): Use operand_equal_p.
494         (set_mem_attributes_minus_bitpos): Do not use
495         component_ref_for_mem_expr.
496         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
497         (update_alias_info_with_stack_vars): Likewise.
498         (partition_stack_vars): Call update_alias_info_with_stack_vars.
499         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
500         explicitly nor clear stmt operands.
501         Free the decl-to-pointer map.
502         * tree-optimize.c (execute_free_datastructures): Do not free
503         SSA data structures here.
504         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
505         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
506         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
507         dependencies.
508         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
509
510 2009-07-13  DJ Delorie  <dj@redhat.com>
511
512         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
513         unrolling at the right iteration count.
514
515         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
516         calculations.
517
518 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
519         
520         * haifa-sched.c (rank_for_schedule): Introduced flags to
521         enable/disable individual scheduling heuristics.
522         * common.opt: Introduced flags to enable/disable individual
523         heuristics in the scheduler.    
524         * doc/invoke.texi: Introduced flags to enable/disable individual
525         heuristics in the scheduler.
526         
527 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
528
529         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
530         config/i386/mingw-tls.c.
531         * config/i386/mingw-tls.c: Removed.
532
533 2009-07-13  Ira Rosen  <irar@il.ibm.com>
534
535         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
536         checks access only relevant statements.
537         (vectorizable_reduction): Likewise.
538
539 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
540
541         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
542         just for 32-bit case.
543
544 2009-07-12  Jan Hubicka  <jh@suse.cz>
545
546         PR tree-optimization/40585
547         * except.c (expand_resx_expr): When there already is resume
548         instruction, produce linked list.
549         (build_post_landing_pads): Assert that resume is empty.
550         (connect_post_landing_pads): Handle resume lists.
551         (dump_eh_tree): Dump resume list.
552
553 2009-07-12  Ira Rosen  <irar@il.ibm.com>
554
555         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
556         with additional argument.
557         * tree-vectorizer.h (enum vect_def_type): Add
558         vect_double_reduction_def.
559         (vect_is_simple_reduction): Add argument.
560         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
561         indentation.
562         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
563         vect_is_simple_reduction with additional argument.
564         (vect_analyze_loop_operations): Handle exit phi nodes in case of
565         double reduction.
566         (reduction_code_for_scalar_code): Handle additional codes by
567         returning ERROR_MARK for them. Fix comment and indentation.
568         (vect_is_simple_reduction): Fix comment, add argument to specify
569         double reduction. Detect double reduction.
570         (get_initial_def_for_induction): Fix indentation.
571         (get_initial_def_for_reduction): Fix comment and indentation.
572         Handle double reduction. Create initial definitions that do not
573         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
574         (vect_create_epilog_for_reduction): Fix comment, add argument to
575         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
576         epilogue result extraction. Create double reduction phi node and
577         replace relevant uses.
578         (vectorizable_reduction): Call vect_is_simple_reduction with
579         additional argument. Fix indentation. Update epilogue code treatment
580         according to the changes in reduction_code_for_scalar_code. Check
581         for double reduction. Call vect_create_epilog_for_reduction with
582         additional argument.
583         * tree-vect-stmts.c (process_use): Handle double reduction, update
584         documentation.
585         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
586         (vect_get_vec_def_for_operand): Likewise.
587
588 2009-07-12  Danny Smith  <dansmister@gmail.com>
589
590         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
591         dllexport if !TREE_PUBLIC.
592         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
593
594 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
595
596         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
597         (avr_extra_arch_macro) Remove declatation.
598         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
599         (avr_extra_arch_macro) Declare as static.
600         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
601
602 2009-07-11  Jan Hubicka  <jh@suse.cz>
603
604         PR middle-end/48388
605         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
606
607 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
608
609         PR debug/40713
610         * dwarf2out.c (dw_fde_struct): Add in_std_section and
611         cold_in_std_section bits.
612         (dwarf2out_begin_prologue): Initialize them.
613         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
614         if already covered by text_section or cold_text_section range.
615
616         PR rtl-optimization/40667
617         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
618         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
619         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
620         * config/i386/i386.c (ix86_minimum_alignment): New function.
621         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
622         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
623         * emit-rtl.c (gen_reg_rtx): Likewise.
624         * function.c (assign_parms): Likewise.  If nominal_type needs
625         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
626         rather than passed_type's alignment.
627
628         PR target/40668
629         * function.c (assign_parm_setup_stack): Adjust
630         MEM_OFFSET (data->stack_parm) if promoted_mode is different
631         from nominal_mode on big endian.
632
633 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
634
635         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
636
637 2009-07-10  DJ Delorie  <dj@redhat.com>
638
639         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
640
641 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
642
643         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
644         attribute.
645         (thumb2_cbnz): Likewise.
646
647 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
648
649         PR target/39079
650         * config.gcc (supported_defaults): Add synci.
651         (with_synci): Add validation.
652         (all_defaults): Add synci.
653         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
654         ISA_HAS_SYNCI.
655         (synci): Same.
656         * config/mips/mips.opt (msynci): New option.
657         * config/mips/mips.c (mips_override_options): Warn on use of
658         -msynci for targets that do now support it.
659         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
660         msynci.
661         * gcc/doc/invoke.texi (-msynci): Document the new option.
662         * doc/install.texi (--with-synci): Document the new option.
663
664 2009-07-10  Richard Guenther  <rguenther@suse.de>
665
666         PR tree-optimization/40496
667         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
668         the PHI result with a compatible type.
669
670 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
671
672         PR 25509
673         PR 40614
674         * c.opt (Wunused-result): New.
675         * doc/invoke.texi: Document it.
676         * c-common.c (c_warn_unused_result): Use it.
677
678 2009-07-09  DJ Delorie  <dj@redhat.com>
679
680         * targhooks.c (default_target_can_inline_p): Rename from
681         default_target_option_can_inline_p.
682         * targhooks.h (default_target_can_inline_p): Likewise.
683         * target-def.h (TARGET_CAN_INLINE_P): Rename from
684         TARGET_OPTION_CAN_INLINE_P.
685         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
686         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
687         (mep_target_can_inline_p): Rename from
688         mep_target_option_can_inline_p.
689
690         PR target/40626
691         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
692         registers used to pass vectors.
693
694         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
695
696 2009-07-09  Tom Tromey  <tromey@redhat.com>
697
698         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
699         * config/mmix/mmix.c: Include dwarf2.h.
700         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
701         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
702         * config/sh/sh.c: Include dwarf2.h.
703         * config/i386/i386.c: Include dwarf2.h.
704         * Makefile.in (DWARF2_H): Remove 'elf'.
705         * except.c: Include dwarf2.h.
706         * unwind-dw2.c: Include dwarf2.h.
707         * dwarf2out.c: Include dwarf2.h.
708         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
709         * unwind-dw2-fde.c: Include dwarf2.h.
710         * dwarf2asm.c: Include dwarf2.h.
711
712 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
713
714         * haifa-sched.c (insn_finishes_cycle_p): New static function.
715         (max_issue): Use it.
716         * sched-int.h (struct sched_info: insn_finishes_block_p): New
717         scheduler hook.
718         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
719         (region_sched_info): Update.
720         * sched-ebb.c (ebb_sched_info): Update.
721         * modulo-sched.c (sms_sched_info): Update.
722         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
723
724 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
725
726         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
727
728 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
729
730         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
731
732 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
733
734         PR middle-end/40692
735         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
736         arg1 with arg01 if arg1 is already INTEGER_CST.
737
738 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
739
740         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
741         Transform (and (truncate)) into (truncate (and)).
742
743 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
744
745         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
746         creating LHS paradoxical subregs.  Fix surrounding returns to
747         use NULL_RTX rather than 0.
748
749 2009-07-08  DJ Delorie  <dj@redhat.com>
750
751         * config/mep/mep.c: (mep_option_can_inline_p): New.
752         (TARGET_OPTION_CAN_INLINE_P): Define.
753
754 2009-07-08  Mark Wielaard  <mjw@redhat.com>
755
756         PR debug/40659
757         * dwarf2out.c (add_data_member_location_attribute): When we have
758         only a constant offset don't emit a new location description using
759         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
760         dwarf_version > 2.
761
762 2009-07-08  Richard Henderson  <rth@redhat.com>
763
764         PR target/38900
765         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
766         (enum reg_class): Add CLOBBERED_REGS.
767         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
768         * config/i386/i386.c (ix86_conditional_register_usage): Moved
769         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
770         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
771         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
772         force 64-bit sibcalls into R11.
773         * config/i386/constraints.md (U): New constraint.
774         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
775         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
776         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
777
778 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
779
780         * basic-block.h (dump_regset, debug_regset): Remove duplicate
781         prototypes.
782         * c-objc-common.h (c_initialize_diagnostics): Ditto.
783         * ebitmap.h (dump_ebitmap): Ditto.
784         * optabs.h (optab_libfunc): Ditto.
785         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
786         * tree-flow.h (vect_can_force_dr_alignment_p,
787         get_vectype_for_scalar_type): Ditto.
788         (vectorize_loops): Move prototype to ...
789         * tree-vectorizer.h: ... here. Also, adjust comment.
790         (vect_set_verbosity_level): Remove duplicate prototype.
791         * tree-ssa-loop.c: Include tree-vectorizer.h.
792         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
793
794 2009-07-08  Nick Clifton  <nickc@redhat.com>
795
796         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
797         forward slash.
798
799 2009-07-08  DJ Delorie  <dj@redhat.com>
800
801         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
802         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
803         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
804         written to.
805         * config/mep/intrinsics.md: Regenerated.
806         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
807         registers when asm() or calls are detected.
808
809 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
810
811         PR c++/31246
812         * gimplify.c (gimplify_expr): Propagate no_warning flag when
813         gimplifying.
814         * gimple (gimple_build_call_from_tree): Likewise.
815         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
816         no_warning flag before warning.
817
818 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
819
820         * tree.c (set_expr_locus): Remove.
821         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
822         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
823         EXPR_LOCATION.
824         * gimplify.c (internal_get_tmp_var): Likewise.
825         (gimplify_call_expr): Likewise.
826         (gimplify_one_sizepos): Likewise.
827
828 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
829
830         PR debug/40666
831         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
832         to variables for debugging purposes.
833
834 2009-06-23  Mark Loeser  <mark@halcy0n.com>
835
836         PR build/40010
837         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
838
839 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
840
841         * pretty-print.c (pp_base_format): Remove %J.
842         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
843         gcc_cxxdiag_char_table): Likewise.
844         (init_dynamic_diag_info): Likewise.
845
846 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
847
848         * pretty-print.c (pp_base_format): Remove %H.
849         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
850         gcc_cxxdiag_char_table): Likewise.
851         (init_dynamic_diag_info): Likewise.
852         * config/mep/mep.c (mep_select_section): Likewise.
853
854 2009-07-07  Duncan Sands  <baldrick@free.fr>
855
856         * final.c (pass_clean_state): Give the pass a name.
857         * passes.c (pass_rest_of_compilation): Likewise.
858         * tree-optimize.c (pass_all_optimizations): Likewise.
859
860 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
861
862         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
863         an extra 'decl' for error_at.
864
865 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
866
867         PR middle-end/40669
868         * tree-tailcall.c (adjust_return_value_with_ops,
869         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
870         if it has complex or vector type.
871
872 2009-07-07  Olivier Hainque  <hainque@adacore.com>
873
874         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
875         pthread symbols.
876
877 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
878
879         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
880
881 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
882
883         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
884         * c-decl.c: Likewise.
885         * function.c: Likewise.
886         * varasm.c: Likewise.
887         * tree-ssa.c: Likewise.
888         * c-common.c: Likewise.
889         * tree-cfg.c: Likewise.
890         * config/spu/spu.c: Likewise.
891         * config/ia64/ia64.c: Likewise.
892         * config/v850/v850.c: Likewise.
893
894 2009-07-06  DJ Delorie  <dj@redhat.com>
895
896         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
897         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
898         unspecified accesses to control registers.
899         * config/mep/intrinsics.md: Regenerate.
900         * config/mep/intrinsics.h: Regenerate.
901         * config/mep/mep-intrin.h: Regenerate.
902
903 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
904
905         * c-lex.c: Replace %H by an explicit location. Update all calls.
906         * c-common.c: Likewise.
907         * c-decl.c: Likewise.
908         * c-typeck.c: Likewise.
909         * fold-const.c: Likewise.
910         * gimplify.c: Likewise.
911         * stmt.c: Likewise.
912         * tree-cfg.c: Likewise.
913         * tree-ssa-loop-niter.c: Likewise.
914         * tree-vrp.c: Likewise.
915         * value-prof.c: Likewise.
916
917 2009-07-06  Diego Novillo  <dnovillo@google.com>
918
919         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
920         if it has one.  Handle cases where VAR does not have an
921         annotation or cfun is NULL.
922
923 2009-07-06  Diego Novillo  <dnovillo@google.com>
924
925         * tree.c: Include debug.h.
926         (initialize_tree_contains_struct): New.
927         (init_ttree): Call it.
928         (tree_node_structure_for_code): Factor out of ...
929         (tree_node_structure): ... here.
930         * treestruct.def (TS_PHI_NODE): Remove.
931         (TS_GIMPLE_STATEMENT): Remove.
932
933 2009-07-06  Diego Novillo  <dnovillo@google.com>
934
935         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
936         (debug_tree_chain): Handle cycles.
937
938 2009-07-06  Nick Clifton  <nickc@redhat.com>
939             DJ Delorie  <dj@redhat.com>
940
941         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
942         __FMOVD_ENABLED__ is defined.
943         * config/sh/sh.h
944         (TARGET_FMOVD): Provide a default definition.
945         (MASK_FMOVD): Likewise.
946         (TARGET_CPU_CPP_BUILTINS): Define
947         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
948         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
949         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
950         (split for DF load from memory into register): Also handle
951         MEMs which consist of REG+DISP addressing.
952         (split for DF store from register to memory): Likewise.
953         (movsf_ie): Always use single fp_mode.
954         * config/sh/sh.c (sh_override_options): Do not automatically
955         enable TARGET_MOVD for the SH2A when supporting doubles - leave
956         that to the -mfmovd command line switch.
957         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
958         (fldi_ok): Always allow.
959         * config/sh/sh.opt (mfmovd): Remove this switch.
960         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
961
962 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
963             Kaz Kojima  <kkojima@gcc.gnu.org>
964
965         PR rtl-optimization/30807
966         * postreload.c (reload_combine): For every new use of REG_SUM,
967         record the use of BASE.
968
969 2009-07-06  Jan Hubicka  <jh@suse.cz>
970
971         * params.def: Revert my accidental commit at 2009-06-30.
972
973 2009-07-04  Ian Lance Taylor  <iant@google.com>
974
975         PR target/40636
976         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
977         EXPORTED_CONST.
978         (mingw_format_attribute_overrides): Likewise.
979
980 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
981
982         PR debug/40596
983         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
984         don't check cfa.reg.  Instead of cfa.indirect use
985         fde && fde->drap_reg != INVALID_REGNUM test.
986
987 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
988
989         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
990
991 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
992
993         PR target/40587
994         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
995
996 2009-07-03  Richard Guenther  <rguenther@suse.de>
997
998         PR tree-optimization/40640
999         * tree-switch-conversion.c (build_arrays): Perform arithmetic
1000         in original type.
1001
1002 2009-07-03  Jan Hubicka  <jh@suse.cz>
1003
1004         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
1005         for size, reduce amount of inlining.
1006
1007 2009-07-03  Richard Guenther  <rguenther@suse.de>
1008
1009         PR middle-end/34163
1010         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
1011         if t +- x is known to not overflow and the conversion widens the
1012         operation.
1013         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
1014
1015 2009-07-03  Jan Hubicka  <jh@suse.cz>
1016
1017         * ipa-pure-const.c (analyze): Update loop optimizer init.
1018         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
1019         try_remove_empty_loop, remove_empty_loops): Remove.
1020         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
1021         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
1022         to mark regular loops as neccesary.
1023         (degenerate_phi_p): New function.
1024         (propagate_necessity, remove_dead_phis): Use it.
1025         (forward_edge_to_pdom): Likewise.
1026         (eliminate_unnecessary_stmts): Take care to remove uses of results of
1027         virtual PHI nodes that became unreachable.
1028         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
1029         * tree-flow.h (remove_empty_loops): Remove.
1030         * passes.c (init_optimization_passes): Remove.
1031
1032 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
1033
1034         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
1035         can_create_pseudo_p.
1036         (*fix_trunc<mode>_i387_1): Ditto.
1037         (*floathi<mode>2_1): Ditto.
1038         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
1039         (*fistdi2_1): Ditto.
1040         (*fist<mode>2_1): Ditto.
1041         (frndintxf2_floor): Ditto.
1042         (*fist<mode>2_floor_1): Ditto.
1043         (frndintxf2_ceil): Ditto.
1044         (*fist<mode>2_ceil_1): Ditto.
1045         (frndintxf2_trunc): Ditto.
1046         (frndintxf2_mask_pm): Ditto.
1047         (fxam<mode>2_i387_with_temp): Ditto.
1048         * config/i386/sse.md (mulv16qi3): Ditto.
1049         (*sse2_mulv4si3): Ditto.
1050         (mulv2di3): Ditto.
1051         (sse4_2_pcmpestr): Ditto.
1052         (sse4_2_pcmpistr): Ditto.
1053
1054 2009-07-03  Jan Hubicka  <jh@suse.cz>
1055
1056         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
1057         (mark_stmt_necessary): Set it.
1058         (mark_operand_necessary): Set it.
1059         (mark_control_dependent_edges_necessary): Set it.
1060         (mark_virtual_phi_result_for_renaming): New function.
1061         (get_live_post_dom): New function.
1062         (forward_edge_to_pdom): New function.
1063         (remove_dead_stmt): Fix handling of control dependences.
1064         (tree_dce_init): Init new bitmap.
1065         (tree_dce_done): Free it.
1066
1067 2009-07-02  Richard Guenther  <rguenther@suse.de>
1068
1069         PR bootstrap/40617
1070         * tree-ssa-structalias.c (new_var_info): Initialize
1071         is_restrict_var.
1072
1073 2009-07-02  Jan Hubicka  <jh@suse.cz>
1074
1075         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
1076         local.
1077
1078 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
1079
1080         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
1081         instead of recomputing it.  Adjust calls.
1082         (emit_store_flag): Adjust recursive calls.
1083
1084 2009-07-02  Richard Guenther  <rguenther@suse.de>
1085
1086         * tree-ssa-live.c (remove_unused_locals): Do not remove
1087         heap variables.
1088         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
1089         of DECL_EXTERNAL for HEAP variables.
1090         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
1091         HEAP variables.  Do not adjust RESTRICT vars.
1092         (find_what_var_points_to): Nobody cares if something
1093         points to READONLY.
1094
1095 2009-07-02  Ben Elliston  <bje@au.ibm.com>
1096
1097         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
1098         pc_low and pc_high declarations to the top of the function.
1099
1100 2009-07-01  DJ Delorie  <dj@redhat.com>
1101
1102         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
1103         registers as fixed.
1104         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
1105         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
1106         unspecified accesses to control registers.
1107         * config/mep/intrinsics.md: Regenerate.
1108         * config/mep/intrinsics.h: Regenerate.
1109         * config/mep/mep-intrin.h: Regenerate.
1110
1111 2009-07-01  Anthony Green  <green@moxielogic.com>
1112
1113         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
1114         instruction when possible.
1115         (moxie_expand_prologue): Ditto.  Also, save an instruction and
1116         some complexity by popping off of $r12 instead of $sp.
1117         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
1118         operands.
1119
1120 2009-07-01  Richard Henderson  <rth@redhat.com>
1121
1122         PR bootstrap/40347
1123         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
1124         contained no insns, reposition note before last insn.
1125
1126 2009-07-01  Richard Henderson  <rth@redhat.com>
1127
1128         PR debug/40431
1129         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
1130         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
1131
1132 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1133
1134         PR bootstrap/40558
1135         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
1136         darwin9 for printing reg addresses with %y.
1137
1138 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
1139
1140         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
1141         truncation from operands in binary operations.
1142
1143 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
1144
1145         Revert:
1146         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
1147         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
1148         subreg of op0 to the original op0.
1149
1150         * expmed.c (store_bit_field_1): Use a temporary as the destination
1151         instead of a paradoxical subreg when we need to truncate the result.
1152
1153 2009-07-01  DJ Delorie  <dj@redhat.com>
1154
1155         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
1156         names to VLIW variants.
1157         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
1158         * config/mep/intrinsics.md: Regenerate.
1159         * config/mep/intrinsics.h: Regenerate.
1160         * config/mep/mep-intrin.h: Regenerate.
1161
1162 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
1163
1164         PR debug/40462
1165         * jump.c (returnjump_p): Revert last patch.
1166         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
1167
1168 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1169
1170         PR target/40575
1171         * pa.md (casesi32p): Use jump table label to determine the offset
1172         of the jump table.
1173         (casesi64p): Likewise.
1174
1175         * pa.c (forward_branch_p): Return bool type.  Use instruction
1176         addresses when available.  Assert that INSN has a jump label.
1177         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
1178         have a jump label.
1179
1180 2009-07-01  Richard Guenther  <rguenther@suse.de>
1181
1182         PR tree-optimization/19831
1183         * tree-ssa-dce.c (propagate_necessity): Calls to functions
1184         that only act as barriers do not make any previous stores necessary.
1185         * tree-ssa-structalias.c (handle_lhs_call): Delay making
1186         HEAP variables global, do not add a constraint from nonlocal.
1187         (find_func_aliases): Handle escapes through return statements.
1188         (compute_points_to_sets): Make escaped HEAP variables global.
1189
1190 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
1191
1192         PR bootstrap/40597
1193         * expmed.c (emit_store_flag): Perform a conversion if necessary,
1194         after reducing a DImode cstore to SImode.
1195
1196 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
1197
1198         * expr.c (expand_expr_real_1): Reinstate fallthrough to
1199         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
1200
1201 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
1202
1203         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
1204         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
1205         to 0.
1206         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
1207         and umod_optab if TARGET_BSD_DIVMOD.
1208         * config/vax/lib1funcs.asm: New file.
1209         * config/vax/t-linux: New file.
1210         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
1211
1212 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
1213
1214         PR c++/40566
1215         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
1216         to type arguments that have void type.
1217
1218         PR debug/40573
1219         * dwarf2out.c (gen_formal_parameter_die): Call
1220         equate_decl_number_to_die if node is different from origin.
1221
1222 2009-06-30  Anthony Green  <green@moxielogic.com>
1223
1224         Clean up moxie port for --enable-build-with-cxx.
1225         * config/moxie/moxie.c (moxie_function_value): First two
1226         parameters are const_tree, not tree.
1227         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
1228         (REG_CLASS_NAMES): Ditto.
1229         (REGNO_REG_CLASS): Ditto.
1230         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
1231         (moxie_function_value): Fix constyness of arguments.
1232
1233 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1234
1235         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1236         finalize_size_functions before further processing.
1237         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
1238         (variable_size): Call self_referential_size on size expressions
1239         that contain a PLACEHOLDER_EXPR.
1240         (size_functions): New static variable.
1241         (copy_self_referential_tree_r): New static function.
1242         (self_referential_size): Likewise.
1243         (finalize_size_functions): New global function.
1244         * tree.c: Include tree-inline.h.
1245         (push_without_duplicates): New static function.
1246         (find_placeholder_in_expr): New global function.
1247         (substitute_in_expr) <tcc_declaration>: Return the replacement object
1248         on equality.
1249         <tcc_expression>: Likewise.
1250         <tcc_vl_exp>: If the replacement object is a constant, try to inline
1251         the call in the expression.
1252         * tree.h (finalize_size_functions): Declare.
1253         (find_placeholder_in_expr): Likewise.
1254         (FIND_PLACEHOLDER_IN_EXPR): New macro.
1255         (substitute_placeholder_in_expr): Update comment.
1256         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
1257         is true.
1258         (copy_tree_body_r): Likewise.
1259         (copy_tree_body): New static function.
1260         (maybe_inline_call_in_expr): New global function.
1261         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
1262         (maybe_inline_call_in_expr): Declare.
1263         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
1264         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
1265         GIMPLE_H.
1266
1267 2009-06-30  Richard Guenther  <rguenther@suse.de>
1268
1269         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
1270         continue walking.
1271         (propagate_necessity): Do not mark reaching defs of stores
1272         as necessary.
1273
1274 2009-06-30  Jan Hubicka  <jh@suse.cz>
1275
1276         * cfgloopanal.c (check_irred): Move into ...
1277         (mark_irreducible_loops): ... here; return true if ireducible
1278         loops was found.
1279         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
1280         (analyze_function): Try to prove loop finiteness.
1281         * cfgloop.h (mark_irreducible_loops): Update prototype.
1282         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
1283
1284 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
1285
1286         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
1287
1288 2009-06-30  Ira Rosen  <irar@il.ibm.com>
1289
1290         PR tree-optimization/40542
1291         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
1292         types.
1293
1294 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1295
1296         PR tree-optimization/40582
1297         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
1298         than useless_type_conversion_p.
1299         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
1300         proper place.
1301
1302 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1303
1304         PR middle-end/40554
1305         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
1306
1307 2009-06-30  Richard Guenther  <rguenther@suse.de>
1308
1309         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
1310         use ao_ref references.
1311         (walk_aliased_vdefs): Likewise.
1312         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
1313         * tree-ssa-dce.c (struct ref_data): Remove.
1314         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
1315         (mark_aliased_reaching_defs_necessary): Adjust.
1316         (mark_all_reaching_defs_necessary_1): Likewise.
1317
1318 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
1319
1320         PR boostrap/40597
1321         * expmed.c (emit_cstore): New name of emit_store_flag_1.
1322         (emit_store_flag_1): Extract from emit_store_flag, adjust
1323         calls to (what now is) emit_cstore.
1324         (emit_store_flag): Call emit_store_flag_1 and also use it
1325         for what used to be recursive calls.
1326
1327 2009-06-30  Wei Guozhi  <carrot@google.com>
1328
1329         PR/40416
1330         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
1331         if the target bb post dominates from bb.
1332         * config/i386/i386.c (memory_address_length): Check existence of base
1333         register before using it.
1334
1335 2009-06-30  Nick Clifton  <nickc@redhat.com>
1336             DJ Delorie  <dj@redhat.com>
1337
1338         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
1339         __FMOVD_ENABLED__ is defined.
1340         * config/sh/sh.h
1341         (TARGET_FMOVD): Provide a default definition.
1342         (MASK_FMOVD): Likewise.
1343         (TARGET_CPU_CPP_BUILTINS): Define
1344         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
1345         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
1346         two fmov instructions depending upon whether TARGET_FMOVD is
1347         enabled.
1348         (split for DF load from memory into register): Also handle
1349         MEMs which consist of REG+DISP addressing.
1350         (split for DF store from register to memory): Likewise.
1351         * config/sh/sh.opt (mfmovd): Remove this switch.
1352         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
1353         * config/sh/sh.c (sh_override_options): Do not automatically
1354         enable TARGET_MOVD for the SH2A when supporting doubles - leave
1355         that to the -mfmovd command line switch.
1356
1357         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
1358         the SH4 and SH4A.
1359         (fldi_ok): Always allow.
1360         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
1361
1362 2009-06-29  DJ Delorie  <dj@redhat.com>
1363
1364         * doc/install.texi (mep-x-elf): Correct chip's full name.
1365
1366 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
1367
1368         * doc/extend.texi: Fix typo.
1369
1370 2009-06-29  Tom Tromey  <tromey@redhat.com>
1371
1372         * dwarf2.h: Remove.
1373         * Makefile.in (DWARF2_H): New variable.
1374         (except.o): Use it.
1375         (dwarf2out.o): Likewise.
1376         (dwarf2asm.o): Likewise.
1377         * config/i386/t-i386: Use DWARF2_H.
1378         * except.c: Include elf/dwarf2.h.
1379         * unwind-dw2.c: Include elf/dwarf2.h.
1380         * dwarf2out.c: Include elf/dwarf2.h.
1381         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
1382         <dtprel>: New field.
1383         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
1384         (size_of_loc_descr): Likewise.
1385         (output_loc_operands_raw): Likewise.
1386         (output_loc_operands): Handle new dtprel field.
1387         (loc_checksum): Update.
1388         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
1389         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
1390         * unwind-dw2-fde.c: Include elf/dwarf2.h.
1391         * dwarf2asm.c: Include elf/dwarf2.h.
1392         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
1393         * config/mmix/mmix.c: Include elf/dwarf2.h.
1394         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
1395         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
1396         * config/sh/sh.c: Include elf/dwarf2.h.
1397         * config/i386/i386.c: Include elf/dwarf2.h.
1398
1399 2009-06-29  DJ Delorie  <dj@redhat.com>
1400
1401         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
1402
1403         * doc/extend.texi: Add MeP attributes and pragmas.
1404         * doc/invoke.text: Add MeP Options.
1405         * doc/contrib.texi: Add MeP contribution.
1406         * doc/md.texi: Add MeP constraints.
1407         * doc/install.texi: Add MeP target.
1408
1409 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
1410
1411         * target.h (struct gcc_target): Add frame_pointer_required field.
1412         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
1413         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
1414         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
1415         hook.
1416         * reload1.c (update_eliminables): (Ditto.).
1417         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
1418         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1419         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
1420
1421         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
1422
1423         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
1424         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1425         (arm_frame_pointer_required): New function.
1426
1427         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
1428         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1429         (avr_frame_pointer_required_p): Declare as static.
1430         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
1431
1432         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
1433         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1434         (bfin_frame_pointer_required): Make as static, change return type
1435         to bool.
1436         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
1437
1438         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
1439         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1440         (cris_frame_pointer_required): New function.
1441         
1442         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
1443
1444         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
1445         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1446         (fr30_frame_pointer_required): New function.
1447         
1448         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
1449         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1450         (frv_frame_pointer_required): Make as static, change return type
1451         to bool.
1452         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
1453
1454         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
1455         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1456         (ix86_frame_pointer_required): Make as static, change return type to
1457         bool.
1458         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
1459
1460         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
1461         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1462
1463         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
1464
1465         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
1466         
1467         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1468
1469         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1470         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1471         (mips_frame_pointer_required): Make as static.
1472         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1473         
1474         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1475         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1476         (mmix_frame_pointer_required): Mew function.
1477
1478         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1479         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1480
1481         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1482
1483         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1484
1485         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1486
1487         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1488         (CAN_ELIMINATE): Redefine.
1489         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1490         (sparc_frame_pointer_required): New function.
1491         (sparc_can_eliminate): New function.
1492         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1493
1494         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1495         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1496
1497         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1498         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1499         (xtensa_frame_pointer_required): Make as static, change return type
1500         to bool.
1501         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1502         Remove.
1503
1504 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
1505
1506         * doc/plugins.texi: Document PLUGIN_START_UNIT.
1507         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1508         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1509         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1510         (register_callback): Handle PLUGIN_START_UNIT.
1511         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1512
1513 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1514
1515         * tree.c (process_call_operands): Propagate TREE_READONLY from the
1516         operands.
1517         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1518         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1519
1520 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
1521
1522         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1523         move cost.
1524
1525 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
1526
1527         * doc/extend.texi (Additional Floating Types): __float128 is also
1528         supported on i386 targets.
1529
1530 2009-06-29  Richard Guenther  <rguenther@suse.de>
1531
1532         PR middle-end/14187
1533         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1534         flag.
1535         (pt_solutions_same_restrict_base): Declare.
1536         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1537         flag.
1538         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1539         (make_constraint_from, make_copy_constraint): Move earlier.
1540         (make_constraint_from_heapvar): New function.
1541         (make_constraint_from_restrict): Likewise.
1542         (handle_lhs_call): Use it.
1543         (find_func_aliases): Use it to track conversions to restrict
1544         qualified pointers.
1545         (struct fieldoff): Add only_restrict_pointers flag.
1546         (push_fields_onto_fieldstack): Initialize it.
1547         (create_variable_info_for): Track global restrict qualified pointers.
1548         (intra_create_variable_infos): Use make_constraint_from_heapvar.
1549         Track restrict qualified pointer arguments.
1550         (set_uids_in_ptset): Use varinfo is_global_var flag.
1551         (find_what_var_points_to): Set the vars_contains_restrict flag.
1552         Always create the points-to solution for sets including restrict tags.
1553         (pt_solutions_same_restrict_base): New function.
1554         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1555         qualified pointers use pt_solutions_same_restrict_base as
1556         additional source for disambiguation.
1557
1558 2009-06-29  Richard Guenther  <rguenther@suse.de>
1559
1560         PR middle-end/38212
1561         * alias.c (find_base_decl): Remove.
1562         (get_deref_alias_set_1): Remove restrict handling.
1563         * c-common.c (c_apply_type_quals_to_decl): Do not set
1564         DECL_POINTER_ALIAS_SET.
1565         * gimplify.c (find_single_pointer_decl_1): Remove.
1566         (find_single_pointer_decl): Likewise.
1567         (internal_get_tmp_var): Remove restrict handling.
1568         (gimple_regimplify_operands): Likewise.
1569         * omp-low.c (expand_omp_atomic_pipeline): Do not set
1570         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1571         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1572         * tree.c (restrict_base_for_decl): Remove.
1573         (init_ttree): Do not allocate it.
1574         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
1575         LABEL_DECL_UID for label decls.
1576         (copy_node_stat): Do not copy restrict information.
1577         (decl_restrict_base_lookup): Remove.
1578         (decl_restrict_base_insert): Likewise.
1579         (print_restrict_base_statistics): Likewise.
1580         (dump_tree_statistics): Do not call print_restrict_base_statistics.
1581         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1582         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1583         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1584         (LABEL_DECL_UID): Adjust.
1585         (DECL_BASED_ON_RESTRICT_P): Remove.
1586         (DECL_GET_RESTRICT_BASE): Likewise.
1587         (SET_DECL_RESTRICT_BASE): Likewise.
1588         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1589
1590         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1591         instead of DECL_POINTER_ALIAS_SET.
1592         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1593         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1594         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1595
1596 2009-06-29  Richard Guenther  <rguenther@suse.de>
1597
1598         PR tree-optimization/40579
1599         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1600         the IL to simplify has constants that overflowed.
1601
1602 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
1603
1604         PR tree-optimization/40550
1605         * tree-vect-generic.c (expand_vector_operations_1): Compute in
1606         vector_compute_type only when the size of vector_compute_type is
1607         less than the size of type.
1608
1609 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1610
1611         * fold-const.c (contains_label_1): Fix comments.
1612         (contains_label_p): Do not walk trees multiple time.
1613
1614 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1615
1616         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
1617         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
1618         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
1619         ix86_fp_comparison_operator.
1620         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
1621         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
1622         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
1623         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
1624         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
1625         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
1626         (related splits): Change predicate to ix86_fp_comparison_operator.
1627         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
1628         instead of ix86_fp_comparison_codes.
1629         (ix86_trivial_fp_comparison_operator,
1630         ix86_fp_comparison_operator): New.
1631         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
1632         (ix86_expand_compare): Eliminate last two parameters.
1633         (ix86_fp_jump_nontrivial_p): Kill.
1634         * config/i386/i386.c (put_condition_code): Eliminate call to
1635         ix86_fp_comparison_codes and subsequent assertion.
1636         (ix86_fp_comparison_codes): Eliminate.
1637         (ix86_fp_swap_condition): New.
1638         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
1639         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
1640         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
1641         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
1642         and ix86_fp_swap_condition.
1643         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
1644         Use ix86_fp_comparison_strategy.
1645         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
1646         (ix86_fp_jump_nontrivial_p): Eliminate.
1647         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
1648         call to ix86_expand_compare.
1649         (ix86_split_fp_branch, ix86_expand_setcc,
1650         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
1651         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
1652
1653 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1654
1655         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
1656         related to jump_clobbers.
1657         * config/arm/arm.md (conds): Remove jump_clob case.
1658         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
1659         splits): Change comparison_operator to arm_comparison_operator.
1660         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
1661         Eliminate.
1662
1663 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1664
1665         * dojump.c (do_compare_rtx_and_jump): Try swapping the
1666         condition for floating point modes.
1667         * expmed.c (emit_store_flag_1): Move here a bigger part
1668         of emit_store_flag.
1669         (emit_store_flag): Try swapping the condition for floating point
1670         modes.
1671         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
1672
1673 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1674
1675         * expr.c (expand_expr_real_1): Just use do_store_flag.
1676         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
1677         emit_store_flag_force.
1678         * expmed.c (emit_store_flag_force): Copy here trick
1679         previously in expand_expr_real_1.  Try reversing the comparison.
1680         (emit_store_flag_1): Work if target is NULL.
1681         (emit_store_flag): Work if target is NULL, using the result mode
1682         from the comparison.  Use split_comparison, restructure final part
1683         to simplify conditionals.
1684
1685 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1686
1687         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
1688         * dojump.c (do_jump): Change handling of floating-point
1689         ops to use just do_compare_and_jump.
1690         (split_comparison): New.
1691         (do_compare_rtx_and_jump): Add here logic coming previously
1692         in do_jump, using split_comparison.
1693
1694 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
1695
1696         PR target/40489
1697         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
1698
1699 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1700
1701         * tree-ssa-alias.c: Fix unintentional commit.
1702
1703 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1704
1705         * passes.c (execute_one_pass): Fix unintentional commit.
1706
1707 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1708
1709         * df-problems.c (df_set_seen, df_unset_seen): Delete.
1710         (df_rd_local_compute, df_md_local_compute): Inline them.
1711
1712         (df_md_scratch): New.
1713         (df_md_alloc, df_md_free): Allocate/free it.
1714         (df_md_local_compute): Only include live registers in init.
1715         (df_md_transfer_function): Prune the in-set computed by
1716         the confluence function, and the gen-set too.
1717
1718 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1719
1720         PR rtl-optimization/26854
1721         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
1722         * df-problems.c (df_rd_add_problem): Fix comment.
1723         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
1724         df_md_simulate_artificial_defs_at_top,
1725         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
1726         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
1727         df_md_transfer_function, df_md_init, df_md_confluence_0,
1728         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
1729         problem_MD, df_md_add_problem): New.
1730         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
1731         df_md_get_bb_info): New.
1732         (DF_LAST_PROBLEM_PLUS1): Adjust.
1733
1734         * Makefile.in (fwprop.o): Include domwalk.h.
1735         * fwprop.c: Include domwalk.h.
1736         (reg_defs, reg_defs_stack): New.
1737         (bitmap_only_bit_between): Remove.
1738         (process_defs): New.
1739         (process_uses): Use reg_defs and local_md instead of
1740         bitmap_only_bit_between and local_rd.
1741         (single_def_use_enter_block): New, from build_single_def_use_links.
1742         (single_def_use_leave_block): New.
1743         (build_single_def_use_links): Remove code moved to
1744         single_def_use_enter_block, invoke domwalk.
1745         (use_killed_between): Adjust comment.
1746
1747 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1748
1749         * bitmap.h (bitmap_ior_and_into): New.
1750         * bitmap.c (bitmap_ior_and_into): New.
1751
1752 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1753
1754         * domwalk.h (struct dom_walk_data): Remove all callbacks except
1755         before_dom_children_before_stmts and after_dom_children_after_stmts.
1756         Rename the two remaining callbacks to just before_dom_children and 
1757         after_dom_children. Remove other GIMPLE statement walking bits.
1758         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
1759         * graphite.c: Do not include domwalk.h.
1760         * tree-into-ssa.c (interesting_blocks): New global.
1761         (struct mark_def_sites_global_data): Remove it and names_to_rename.
1762         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
1763         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
1764         now that they're not domwalk callbacks.
1765         (rewrite_initialize_block): Rename to...
1766         (rewrite_enter_block): ... this, place after called functions.  Test
1767         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
1768         (rewrite_finalize_block): Rename to...
1769         (rewrite_leave_block): ... this, place after called functions.
1770         (rewrite_update_init_block): Rename to...
1771         (rewrite_update_enter_block): ... this, place after called functions.
1772         Test interesting_blocks, call rewrite_update_stmt and 
1773         rewrite_update_phi_arguments.
1774         (rewrite_update_fini_block): Rename to...
1775         (rewrite_leave_block): ... this, place after called functions.
1776         (rewrite_blocks): Remove last argument, simplify initialization of
1777         walk_data.
1778         (mark_def_sites_initialize_block): Rename to...
1779         (mark_def_sites_block): ... this, call mark_def_sites.
1780         (mark_def_sites_blocks): Remove argument, simplify initialization of
1781         walk_data.
1782         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
1783         (update_ssa): Likewise.
1784         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
1785         callback.
1786         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
1787         (dom_opt_initialize_block): Rename to...
1788         (dom_opt_enter_block): ... this, place after called functions.  Walk
1789         statements here, inline propagate_to_outgoing_edges.
1790         (dom_opt_finalize_block): Rename to...
1791         (dom_opt_leave_block): ... this, place after called functions.
1792         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
1793         domwalk callback.
1794         (dse_enter_block, dse_record_phi): New.
1795         (dse_record_phis): Delete.
1796         (dse_finalize_block): Rename to...
1797         (dse_leave_block): ... this.
1798         (tree_ssa_dse): Simplify initialization of walk_data.
1799         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
1800         Adjust initialization of walk_data.
1801         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
1802         * tree-ssa-loop-phiopt.c (get_non_trapping):
1803         Adjust initialization of walk_data.
1804         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
1805         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
1806         it's not a domwalk callback.
1807         (uncprop_initialize_block): Rename to...
1808         (dse_enter_block): ... this, call uncprop_into_successor_phis.
1809         (dse_finalize_block): Rename to...
1810         (dse_leave_block): ... this.
1811         (tree_ssa_uncprop): Simplify initialization of walk_data.
1812         * Makefile.in: Adjust dependencies.
1813
1814 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
1815
1816         * arm.md (casesi): Fix test for Thumb1.
1817         (thumb1_casesi_internal_pic): Likewise.
1818         (thumb1_casesi_dispatch): Likewise.
1819
1820 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
1821
1822         * config/arm/arm-cores.def: Added core cortex-m0.
1823         * config/arm/arm-tune.md: Regenerated.
1824         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
1825
1826 2009-06-26  DJ Delorie  <dj@redhat.com>
1827
1828         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
1829
1830         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
1831         the scheduler doesn't tag jump insns.
1832
1833 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1834
1835         * c-decl.c (merge_decls): Re-indent.
1836
1837 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
1838
1839         PR c/39902
1840         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
1841         Special-case decimal float constants.
1842
1843 2009-06-26  Richard Henderson  <rth@redhat.com>
1844
1845         * function.h (struct function): Add cannot_be_copied_reason,
1846         and cannot_be_copied_set.
1847         * tree-inline.c (has_label_address_in_static_1): Rename from
1848         inline_forbidden_p_2; don't set inline_forbidden_reason here.
1849         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
1850         don't set inline_forbidden_reason.
1851         (copy_forbidden): New function, split out of inline_forbidden_p.
1852         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
1853         (inline_forbidden_p): Use copy_forbidden.
1854         (tree_versionable_function_p): Likewise.
1855         (inlinable_function_p): Merge into tree_inlinable_function_p.
1856         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
1857         * ipa-cp.c (ipcp_versionable_function_p): New function.
1858         (ipcp_cloning_candidate_p): Use it.
1859         (ipcp_node_modifiable_p): Likewise.
1860
1861 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
1862
1863         * builtins.c (expand_builtin_alloca): Handle builtin alloca
1864         that is marked not to be inlined. Remove flag_mudflap use.
1865         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
1866         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
1867
1868 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
1869
1870         PR bootstrap/40338
1871         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
1872         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
1873
1874 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
1875
1876         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
1877         shared libgcc.
1878         (__mingwthr_remove_key_dtor): Likewise.
1879
1880 2009-06-26  Richard Guenther  <rguenther@suse.de>
1881
1882         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
1883
1884 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1885
1886         PR middle-end/40525
1887         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
1888         try the non-cond_exec path also.
1889
1890 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1891
1892         PR target/40468
1893         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
1894         (output_cbranch): Use new functions.
1895         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
1896         Likewise.
1897
1898 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1899             Pat Haugen  <pthaugen@us.ibm.com>
1900             Revital Eres <ERES@il.ibm.com>
1901
1902         * config/rs6000/rs6000.c (print_operand): Correct lossage message
1903         for %c error.  Add %x support to print VSX registers as a unified
1904         register set, instead of separate float and altivec registers.
1905         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
1906         %y case, and add support for VSX pre-modify addresses.
1907         (output_toc): Add assert for CONST containing an integer constant
1908         in the PLUS case.
1909         (rs6000_adjust_cost): Add POWER7 support.
1910         (insn_must_be_first_in_group): Ditto.
1911         (insn_must_be_last_in_group): Ditto.
1912         (rs6000_emit_popcount): Ditto.
1913         (rs6000_vector_mode_supported_p): Ditto.
1914
1915         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
1916         Change some of the functions called by macros to being called
1917         through a pointer, so debug functions can be inserted if
1918         -mdebug=addr or -mdebug=cost. 
1919         (rs6000_preferred_reload_class_ptr): Ditto.
1920         (rs6000_secondary_reload_class_ptr): Ditto.
1921         (rs6000_secondary_memory_needed_ptr): Ditto.
1922         (rs6000_cannot_change_mode_class_ptr): Ditto.
1923         (rs6000_secondary_reload_inner): Ditto.
1924         (rs6000_legitimize_reload_address): Ditto.
1925         (rs6000_legitimize_reload_address_ptr): Ditto.
1926         (rs6000_mode_dependent_address): Ditto.
1927         (rs6000_mode_dependent_address_ptr): Ditto.
1928
1929         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
1930         function to return true if the mode allows reg + integer
1931         addresses.
1932         (virtual_stack_registers_memory_p): New function to return true if
1933         the address refers to a virtual stack register.
1934         (rs6000_legitimate_offset_address_p): Move code to say whether a
1935         mode supports reg+int addressing to reg_offset_addressing_ok_p and
1936         call it.
1937         (rs6000_legitimate_address_p): Add checks for modes that only can
1938         do reg+reg addressing.  Start adding VSX support.
1939         (rs6000_legitimize_reload_address): Ditto.
1940         (rs6000_legitimize_address): Ditto.
1941         (rs6000_debug_legitimate_address_p): New debug functions for
1942         -mdebug=addr and -mdebug=cost.
1943         (rs6000_debug_rtx_costs): Ditto.
1944         (rs6000_debug_address_costs): Ditto.
1945         (rs6000_debug_adjust_cost): Ditto.
1946         (rs6000_debug_legitimize_address): Ditto.
1947         (rs6000_legitimize_reload_address_ptr): Point to call normal
1948         function or debug function.  Make functions called via pointer
1949         static.
1950         (rs6000_mode_dependent_address_ptr): Ditto.
1951         (rs6000_secondary_reload_class_ptr): Ditto.
1952         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
1953         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
1954         into a friendlier error.
1955         (rs6000_init_builtins): Add initial VSX support.
1956         (rs6000_adjust_cost): Fix some spacing issues.
1957
1958         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
1959         (REG_CLASS_NAMES): Ditto.
1960         (REG_CLASS_CONTENTS): Ditto.
1961         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
1962         pointer, to add -mdebug=addr support.
1963         (CANNOT_CHANGE_MODE_CLASS): Ditto.
1964         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
1965         -mdebug=addr support.
1966         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
1967         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
1968         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
1969
1970         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
1971         16-bit values.
1972         (bswapsi*): Set attribute types for load/store.  Add combiner
1973         patterns to eliminate zero extend on 64-bit.
1974         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
1975         stdbrx if the hardware supports those instructions.
1976
1977 2009-06-25  Ian Lance Taylor  <iant@google.com>
1978
1979         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
1980         (Link Options): Document -static-libstdc++.
1981
1982 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1983
1984         PR target/38731
1985         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
1986         DATA_ALIGNMENT instead.
1987
1988 2009-06-25  Richard Guenther  <rguenther@suse.de>
1989
1990         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
1991         indirect references against the callused/escaped solutions.
1992         (call_may_clobber_ref_p_1): Likewise.
1993
1994 2009-06-25  Martin Jambor  <mjambor@suse.cz>
1995
1996         PR tree-optimization/40493
1997         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
1998         (enum unscalarized_data_handling): New type.
1999         (handle_unscalarized_data_in_subtree): Return what has been done.
2000         (load_assign_lhs_subreplacements): Handle left flushes differently.
2001         (sra_modify_assign): Use unscalarized_data_handling, simplified
2002         condition determining whether to remove the statement.
2003
2004 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
2005
2006         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
2007         excerpt - @ should be doubled for texinfo.
2008
2009 2009-06-24  Ian Lance Taylor  <iant@google.com>
2010
2011         * config/arc/arc.c: Include "df.h".
2012         (arc_attribute_table): Make static.  Move higher in file.
2013         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
2014         (output_shift): Initialize n later to avoid warning.
2015         * config/arm/arm.c (arm_attribute_table): Make static.  Move
2016         higher in file.
2017         * config/avr/avr.c (avr_attribute_table): Make static.  Move
2018         higher in file.
2019         (reg_class_tab): Change array type from int to enum reg_class.
2020         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
2021         LABEL_REF.
2022         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
2023         (lshrhi3_out): Likewise.
2024         (class_likely_spilled_p): Change return type to bool.
2025         (avr_rtx_costs): Use local code variable with enum type.
2026         * config/avr/avr.md (movmemhi): Use add_reg_note.
2027         (andhi3, andsi3): Don't use AS2 with "and".
2028         (iorhi3, iorsi3): Don't use AS2 with "or".
2029         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
2030         * config/crx/crx.c: Include "df.h".
2031         (crx_attribute_table): Make static.
2032         * config/m32r/m32r.c: Include "df.h".
2033         (m32r_attribute_table): Make static.  Move higher in file.
2034         (pop): Use add_reg_note.
2035         (block_move_call): Change 0 to LCT_NORMAL in function call.
2036         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
2037         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
2038         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
2039         declare, not just when TREE_CODE is defined.
2040         * config/m68hc11/m68hc11.c: Include "expr.h".
2041         (m68hc11_attribute_table): Make static.  Move higher in file.
2042         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
2043         function call.
2044         (m68hc11_register_indirect_p): Likewise.
2045         (m68hc11_function_arg_padding): Change return type to enum
2046         direction.
2047         (emit_move_after_reload): Use add_reg_note.
2048         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
2049         (m68hc11_split_logical): Likewise.
2050         (m68hc11_rtx_costs): Add local code_and outer_code variables with
2051         enum type.
2052         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
2053         to VOIDmode in function call.
2054         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
2055         tree is defined.
2056         (m68hc11_split_logical): Update declaration.
2057         (m68hc11_function_arg_padding): Update declaration.
2058         * config/mcore/mcore.c (regno_reg_class): Change form array of int
2059         to array of enum reg_class.
2060         (mcore_attribute_table): Make static.  Move higher in file.
2061         (mcore_rtx_costs): Add cast to enum type.
2062         * config/mcore/mcore.h (regno_reg_class): Update declaration.
2063         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
2064         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
2065         in file.
2066         * config/sh/predicates.md (trapping_target_operand): Rename and to
2067         and_expr.
2068         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
2069         higher in file.
2070         * config/spu/spu.c (spu_attribute_table): Make static.  Move
2071         higher in file.
2072         * config/v850/v850.c (v850_attribute_table): Make static.  Move
2073         higher in file.
2074         (v850_rtx_costs): Use local code with enum type.
2075         (expand_epilogue): Add cast.
2076         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
2077
2078 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
2079
2080         PR target/40515
2081         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
2082         -m2a-single-only and -m2a-nofpu.
2083         * config/sh/sh.opt: Document m2a generates FPU code.  
2084
2085 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
2086
2087         * defaults.h (CAN_ELIMINATE): Provide default.
2088         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
2089         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
2090         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
2091         * config/spu/spu.h (CAN_ELIMINATE): Delete.
2092         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
2093         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
2094         * config/cris/cris.h (CAN_ELIMINATE): Delete.
2095         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
2096         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
2097         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
2098
2099 2009-06-24  DJ Delorie  <dj@redhat.com>
2100
2101         * mep-ext-cop.cpu: Fix copyright notice.
2102         * mep-default: Fix copyright notice.
2103         * mep-core: Fix copyright notice.
2104         * mep: Fix copyright notice.
2105         * mep-ivc2: Fix copyright notice.
2106         * mep-c5: Fix copyright notice.
2107
2108 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
2109
2110         * doc/contrib.texi (Contributors): 
2111
2112 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2113         
2114         PR middle-end/40501
2115         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
2116         src and dst operands if necessary.
2117
2118 2009-06-23  DJ Delorie  <dj@redhat.com>
2119
2120         Add MeP port.
2121         * config.gcc: Add mep support.
2122         * recog.c: Resurrect validate_replace_rtx_subexp().
2123         * recog.h: Likewise.
2124         * config/mep/: Add new port:
2125         * config/mep/constraints.md: New file.
2126         * config/mep/default.h: New file.
2127         * config/mep/intrinsics.h: New file.
2128         * config/mep/intrinsics.md: New file.
2129         * config/mep/ivc2-template.h: New file.
2130         * config/mep/mep-c5.cpu: New file.
2131         * config/mep/mep-core.cpu: New file.
2132         * config/mep/mep-default.cpu: New file.
2133         * config/mep/mep-ext-cop.cpu: New file.
2134         * config/mep/mep-intrin.h: New file.
2135         * config/mep/mep-ivc2.cpu: New file.
2136         * config/mep/mep-lib1.asm: New file.
2137         * config/mep/mep-lib2.c: New file.
2138         * config/mep/mep-pragma.c: New file.
2139         * config/mep/mep-protos.h: New file.
2140         * config/mep/mep-tramp.c: New file.
2141         * config/mep/mep.c: New file.
2142         * config/mep/mep.cpu: New file.
2143         * config/mep/mep.h: New file.
2144         * config/mep/mep.md: New file.
2145         * config/mep/mep.opt: New file.
2146         * config/mep/predicates.md: New file.
2147         * config/mep/t-mep: New file.
2148
2149 2009-06-23  Ian Lance Taylor  <iant@google.com>
2150
2151         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
2152         from loose_warn into c_loose_warn and from strict_warn into
2153         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
2154         --enable-build-with-cxx.  Set and substitute
2155         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
2156         * Makefile.in (CXXFLAGS): New variable.
2157         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
2158         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
2159         the default is the same as $(STRICT_WARN).
2160         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
2161         (CXX): New variable.
2162         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
2163         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
2164         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
2165         (HOST_LIBS): New variable.
2166         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
2167         (ALL_CXXFLAGS): New variable.
2168         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
2169         * doc/install.texi (Configuration): Document
2170         --enable-build-with-cxx, --with-stage1-ldflags,
2171         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
2172         * configure: Rebuild.
2173
2174 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2175
2176         * config/arm/arm.c (arm_override_options): Fix braces and formatting
2177         from previous commit.
2178
2179 2009-06-23  Ian Lance Taylor  <iant@google.com>
2180
2181         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
2182
2183 2009-06-23  Ian Lance Taylor  <iant@google.com>
2184
2185         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
2186         with ATTRIBUTE_UNUSED.
2187
2188 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2189             Pat Haugen  <pthaugen@us.ibm.com>
2190             Revital Eres  <eres@il.ibm.com>
2191
2192         * config.in (HAVE_AS_POPCNTD): Add default definition.
2193         (HAVE_AS_LWSYNC): Ditto.
2194
2195         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
2196         release number.
2197         (gcc_cv_as_powerpc_cmpb): Ditto.
2198         (gcc_cv_as_powerpc_dfp): Ditto.
2199         (gcc_cv_as_powerpc_vsx): Ditto.
2200         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
2201         supporting the popcntd/lwsync instructions.
2202         (gcc_cv_as_powerpc_lwsync): Ditto.
2203         * configure: Regenerate.
2204
2205         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
2206         -mcpu=native and -mcpu=power7.
2207         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
2208
2209         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
2210         a variable instead of a mask to reduce the number of mask bits.
2211         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2212         (-mbit-word): Ditto.
2213         (-mregnames): Ditto.
2214         * config/rs6000/rs6000.opt (-mupdate): Ditto.
2215         (-mfused-madd): Ditto.
2216
2217         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
2218         2.06 instructions.
2219         (-mvsx): New switch for VSX instructions.
2220         (-misel): Move from a variable to a mask to allow it to be set by
2221         -mcpu=.
2222
2223         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
2224         function declaration to an array declaration.
2225         (rs6000_hard_regno_nregs): New external array declaration.
2226
2227         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
2228         files included by rs6000.md.
2229
2230         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2231         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
2232
2233         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
2234         a target mask.
2235         (rs6000_debug_reg): New -mdebug= variables.
2236         (rs6000_debug_addr): Ditto.
2237         (rs6000_debug_cost): Ditto.
2238         (rs6000_pmode): New variable to hold Pmode.
2239         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
2240         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
2241         calculated at compiler start.
2242         (rs6000_hard_regno_nregs): Change function to an array which holds
2243         HARD_REGNO_NREGS calculated at compiler start.
2244         (rs6000_explicit_options): Delete isel field.
2245         (rs6000_vector_unit): New array to hold which vector unit
2246         supports arithmetic options for a given type.
2247         (rs6000_vector_mem): New array to hold which vector unit supports
2248         memory reference operations for a given type.
2249         (rs6000_vector_align): New array to given the alignment of each
2250         vector type.
2251         (power7_cost): New basic costs for power7.
2252         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
2253         (rs6000_hard_regno_nregs_internal): New function, moved from
2254         HARD_REGNO_NREGS, to calculate the number of registers each hard
2255         register takes for each type.
2256         (rs6000_debug_reg_print): New function for -mdebug=reg support.
2257         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
2258         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
2259         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
2260         unit information here so it is calculated once at compiler startup
2261         time.
2262         (rs6000_override_options): Make -misel a target mask.  Add more
2263         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
2264         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
2265         -mdebug=cost.
2266         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
2267         (rs6000_handle_option): Move -misel from variable to target mask.
2268         (rs6000_builtin_mask_for_load): Add VSX support.
2269         (rs6000_conditional_register_usage): Ditto.
2270         (USE_ALTIVEC_FOR_ARG_P): Ditto.
2271         (function_arg_boundary): Ditto.
2272         (rs6000_expand_builtin): Ditto.
2273         (def_builtin): Make abort message a little friendlier.
2274         (rs6000_emit_int_cmove): Add support for 64-bit isel.
2275
2276         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
2277         assembler support the popcntd instruction instead of a vsx
2278         instruction to enable power7 support.
2279         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
2280         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
2281         option to the assembler if -mcpu=native.
2282         (ASM_CPU_NATIVE_SPEC): Ditto.
2283         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
2284         ISA 2.06 features.
2285         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
2286         the lwsync instruction.
2287         (enum processor_type): Add PROCESSOR_POWER7.
2288         (rs6000_debug_reg): New -mdebug= options.
2289         (rs6000_debug_addr): Ditto.
2290         (rs6000_debug_cost): Ditto.
2291         (rs6000_isel): Delete.
2292         (enum rs6000_vector): New enum to say what vector unit we have.
2293         (VECTOR_UNIT_*): New macros to say which vector unit has
2294         arithmetic operations for a given type.
2295         (VECTOR_MEM_*): New macros to say which vector unit has memory
2296         operations for a given type.
2297         (TARGET_LDBRX): Whether the machine supports the ldbrx
2298         instruction.
2299         (TARGET_ISEL): Delete, -misel moved to be a mask.
2300         (TARGET_ISEL64): New macro for 64-bit isel support.
2301         (UNITS_PER_VSX_WORD): New macro.
2302         (POINTER_SIZE): Move to be an external variable, rather than
2303         calculating whether we are generating 32 ot 64-bit code.
2304         (Pmode): Ditto.
2305         (STACK_BOUNDARY): Add VSX support.
2306         (LOCAL_ALIGNMENT): Ditto.
2307         (SLOW_UNALIGNED_ACCESS): Ditto.
2308         (VSX_REGNO_P): New macro for VSX support.
2309         (VFLOAT_REGNO_P): Ditto.
2310         (VINT_REGNO_P): Ditto.
2311         (VLOGICAL_REGNO_P): Ditto.
2312         (VSX_VECTOR_MODE): Ditto.
2313         (VSX_SCALAR_MODE): Ditto.
2314         (VSX_MODE): Ditto.
2315         (VSX_MOVE_MODE): Ditto.
2316         (VSX_REG_CLASS_P): Ditto.
2317         (HARD_REGNO_NREGS): Instead of calling a function, use an array
2318         lookup.
2319         (UNITS_PER_SIMD_WORD): Add VSX support.
2320         (MODES_TIEABLE_P): Ditto.
2321         (STARTING_FRAME_OFFSET): Ditto.
2322         (STACK_DYNAMIC_OFFSET): Ditto.
2323         (EPILOGUE_USES): Ditto.
2324         (REGNO_REG_CLASS): Move to array lookup.
2325         (CLASS_MAX_NREGS): Ditto.
2326         (rs6000_vector_reg_class): Add declaration.
2327         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
2328         overlap with the floating point and Altivec registers.
2329
2330         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
2331
2332         * config/rs6000/driver-rs6000.c (asm_names): New static array to
2333         give the appropriate asm switches if -mcpu=native.
2334         (host_detect_local_cpu): Add support for "asm".
2335         (host_detect_local_cpu): Follow GNU code guidelines for name.
2336
2337         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
2338         -mbit-word to a variable instead of being a target mask.
2339
2340         * config/rs6000/sync.md (lwsync): If the assembler supports it,
2341         emit the lwsync instruction instead of emitting the instruction as
2342         an integer constant.
2343
2344         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
2345         fixuns_trundfsi2, move expander into rs6000.md.
2346
2347         * config/rs6000/rs6000.md (cpu): Add power7.
2348         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
2349         (logical predicate patterns): Change the single instruction
2350         primitives that set CR0 to be fast_compare instead of compare.
2351         (norsi*): Ditto.
2352         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
2353         (popcntddi2): Ditto.
2354         (popcount<mode>): Ditto.
2355         (floating multiply/add insns): Name the floating point
2356         multiply/add insns.
2357         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
2358         (isel_unsigned_<mode>): Ditto.
2359         (fixuns_trundfsi2): Move expander here from spe.md.
2360         (smindi3): Define if we have -misel on 64-bit systems.
2361         (smaxdi3): Ditto.
2362         (umindi3): Ditto.
2363         (umaxdi3): Ditto.
2364
2365 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
2366
2367         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
2368         extra_objs.
2369         * config/avr/avr.c (avr_current_device): New variable.
2370         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
2371         (avr_arch, mcu_type_s): Move to avr.h.
2372         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
2373         default_data_section_start fields.
2374         (avr_arch): Moved from avr.c.
2375         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
2376         library_name fields.
2377         (avr_current_device, avr_mcu_types, avr_arch_types,
2378         avr_device_to_arch, avr_device_to_data_start,
2379         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
2380         (EXTRA_SPEC_FUNCTIONS): Define.
2381         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
2382         options mapping. Use device_to_arch and device_to_data_start insted.
2383         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
2384         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
2385         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
2386         * config/avr/driver-avr.c: New file.
2387         * config/avr/avr-devices.c: New file.
2388
2389 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
2390
2391         * var-tracking.c (unshare_variable): Force initialized to
2392         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
2393         (set_variable_part): Likewise.
2394         (struct variable_union_info): Remove pos_src field.
2395         (vui_vec, vui_allocated): New variables.
2396         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
2397         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
2398         == 1 use a simpler sorting algorithm.  Compute pos field right
2399         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
2400         Avoid quadratic comparison if !flag_var_tracking_uninit.
2401         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
2402         unshare_variable unconditionally.   
2403         (dataflow_set_different_2): Removed.
2404         (dataflow_set_different): Don't traverse second hash table.
2405         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
2406         unconditionally to var_reg_set or var_mem_set.
2407         (emit_notes_in_bb): Likewise.
2408         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
2409         unshare_variable.
2410         (emit_note_insn_var_location): Don't set initialized to
2411         VAR_INIT_STATUS_INITIALIZED early.
2412         (vt_finalize): Free vui_vec if needed, clear vui_vec and
2413         vui_allocated.
2414         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
2415
2416         * tree-object-size.c (addr_object_size): Instead of checking
2417         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
2418         are no FIELD_DECLs following it.
2419
2420 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2421
2422         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
2423         order to match bswaps with signed source operands.
2424
2425 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2426
2427         * sdbout.c (sdbout_one_type): Fix braces in switch.
2428
2429 2009-06-23  Richard Guenther  <rguenther@suse.de>
2430
2431         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
2432         member.
2433         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
2434         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
2435         var_callused, callused_tree, var_storedanything, storedanything_tree,
2436         var_integer, integer_tree): Remove global variables.
2437         (new_var_info): Do not pass new id, append the new var to the
2438         global variable vector.
2439         (do_ds_constraint): Use is_global_var member of the variable-info.
2440         (new_scalar_tmp_constraint_exp): Adjust.
2441         (create_function_info_for): Likewise.
2442         (create_variable_info_for): Likewise.
2443         (find_what_var_points_to): Remove dead code.
2444         (init_base_vars): Simplify.
2445         (compute_points_to_sets): Adjust.
2446
2447 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2448
2449         * combine.c (try_combine): Dump information about the insns we're
2450         combining.
2451
2452 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2453
2454         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
2455         check when calling force_to_mode on TRUNCATE's operand.
2456
2457 2009-06-22  Ian Lance Taylor  <iant@google.com>
2458
2459         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
2460
2461 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2462
2463         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
2464
2465 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2466
2467         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2468         override library linkage flags such as -static-libgcc or
2469         -shared-libgcc.
2470
2471 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2472
2473         * config/m68k/m68k-devices.def: Add line for MCF5221x.
2474
2475 2009-06-22  Ian Lance Taylor  <iant@google.com>
2476
2477         * config/linux.opt: Put mglibc ahead of muclibc.
2478
2479         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2480         for duplicate decls.
2481
2482 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2483
2484         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2485
2486 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2487
2488         PR objc/28050
2489         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2490         instead of NULL if a parser error occurs.
2491
2492 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2493
2494         * dwarf2out.c (dwarf2_debug_hooks): Initialize
2495         non-DWARF2_DEBUGGING_INFO version.
2496
2497 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
2498
2499         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2500         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2501
2502         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
2503         (LIBGCC2_TF_CEXT): Define.
2504         (TF_SIZE): Define.
2505
2506 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2507
2508         PR target/40463
2509         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2510
2511 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2512
2513         * config/arm/arm.c (arm_override_options): Disable
2514         -mcaller-super-interworking and -mcallee-super-interworking.
2515         * doc/invoke.texi (ARM Options): Document this.
2516
2517 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2518
2519         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2520         * config/arm/constraints.md (j): New constraint for movw operands.
2521         (N): Remove thumb2 meaning.
2522         * config/arm/arm.md (*arm_movw): Delete.
2523         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2524         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2525         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2526
2527 2009-06-22  Martin Jambor  <mjambor@suse.cz>
2528
2529         PR tree-optimization/40492
2530         * tree-sra.c (sra_modify_assign): Pass zero offsets to
2531         build_ref_for_offset.
2532
2533 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
2534
2535         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2536         JUMP_TABLE_DATA_P predicates where applicable.
2537         * auto-inc-dec.c: Ditto.
2538         * builtins.c: Ditto.
2539         * caller-save.c: Ditto.
2540         * calls.c: Ditto.
2541         * cfgcleanup.c: Ditto.
2542         * cfglayout.c: Ditto.
2543         * cfgrtl.c: Ditto.
2544         * combine.c: Ditto.
2545         * combine-stack-adj.c: Ditto.
2546         * cse.c: Ditto.
2547         * cselib.c: Ditto.
2548         * dbxout.c: Ditto.
2549         * df-scan.c: Ditto.
2550         * dse.c: Ditto.
2551         * dwarf2asm.c: Ditto.
2552         * dwarf2out.c: Ditto.
2553         * emit-rtl.c: Ditto.
2554         * except.c: Ditto.
2555         * explow.c: Ditto.
2556         * expmed.c: Ditto.
2557         * expr.c: Ditto.
2558         * final.c: Ditto.
2559         * function.c: Ditto.
2560         * fwprop.c: Ditto.
2561         * gcse.c: Ditto.
2562         * genpreds.c: Ditto.
2563         * genrecog.c: Ditto.
2564         * ifcvt.c: Ditto.
2565         * ira-costs.c: Ditto.
2566         * ira-lives.c: Ditto.
2567         * jump.c: Ditto.
2568         * loop-iv.c: Ditto.
2569         * lower-subreg.c: Ditto.
2570         * modulo-sched.c: Ditto.
2571         * optabs.c: Ditto.
2572         * postreload.c: Ditto.
2573         * print-rtl.c: Ditto.
2574         * recog.c: Ditto.
2575         * reginfo.c: Ditto.
2576         * regmove.c: Ditto.
2577         * reload1.c: Ditto.
2578         * reload.c: Ditto.
2579         * reorg.c: Ditto.
2580         * rtlanal.c: Ditto.
2581         * rtl.c: Ditto.
2582         * sched-vis.c: Ditto.
2583         * sdbout.c: Ditto.
2584         * sel-sched-ir.c: Ditto.
2585         * simplify-rtx.c: Ditto.
2586         * targhooks.c: Ditto.
2587         * var-tracking.c: Ditto.
2588         * vmsdbgout.c: Ditto.
2589
2590 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2591
2592         * Makefile.in (install-plugin): Always use DESTDIR.
2593
2594 2009-06-22  Olivier Hainque  <hainque@adacore.com>
2595         
2596         * config/pa/pa.c (output_call): Don't optimize post call jumps
2597         into return address adjustments if the call may throw.
2598
2599 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
2600
2601         * arm.c (thumb1_output_casesi): New function.
2602         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2603         optimizing for size or PIC.
2604         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2605         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2606         (casesi): Handle Thumb-1 when optimizing for size or PIC.
2607         (thumb1_casesi_internal_pic): New expand rule.
2608         (thumb1_casesi_dispatch): New pattern.
2609         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2610         thumb-1 mode.
2611         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2612         in the text seciton when PIC or optimizing for size.
2613         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2614         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
2615         preservation properties of code.
2616         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
2617         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
2618         (__gnu_thumb1_case_si): New function.
2619         * t-arm (LIB1ASMSRC): Define here.
2620         (LIB1ASMFUNCS): Add some common functions.
2621         * t-arm-elf (LIB1ASMSRC): Delete.
2622         (LIB1ASMFUNCS): Append to existing set.
2623         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2624         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2625         * t-symbian (LIB1ASMFUNCS): Likewise.
2626         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2627         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2628
2629 2009-06-21  Richard Guenther  <rguenther@suse.de>
2630
2631         PR tree-optimization/38729
2632         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
2633         to loops with a single exit if -fno-expensive-optimizations.
2634
2635 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
2636
2637         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
2638         (dataflow_set): Change vars type from htab_t to shared_hash.
2639         (shared_hash_pool, empty_shared_hash): New variables.
2640         (vars_clear): Removed.
2641         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
2642         shared_hash_find_slot_unshare, shared_hash_find_slot,
2643         shared_hash_find_slot_noinsert, shared_hash_find): New
2644         static inlines.
2645         (shared_hash_unshare, shared_hash_destroy): New functions.
2646         (unshare_variable): Unshare set->vars if shared, use
2647         shared_hash_htab.
2648         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
2649         (get_init_value, find_src_set_src, dump_dataflow_set,
2650         clobber_variable_part, emit_notes_for_differences): Use
2651         shared_hash_htab.
2652         (dataflow_set_init): Remove second argument, set vars to
2653         empty_shared_hash instead of creating a new htab.
2654         (dataflow_set_clear): Call shared_hash_destroy and set vars
2655         to empty_shared_hash instead of calling vars_clear.
2656         (dataflow_set_copy): Don't call vars_copy, instead just share
2657         the src htab with dst.
2658         (variable_union): Use shared_hash_*, use initially NO_INSERT
2659         lookup if set->vars is shared.  Don't keep slot cleared before
2660         calling unshare_variable.  Unshare set->vars if needed.
2661         Even ->refcount == 1 vars must be unshared if set->vars is shared
2662         and var needs to be modified.
2663         (variable_canonicalize): New function.
2664         (dataflow_set_union): If dst->vars is empty, just share src->vars
2665         with dst->vars and traverse with variable_canonicalize to canonicalize
2666         and unshare what is needed.
2667         (dataflow_set_different): If old_set and new_set use the same shared
2668         htab, they aren't different.  If number of htab elements is different,
2669         htabs are different.  Use shared_hash_*.
2670         (dataflow_set_destroy): Call shared_hash_destroy instead of
2671         htab_delete.
2672         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
2673         second argument to dataflow_set_init.
2674         (vt_initialize): Likewise.  Initialize shared_hash_pool and
2675         empty_shared_hash, move bb in/out initialization afterwards.
2676         Use variable_htab_free instead of NULL as changed_variables del hook.
2677         (variable_was_changed): Change type of second argument to pointer to
2678         dataflow_set.  When inserting var into changed_variables, bump
2679         refcount.  Unshare set->vars if set is shared htab and slot needs to
2680         be cleared.
2681         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
2682         lookup if set->vars is shared.  Unshare set->vars if needed.
2683         Even ->refcount == 1 vars must be unshared if set->vars is shared
2684         and var needs to be modified.  Adjust variable_was_changed caller.
2685         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
2686         vars must be unshared if set->vars is shared and var needs to be
2687         modified.  Adjust variable_was_changed caller.
2688         (emit_note_insn_var_location): Don't pool_free var.
2689         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
2690         instead of 1.
2691         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
2692         free_alloc_pool on shared_hash_pool.
2693
2694 2009-06-20  Anthony Green  <green@moxielogic.com>
2695
2696         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
2697         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
2698
2699 2009-06-20  Richard Guenther  <rguenther@suse.de>
2700
2701         * tree-ssa-structalias.c (find_func_aliases): For memset use
2702         a constraint from NULL if we memset to zero.
2703         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
2704         we explicitly handle that do not read from memory.
2705         (call_may_clobber_ref_p_1): Properly handle builtins that may
2706         set errno.
2707
2708 2009-06-20  Richard Guenther  <rguenther@suse.de>
2709
2710         PR tree-optimization/40495
2711         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
2712         (new_scalar_tmp_constraint_exp): New function.
2713         (process_constraint): Do not create temporary decls.
2714         (process_all_all_constraints): Likewise.
2715         (handle_const_call): Likewise.
2716         (create_function_info_for): Do not set decl.
2717
2718 2009-06-19  Ian Lance Taylor  <iant@google.com>
2719
2720         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
2721         (rs6000_attribute_table): Make static; move before use.
2722
2723 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
2724
2725         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
2726         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
2727         Propagate the TREE_READONLY flag without overwriting it.
2728         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
2729         Propagate the TREE_READONLY flag onto the result.
2730         (process_call_operands): Move around.  Use correct constant value.
2731
2732 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2733
2734         PR target/40482
2735         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
2736         * config/arm/arm.md: Likewise.
2737
2738 2009-06-19  Ian Lance Taylor  <iant@google.com>
2739
2740         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
2741         to GIMPLE_ERROR_MARK.
2742
2743         * c-typeck.c (build_conditional_expr): Add op1_original_type and
2744         op2_original_type parameters.  Warn about using different enum types.
2745         * c-parser.c (c_parser_conditional_expression): Pass original
2746         types to build_conditional_expr.
2747         * c-tree.h (build_conditional_expr): Update declaration.
2748
2749 2009-06-19  Ian Lance Taylor  <iant@google.com>
2750
2751         * config/i386/i386.c (ix86_function_specific_save): Test that
2752         fields match values, rather than testing the values are in a
2753         certain range.
2754
2755 2009-06-19  Richard Guenther  <rguenther@suse.de>
2756
2757         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2758         ADDR_EXPR pointers.
2759         (ptr_derefs_may_alias_p): Likewise.
2760         (ptr_deref_may_alias_ref_p_1): New function.
2761         (ptr_deref_may_alias_ref_p): Likewise.
2762         (ref_maybe_used_by_call_p_1): Handle builtins that are not
2763         covered by looking at the ESCAPED solution.
2764         (call_may_clobber_ref_p_1): Likewise.
2765         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
2766         Handle NULL_TREE offset.  Do not produce redundant constraints.
2767         (process_all_all_constraints): New helper function.
2768         (do_structure_copy): Use it.
2769         (handle_lhs_call): Likewise.
2770         (find_func_aliases): Handle some builtins with pointer arguments
2771         and/or return values explicitly.
2772
2773 2009-06-19  Ian Lance Taylor  <iant@google.com>
2774
2775         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
2776
2777 2009-06-19  Ian Lance Taylor  <iant@google.com>
2778
2779         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
2780
2781 2009-06-19  Ian Lance Taylor  <iant@google.com>
2782
2783         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
2784         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
2785         version.
2786
2787         * c-decl.c (finish_decl): If -Wc++-compat, warn about
2788         uninitialized const.
2789
2790 2009-06-19  Ian Lance Taylor  <iant@google.com>
2791
2792         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
2793         all uses.
2794
2795         * c-decl.c (in_struct, struct_types): Remove.
2796         (struct c_binding): Add in_struct field.
2797         (c_binding_ptr): Define type, along with VEC.
2798         (struct c_struct_parse_info): Define.
2799         (struct_parse_info): New static variable.
2800         (bind): Initialize in_struct field.
2801         (start_struct): Remove enclosing_in_struct and
2802         enclosing_struct_types parameters.  Add
2803         enclosing_struct_parse_info parameter.  Change all callers.  Set
2804         struct_parse_info rather than in_struct and struct_types.
2805         (grokfield): If -Wc++-compat and there is a symbol binding for the
2806         field name, set the in_struct flag and push it on the
2807         struct_parse_info->fields vector.
2808         (warn_cxx_compat_finish_struct): New static function.
2809         (finish_struct): Remove enclosing_in_struct and
2810         enclosing_struct_types parameters.  Add
2811         enclosing_struct_parse_info parameter.  Change all callers.  Don't
2812         set C_TYPE_DEFINED_IN_STRUCT here.  Call
2813         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
2814         parameter.  Only push on struct_types if warn_cxx_compat.
2815         (finish_enum): Only push on struct_types if warn_cxx_compat.
2816         (declspecs_add_type): Add loc parameter.  Change all callers.
2817         Change all error calls to error_at.  Pass loc, not input_location,
2818         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
2819         defined in a struct.  If -Wc++-compat and parsing a struct, record
2820         that a typedef name was used.
2821         * c-parser.c (c_parser_declspecs): Get location to pass to
2822         declspecs_add_type.
2823         (c_parser_struct_or_union_specifier): Update calls to start_struct
2824         and finish_struct.
2825         * c-tree.h (struct c_struct_parse_info): Declare.
2826         (finish_struct, start_struct): Update declarations.
2827         (declspecs_add_type): Update declaration.
2828
2829 2009-06-19  Ian Lance Taylor  <iant@google.com>
2830
2831         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
2832         variable with an anonymous type.
2833
2834 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2835
2836         * see.c: Remove for real.
2837
2838 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2839
2840         * optabs.h (enum optab_index): Add new OTI_significand.
2841         (significand_optab): Define corresponding macro.
2842         * optabs.c (init_optabs): Initialize significand_optab.
2843         * genopinit.c (optabs): Implement significand_optab using
2844         significand?f2 patterns.
2845         * builtins.c (expand_builtin_mathfn): Handle
2846         BUILT_IN_SIGNIFICAND{,F,L}.
2847         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
2848         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2849
2850         * config/i386/i386.md (significandxf2, significand<mode>2): New
2851         expanders to implement significandf, significand and significandl
2852         built-ins as inline x87 intrinsics.
2853
2854 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
2855
2856         * config/avr/avr.c (avr_override_options): Remove setting value of
2857         PARAM_INLINE_CALL_COST.
2858
2859 2009-06-18  Richard Henderson  <rth@redhat.com>
2860
2861         PR 40488
2862         * tree-pass.h (TDF_ASMNAME): New.
2863         * tree-dump.c (dump_options): Add asmname.
2864         * doc/invoke.texi: Document it.
2865
2866         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
2867         (dump_decl_name): ...here.
2868         (dump_function_name): New flags arg; mind TDF_ASMNAME.
2869         (dump_generic_node): Update dump_function_name calls.
2870         (print_call_name): New flags arg; update all dump calls.
2871         * diagnostic.h (print_call_name): Update.
2872         * gimple-pretty-print.c (dump_gimple_call): Update.
2873
2874 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2875
2876         PR target/40470
2877         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
2878
2879 2009-06-18  Diego Novillo  <dnovillo@google.com>
2880
2881         * doc/plugins.texi: Document plugin_is_GPL_compatible.
2882         * plugin.c (str_license): Declare.
2883         (try_init_one_plugin): Assert that the symbol
2884         'plugin_is_GPL_compatible' exists.
2885
2886 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
2887
2888         * see.c: Remove.
2889         * Makefile.in (OBJS-common): Remove see.o.
2890         (see.o): Remove.
2891         * common.opt (fsee): Mark as preserved for backward compatibility.
2892         * opts.c (common_handle_option): Add OPT_fsee to the backward 
2893         compatibility section.
2894         * passes.c (init_optimization_passes, pass_see): Remove pass.
2895         * timevar.def (TV_SEE): Remove.
2896         * tree-pass.h (pass_see): Remove declaration.
2897         * doc/invoke.texi (-fsee): Remove documentation.
2898         
2899 2009-06-18  Martin Jambor  <mjambor@suse.cz>
2900
2901         * tree-sra.c: Include statistics.h
2902         (sra_stats): New variable.
2903         (sra_initialize): Clear sra_stats.
2904         (create_access_replacement): Increment sra_stats.replacements.
2905         (get_access_replacement): Do not return twice.
2906         (analyze_all_variable_accesses): Increment statistics counter by the
2907         number of scalarized aggregates.
2908         (generate_subtree_copies): Increment sra_stats.subtree_copies.
2909         (sra_modify_expr): Increment sra_stats.exprs.
2910         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
2911         (sra_modify_assign): Increment sra_stats.exprs,
2912         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
2913         (perform_intra_sra): Update statistics counters.
2914         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
2915
2916 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2917
2918         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2919         (arm_scalar_mode_supported_p): New function.
2920
2921 2009-06-18  Paul Brook  <paul@codesourcery.com>
2922             Sandra Loosemore  <sandra@codesourcery.com>
2923
2924         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
2925         (__extendhfsf2, __truncsfhf2): Define.
2926         * config/arm/fp16.c: New file.
2927         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2928         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
2929
2930 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2931
2932         * doc/extend.texi (Half-Precision): New section.
2933         * doc/invoke.texi (Option Summary): List -mfp16-format.
2934         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
2935         * config/arm/arm.opt (mfp16-format=): New.
2936         * config/arm/arm.c: Include intl.h.
2937         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
2938         (TARGET_INVALID_RETURN_TYPE): Redefine.
2939         (TARGET_PROMOTED_TYPE): Redefine.
2940         (TARGET_CONVERT_TO_TYPE): Redefine.
2941         (arm_fp16_format): Define.
2942         (all_fpus): Add entry for neon-fp16.
2943         (fp_model_for_fpu): Likewise.
2944         (struct fp16_format): Declare.
2945         (all_fp16_formats): Define.
2946         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
2947         functions.
2948         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
2949         and no ldrh.
2950         (arm_legitimate_index_p): Treat HFmode like HImode.
2951         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
2952         (coproc_secondary_reload_class): Special-case HFmode.
2953         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
2954         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
2955         (arm_init_fp16_builtins): New.
2956         (arm_init_builtins): Call it.
2957         (arm_invalid_parameter_type): New.
2958         (arm_invalid_return_type): New.
2959         (arm_promoted_type): New.
2960         (arm_convert_to_type).
2961         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
2962         format.
2963         (arm_emit_fp16_const): New function.
2964         (arm_mangle_type): Mangle __fp16 as "Dh".
2965         * config/arm/arm.h (TARGET_VFPD32): Make it know about
2966         FPUTYPE_NEON_FP16.
2967         (TARGET_NEON_FP16): New.
2968         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
2969         (enum fputype): Add FPUTYPE_NEON_FP16.
2970         (enum arm_fp16_format_type): Declare.
2971         (arm_fp16_format): Declare.
2972         (LARGEST_EXPONENT_IS_NORMAL): Define.
2973         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
2974         * config/arm/arm-modes.def (HFmode): Define.
2975         * config/arm/vfp.md: (*movhf_vfp): New.
2976         (extendhfsf2): New.
2977         (truncsfhf2): New.
2978         * config/arm/arm.md: (fpu): Add neon_fp16.
2979         (floatsihf2, floatdihf2): New.
2980         (fix_trunchfsi2, fix_trunchfdi2): New.
2981         (truncdfhf2): New.
2982         (extendhfdf2): New.
2983         (movhf): New.
2984         (*arm32_movhf): New.
2985         (*thumb1_movhf): New.
2986         (consttable_2): Add check for HFmode constants.
2987         (consttable_4): Handle HFmode constants.
2988
2989 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
2990
2991         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
2992
2993 2009-06-17  Olivier Hainque  <hainque@adacore.com>
2994
2995         * collect2.c (main): Use CONST_CAST2 to perform char ** to
2996         const char ** conversion in AIX specific section.
2997         
2998 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
2999
3000         * config/i386/i386.c (ix86_special_builtin_type): Remove
3001         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
3002         (bdesc_special_args): Updated.
3003         (ix86_init_mmx_sse_builtins): Likewise.
3004         (ix86_expand_special_args_builtin): Likewise.
3005
3006 2009-06-17  Richard Henderson  <rth@redhat.com>
3007
3008         * tree-pretty-print.c (maybe_dump_asm_name): New.
3009         (dump_decl_name): Use it.
3010         (PRINT_FUNCTION_NAME): Merge into...
3011         (dump_function_name): ... here.  Use maybe_dump_asm_name.
3012
3013 2009-06-17  Cary Coutant  <ccoutant@google.com>
3014
3015         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
3016         Change caller.
3017         * debug.c (struct gcc_debug_hooks): Change placeholder for
3018         source_line hook.
3019         (debug_nothing_int_charstar_int): Replaced by...
3020         (debug_nothing_int_charstar_int_bool): ...this.
3021         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
3022         source_line prototype.
3023         (debug_nothing_int_charstar_int): Replaced by...
3024         (debug_nothing_int_charstar_int_bool): ...this.
3025         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
3026         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
3027         Output is_stmt operand when necessary.
3028         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
3029         (notice_source_line): Add is_stmt parameter.
3030         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
3031         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
3032         Change callers.
3033         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
3034         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
3035
3036 2009-06-17  Ian Lance Taylor  <iant@google.com>
3037
3038         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
3039         Change all uses.
3040         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
3041         call uses.
3042
3043 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
3044
3045         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
3046         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
3047         tree_strip_sign_nop_conversions and
3048         tree_ssa_strip_useless_type_conversions rather than stripping
3049         the operations here.
3050         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
3051         Declare them.
3052         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
3053         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
3054         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
3055         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
3056         functions.
3057
3058 2009-06-17  Michael Eager  <eager@eagercon.com>
3059
3060         * config/rs6000/constraints.md (register_constraint "d"): New.
3061         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
3062         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
3063         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
3064         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
3065         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
3066         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
3067         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
3068         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
3069         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
3070         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
3071         __fctiwz): Same.
3072         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
3073         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
3074         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
3075         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
3076         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3077         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
3078         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
3079         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
3080         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
3081         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
3082         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
3083         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
3084         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
3085         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
3086
3087 2009-06-16  Ian Lance Taylor  <iant@google.com>
3088
3089         * profile.c (total_num_never_executed): Don't define.
3090         (compute_branch_probabilities): Don't count or print
3091         num_never_executed.
3092         (init_branch_prob): Don't set total_num_never_executed.
3093         (end_branch_prob): Don't print total_num_never_executed.
3094
3095 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
3096
3097         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
3098
3099 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
3100
3101         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
3102         (nabstd2_fpr): Same.
3103
3104 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
3105
3106         * expr.c (expand_assignment): Change complex type check.
3107
3108 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
3109
3110         * doc/plugins.texi (Building GCC plugins): Added new section. 
3111
3112 2009-06-17  Ian Lance Taylor  <iant@google.com>
3113
3114         * c-pch.c (get_ident): Don't set size of templ array.
3115         (pch_init): Don't set size of partial_pch array.
3116
3117         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
3118         string constant to intialize an array whose size is the length of
3119         the string.
3120
3121 2009-06-17  Richard Guenther  <rguenther@suse.de>
3122
3123         PR tree-optimization/40389
3124         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
3125         to addressable types.
3126         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
3127
3128 2009-06-17  Richard Guenther  <rguenther@suse.de>
3129
3130         PR middle-end/40460
3131         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
3132         if there is no evolution of left in the loop bail out.
3133         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
3134         chrec_fold_multiply.
3135
3136 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
3137             Janis Johnson  <janis187@us.ibm.com>
3138
3139         PR target/39254
3140         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
3141         for the symbol ref of a constant that is the source of a move
3142         - nor for any other not-obvious-label-ref constants.
3143
3144 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
3145
3146         * plugin.c (position_pass): Skip newly inserted pass during list
3147         traversal to avoid repeated insertion.
3148
3149 2009-06-16  Ian Lance Taylor  <iant@google.com>
3150
3151         * vec.h (VEC_stack_alloc): Define different version if
3152         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
3153         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
3154         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
3155         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
3156
3157 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
3158
3159         * config.gcc (extra_headers): Add ia32intrin.h for x86.
3160
3161         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
3162         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
3163         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
3164         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
3165         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
3166         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
3167         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
3168         (bdesc_special_args): Add __builtin_ia32_rdtsc and
3169         __builtin_ia32_rdtscp.
3170         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
3171         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
3172         and __builtin_ia32_rorhi.
3173         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
3174         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
3175         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
3176         (ix86_expand_args_builtin): Likewise.
3177         (ix86_expand_special_args_builtin): Likewise.
3178
3179         * config/i386/i386.md (UNSPECV_RDTSCP): New.
3180         (UNSPECV_RDTSC): Likewise.
3181         (UNSPECV_RDPMC): Likewise.
3182         (*bsr): Renamed to ...
3183         (bsr): This
3184         (*bsr_rex64): Renamed to ...
3185         (bsr_rex64): This.
3186         (rdpmc): New.
3187         (*rdpmc): Likewise.
3188         (*rdpmc_rex64): Likewise.
3189         (rdtsc): Likewise.
3190         (*rdtsc): Likewise.
3191         (*rdtsc_rex64): Likewise.
3192         (rdtscp): Likewise.
3193         (*rdtscp): Likewise.
3194         (*rdtscp_rex64): Likewise.
3195
3196         * config/i386/ia32intrin.h: New.
3197
3198         * config/i386/x86intrin.h: Include <ia32intrin.h>.
3199
3200 2009-06-16  Ian Lance Taylor  <iant@google.com>
3201
3202         * ira-build.c (copy_info_to_removed_store_destinations):
3203         Initialize parent_a.
3204
3205 2009-06-16  Ian Lance Taylor  <iant@google.com>
3206
3207         * c-decl.c (grokdeclarator): Change size_varies to bool.
3208
3209 2009-06-16  Ian Lance Taylor  <iant@google.com>
3210
3211         * sel-sched.c: Make forward declarations of move_op_hooks and
3212         fur_hooks explicitly extern.
3213
3214 2009-06-16  Ian Lance Taylor  <iant@google.com>
3215
3216         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
3217         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
3218
3219 2009-06-16  Ian Lance Taylor  <iant@google.com>
3220
3221         * resource.c (mark_referenced_resources): Change
3222         include_delayed_effects parameter to bool.  Change all callers.
3223         (mark_end_of_function_resources): Likewise.
3224         * reorg.c (insn_references_resource_p): Likewise.
3225         (insn_sets_resource_p): Likewise.
3226         * resource.h (mark_referenced_resources): Update declaration.
3227         (mark_end_of_function_resources): Update declaration.
3228
3229 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
3230
3231         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
3232
3233 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
3234
3235         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
3236         GCC can bootstrap on AIX with GNU Binutils 2.20.
3237
3238 2009-06-16  Ian Lance Taylor  <iant@google.com>
3239
3240         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
3241
3242 2009-06-16  Ian Lance Taylor  <iant@google.com>
3243
3244         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
3245         inline, not extern inline.
3246         (exact_log2): Likewise.
3247         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
3248         test CLZ_HWI.
3249         (exact_log2): Likewise, but don't test CTZ_HWI.
3250
3251 2009-06-16  Ian Lance Taylor  <iant@google.com>
3252
3253         * bitmap.c (bitmap_clear): Don't declare as inline.
3254         * gimple.c (gimplify_assign): Likewise.
3255         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
3256         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
3257         (sched_scan_info): Remove duplicate definition.
3258
3259 2009-06-16  Ian Lance Taylor  <iant@google.com>
3260
3261         * c-common.c (skip_evaluation): Don't define.
3262         (c_inhibit_evaluation_warnings): Define global variable.
3263         (overflow_warning): Check c_inhibit_evaluation_warnings rather
3264         than skip_evaluation.
3265         (convert_and_check, warn_for_div_by_zero): Likewise.
3266         * c-common.h (skip_evaluation): Don't declare.
3267         (c_inhibit_evaluation_warnings): Declare.
3268         * c-parser.c (c_parser_typeof_specifier): Set
3269         c_inhibit_evaluation_warnings rather than skip_evaluation.
3270         (c_parser_conditional_expression): Likewise.
3271         (c_parser_binary_expression): Likewise.
3272         (c_parser_sizeof_expression): Likewise.
3273         (c_parser_alignof_expression): Likewise.
3274         * c-typeck.c (build_indirect_ref): Check
3275         c_inhibit_evaluation_warnings rather than skip_evaluation.
3276         (build_conditional_expr, build_binary_op): Likewise.
3277
3278 2009-06-16  Richard Guenther  <rguenther@suse.de>
3279
3280         * tree-ssa-alias.c (is_escape_site): Remove.
3281         * tree-ssa-alias.h (enum escape_type): Remove.
3282         (is_escape_site): Likewise.
3283         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
3284         via casts and asms without deferring to is_escape_site.
3285
3286 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
3287
3288         PR middle-end/40446
3289         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
3290         use gen_lowpart if op0 has complex mode.
3291
3292 2009-06-16  Richard Guenther  <rguenther@suse.de>
3293
3294         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
3295         variables add them to ESCAPED.
3296         (find_func_aliases): Do not make all indirectly stored values escaped.
3297
3298 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
3299
3300         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
3301         make_decl_one_only.
3302
3303 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3304
3305         PR tree-optimization/40432
3306         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
3307         check whether we need to force gimple register operand.
3308
3309 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3310
3311         PR tree-optimization/40413
3312         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
3313         build_ref_for_offset.
3314         (propagate_subacesses_accross_link): Fix a typo in a comment.
3315
3316 2009-06-16  Ira Rosen  <irar@il.ibm.com>
3317
3318         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
3319         with additional parameter.
3320         * tree-vectorizer.h (enum vect_def_type): Add new value
3321         vect_nested_cycle.
3322         (enum vect_relevant): Add comments.
3323         (vect_is_simple_reduction): Add new argument.
3324         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
3325         Detect nested cycles.
3326         (vect_is_simple_reduction): Update documentation, add an argument to
3327         distinguish inner-loop reduction from nested cycle, detect nested
3328         cycles, fix printings and indentation, don't swap operands in case
3329         of nested cycle.
3330         (get_initial_def_for_reduction): Handle subtraction.
3331         (vect_create_epilog_for_reduction): Add new argument to specify
3332         reduction variable.
3333         (vect_finalize_reduction): Handle subtraction, fix comments.
3334         (vectorizable_reduction): Handle nested cycles. In case of nested
3335         cycle keep track of the reduction variable position. Call 
3336         vect_is_simple_reduction with additional parameter. Use original
3337         statement code in reduction epilogue for nested cycle. Call
3338         vect_create_epilog_for_reduction with additional parameter.
3339         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
3340         inner-loop vectorization.
3341         (vect_recog_widen_sum_pattern): Likewise.
3342         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
3343         and reductions.
3344         (vect_mark_stmts_to_be_vectorized): Likewise.
3345         (vect_get_vec_def_for_operand): Handle nested cycles.
3346
3347 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3348
3349         * doc/invoke.texi (Debugging Options): Fix option index entries
3350         for -fdump-statistics, -frandom-seed add entries for
3351         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
3352         (FRV Options): Fix entries for -mTLS, -mtls.
3353         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
3354         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
3355         (M68hc1x Options): Fix @itemx for -mnominmax.
3356         (MCore Options): Fix entry for -mno-lsim.
3357         (MMIX Options): Fix entry for -mabi=mmixware.
3358         (PDP-11 Options): Fix entry for -mbcopy-builtin.
3359
3360 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
3361
3362         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
3363         Mention the plugin mode of gengtype.
3364         * doc/gty.texi (Source Files Containing Type Information): Likewise.
3365         * gengtype.c: Updated copyright.
3366         (plugin_files, nb_plugin_files) Added new static variables.
3367         (measure_input_list) Care about plugin_files.
3368         (write_rtx_next): Added early return in plugin mode.
3369         (create_file): Updated copyright year in generated file. Added
3370         asserts.
3371         (oprintf): Added early return if NULL outf.
3372         (get_output_file_with_visibility): Care of plugin_files.
3373         (get_output_file_name): May return null.
3374         (write_local): Added early return.
3375         (put_mangled_filename): Ditto.
3376         (finish_root_table): Added check for base_files.
3377         (write_roots): Care about null when plugins.
3378         (main): Added plugin mode.
3379
3380 2009-06-15  Ian Lance Taylor  <iant@google.com>
3381
3382         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
3383         * gcov.c (read_count_file): Add braces around variables declared
3384         before label.
3385
3386         * c.opt (Wjump-misses-init): New warning.
3387         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
3388         -Wall and -Wc++-compat if not already set.
3389         (c_common_post_options): Clear warn_jump_misses_init if it was not
3390         set.
3391         * c-decl.c (struct c_binding): Change type field to a union with
3392         new label field.  Make it the first field in the struct.  Update
3393         references to type to use u.type instead.
3394         (struct c_spot_bindings): Define.
3395         (struct c_goto_bindings): Define.
3396         (c_goto_bindings_p): Define, along with VECs.
3397         (struct c_label_vars): Define.
3398         (struct c_scope): Add has_label_bindings field.
3399         (bind_label, set_spot_bindings): New static functions.
3400         (decl_jump_unsafe, update_spot_bindings): New static functions.
3401         (update_label_decls): New static function.
3402         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
3403         Update binding u.label field to shadowed field.
3404         (c_binding_start_stmt_expr): New function.
3405         (c_binding_end_stmt_expr): New function.
3406         (pushdecl): Don't call c_begin_vm_scope.
3407         (make_label): Add defining and p_label_vars parameters.  Change
3408         all callers.
3409         (lookup_label): Correct test for whether a label has not yet been
3410         defined.  Call bind_label rather than bind.
3411         (warn_about_goto): New static function.
3412         (lookup_label_for_goto): New function.
3413         (declare_label): Call bind_label rather than bind.
3414         (check_earlier_gotos): New static function.
3415         (define_label): Don't give errors about jumping into statement
3416         expressions or scopes of variably modified types.  Call
3417         set_spot_bindings and check_earlier_gotos.  Call bind_label
3418         instead of bind.  Don't set label_context_stack_se or
3419         label_context_stack_vm.
3420         (c_get_switch_bindings): New function.
3421         (c_release_switch_bindings): New function.
3422         (c_check_switch_jump_warnings): New function.
3423         (start_function): Don't set label_context_stack_se or
3424         label_context_stack_vm.
3425         (finish_function): Likewise.
3426         * c-typeck.c (label_context_stack_se): Don't define.
3427         (label_context_stack_vm): Don't define.
3428         (c_finish_goto_label): Call lookup_label_for_goto rather than
3429         lookup_label.  Don't give errors about jumping into a statement
3430         expression or the scope of a variably modified type.  Don't set
3431         label_context_stack_se or label_context_stack_vm.
3432         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
3433         fields.  Add bindings field.
3434         (c_start_case): Don't set deleted fields.  Set bindings field.
3435         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
3436         or blocked_vm.  Call c_check_switch_jump_warnings.
3437         (c_finish_case): Don't test blocked_stmt_expr field.  Call
3438         c_release_switch_bindings.
3439         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
3440         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3441         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
3442         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
3443         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3444         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
3445         (c_begin_vm_scope, c_end_vm_scope): Don't define.
3446         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
3447         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
3448         (C_DECL_UNJUMPABLE_VM): Don't define.
3449         (C_DECL_UNDEFINABLE_VM): Don't define.
3450         (struct c_label_list): Don't define.
3451         (struct c_label_context_se): Don't define.
3452         (struct c_label_context_vm): Don't define.
3453         (struct c_spot_bindings): Declare.
3454         (c_bindings_start_stmt_expr): Declare.
3455         (c_bindings_end_stmt_expr): Declare.
3456         (lookup_label_for_goto): Declare.
3457         (c_get_switch_bindings, c_release_switch_bindings): Declare.
3458         (c_check_switch_jump_warnings): Declare.
3459         (label_context_stack_se, label_context_stack_vm): Don't declare.
3460         (c_finish_goto_label): Update declaration.
3461         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
3462         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
3463         (Warning Options): Document -Wjump-misses-init.
3464
3465 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
3466
3467         * tree-object-size.c (addr_object_size): Fix a pasto in the last
3468         change.
3469
3470 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3471
3472         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3473
3474 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3475
3476         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3477
3478 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3479
3480         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3481
3482 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3483
3484         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3485         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3486         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3487         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
3488         * dwarf2asm.c (dw2_force_const_mem): Update call to
3489         make_decl_one_only.
3490         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3491         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3492         * langhooks.c (lhd_comdat_group): Remove.
3493         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3494         * tree.h (DECL_COMDAT_GROUP): New.
3495         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3496         (tree_decl_with_vis): Add comdat_group. Remove one_only.
3497         (make_decl_one_only): Change signature.
3498         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3499         make_decl_one_only.
3500         (make_decl_one_only): Change signature.
3501         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3502
3503 2009-06-15  Richard Guenther  <rguenther@suse.de>
3504
3505         PR middle-end/40439
3506         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3507
3508 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3509
3510         * tree-ssa-math-opts.c: Remove extra divide.
3511
3512 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3513
3514         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3515
3516 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3517
3518         * passes.c: Add bswap pass.
3519         * tree-pass.h: Add pass_optimize_bswap declaration.
3520         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3521         Include rtl.h, expr.h and optabs.h for optab_handler check.
3522         (struct symbolic_number, pass_optimize_bswap): New definition.
3523         (do_shift_rotate, verify_symbolic_number_p): New functions.
3524         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3525         (gate_optimize_bswap): New function.
3526         * tree.c (widest_int_cst_value): New function.
3527         * tree.h (widest_int_cst_value): Prototype added.
3528
3529 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
3530
3531         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3532         REG_EQUAL/REG_EQUIV notes.
3533
3534 2009-06-14  Richard Guenther  <rguenther@suse.de>
3535
3536         PR middle-end/40389
3537         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3538         has its address taken if NRV was applied and it is addressable.
3539         * tree-ssa-structalias.c (get_constraint_for_address_of): New
3540         function split out from ...
3541         (get_constraint_for_1): ... here.
3542         (handle_rhs_call): Use it to mark the return slot escaped if
3543         it is addressable and NRV was applied.
3544
3545 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3546
3547         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3548         Change first argument type to location_t.
3549         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3550         Do not set input_location.
3551         Use loc instead of input_location throughout.
3552
3553 2009-06-13  Richard Guenther  <rguenther@suse.de>
3554
3555         PR tree-optimization/40421
3556         * tree-predcom.c (should_unroll_loop_p): Remove.
3557         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3558
3559 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3560
3561         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3562         Add location argument.
3563
3564 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3565
3566         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3567         build_decl.
3568         * config/s390/s390.c (s390_build_builtin_va_list): Same.
3569         (s390_gimplify_va_arg): Pass location to create_artificial_label.
3570         * config/spu/spu-protos.h: Add location to
3571         spu_resolve_overloaded_builtin.
3572         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3573         spu_build_builtin_va_list.
3574         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3575         argument.  Pass location to build_function_call_vec.
3576         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3577         build_decl.
3578         (emit_fpu_switch): Same.
3579         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3580         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3581         to build_decl and create_artificial_label.
3582         (xtensa_gimplify_va_arg_expr): Same.
3583         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3584         (xstormy16_gimplify_va_arg_expr): Same.
3585         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3586         * config/arm/arm.c (arm_build_builtin_va_list): Same.
3587         * config/mips/mips.c (mips_build_builtin_va_list): Same.
3588         (mips16_build_function_stub): Same.
3589         (mips16_build_call_stub): Same.
3590
3591 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
3592
3593         PR target/40327
3594         * arm/constraints.md (Pa, Pb): New constraints.
3595         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
3596         split pattern to deal with them.
3597
3598 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
3599
3600         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3601         fix index entry for -Xpreprocessor.
3602
3603 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3604
3605         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3606         Add location argument to build_decl call.
3607         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3608         (rs6000_init_builtins): Same.
3609         (spe_init_builtins): Same.
3610         (rs6000_gimplify_va_arg): Add location argument to
3611         create_artificial_label call.
3612
3613 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
3614
3615         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
3616         * combine-stack-adj.c (pass_stack_adjustments): Use it.
3617         * Makefile.in: Fix GGC dependency for gcse.o.
3618
3619 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3620
3621         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
3622         * gimple-pretty-print.c (dump_gimple_stmt): Same.
3623         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
3624         created.
3625         * c-parser.c (c_parser_binary_expression): Use current column while
3626         building binary operations.
3627         * common.opt (fshow-column): Enable by default.
3628         * tree-vrp.c (check_array_ref): Use warning_at.
3629         (check_array_bounds): Use location from call back if expr has no
3630         location.
3631         * tree.h: Add location argument to maybe_fold_*.
3632         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
3633         (maybe_fold_offset_to_array_ref): Add location argument and use it.
3634         (maybe_fold_offset_to_component_ref): Same.
3635         (maybe_fold_offset_to_reference): Same.
3636         (maybe_fold_offset_to_address): Same.
3637         (maybe_fold_stmt_indirect): Same.
3638         (maybe_fold_stmt_addition): Same.
3639         (fold_stmt_r): Pass location to maybe_fold_*.
3640         (fold_gimple_assign): Same.
3641         * c-tree.h: Add location argument to finish_decl,
3642         default_function_array_conversion, store_init_value.
3643         * c-decl.c (define_label): Use error_at.
3644         (c_make_fname_decl): Pass location to finish_decl.
3645         (finish_decl): New location argument.
3646         (build_compound_literal): Pass location to store_init_value.
3647         (grokdeclarator): Pass location to finish_decl.
3648         (grokfield): Same.
3649         * c-typeck.c (array_to_pointer_conversion): New location argument.
3650         (function_to_pointer_conversion): Same.
3651         (default_function_array_conversion): Same.
3652         (parser_build_unary_op): Pass location to overflow_warning.
3653         (parser_build_binary_op): Same.  Use warning_at.
3654         (build_unary_op): Pass location to array_to_pointer_conversion.
3655         (build_c_cast): Pass location to digest_init.
3656         (build_modify_expr): New location argument.
3657         (convert_for_assignment): Same.
3658         (store_init_value): Same.
3659         (digest_init): Same.
3660         (output_init_element): Pass location to digest_init and
3661         array_to_pointer_conversion.
3662         (c_finish_return): Pass location to convert_for_assignment.
3663         * gimplify.c (gimplify_conversion): Pass location to
3664         maybe_fold_offset_to_address.
3665         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
3666         to maybe_fold_stmt_addition.
3667         * c-omp.c (c_finish_omp_atomic): Pass new location to
3668         build_modify_expr.
3669         (c_finish_omp_for): Same.
3670         * c-common.c (overflow_warning): New argument.
3671         * c-common.h: New argument to build_modify_expr, overflow_warning.
3672         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
3673         finish_decl.
3674         (c_parser_initializer): Pass location to
3675         default_function_array_conversion.
3676         (c_parser_initelt): Same.
3677         (c_parser_initval): Same.
3678         (c_parser_asm_operands): Same.
3679         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
3680         (c_parser_conditional_expression): Same.
3681         (c_parser_binary_expression): Add location info to stack.  Use it.
3682         (c_parser_unary_expression): Pass location to
3683         default_function_array_conversion, parser_build_unary_op,
3684         build_indirect_ref, c_parser_postfix_expression_after_primary.
3685         (c_parser_postfix_expression_after_primary): New location argument.
3686         Use it.
3687         (c_parser_expression_conv): Pass location to
3688         default_function_array_conversion.
3689         (c_parser_expr_list): Same.
3690         (c_parser_omp_atomic): Same.
3691         (c_parser_omp_for_loop): Same.
3692         * c-tree.h: (struct c_declarator): Add comment to id_loc.
3693         (build_array_declarator): New argument.
3694         * c-decl.c (build_array_declarator): Add location argument.
3695         (grokdeclarator): Set id_loc for cdk_array.
3696         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
3697         build_array_declarator.
3698         * tree.c (build_omp_clause): Add location argument.
3699         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
3700         (OMP_CLAUSE_LOCATION): New macro.
3701         (struct tree_omp_clause): Add location field.
3702         (build_omp_clause): Add argument.
3703         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
3704         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
3705         build_omp_clause.
3706         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
3707         (cp_parser_omp_clause_collapse): Same.
3708         (cp_parser_omp_clause_default): Same.
3709         (cp_parser_omp_clause_if): Same.
3710         (cp_parser_omp_clause_nowait): Same.
3711         (cp_parser_omp_clause_num_threads): Same.
3712         (cp_parser_omp_clause_ordered): Same.
3713         (cp_parser_omp_clause_schedule): Same.
3714         (cp_parser_omp_clause_untied): Same.
3715         (cp_parser_omp_for_loop): Same.
3716         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3717         * c-tree.h (c_start_case): Add location argument.
3718         (c_process_expr_stmt): Same.
3719         (c_finish_goto_*): Same.
3720         * tree-parloops.c (initialize_reductions): Pass location to
3721         build_omp_clause.
3722         (create_parallel_loop): Same.
3723         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
3724         (gfc_trans_omp_reduction_list): Same.
3725         (gfc_trans_omp_clauses): Same.
3726         (gfc_trans_omp_do): Same.
3727         * c-typeck.c (c_finish_goto_label): Same.
3728         (c_finish_goto_ptr): New location argument.
3729         (c_start_case): Same.
3730         (emit_side_effect_warnings): Same.
3731         (c_process_expr_stmt): Same.
3732         (c_finish_stmt_expr): Same.
3733         (c_finish_omp_clauses): Use error_at instead of error.
3734         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
3735         build_omp_clause.
3736         * c-omp.c (c_split_parallel_clauses): New location argument.
3737         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
3738         to build_omp_clause.
3739         (convert_local_reference_stmt): Same.
3740         (convert_gimple_call): Same.
3741         * c-common.h (c_split_parallel_clauses): New argument.
3742         * c-parser.c (c_parser_statement_after_labels): Pass location to
3743         c_finish_goto_label.
3744         (c_parser_switch_statement): Pass location to c_start_case.
3745         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
3746         and c_process_expr_stmt.
3747         (c_parser_omp_variable_list): Add location argument.
3748         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
3749         (c_parser_omp_clause_default): Same.
3750         (c_parser_omp_clause_if): Same.
3751         (c_parser_omp_clause_num_threads): Same.
3752         (-c_parser_omp_clause_ordered): Same.
3753         (c_parser_omp_clause_reduction): Pass location to
3754         c_parser_omp_variable_list.
3755         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
3756         (c_parser_omp_clause_untied): Same.
3757         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
3758         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3759
3760         * c-tree.h (check_for_loop_decls, undeclared_variable,
3761         build_component_ref, build_array_ref, build_external_ref,
3762         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
3763         build_conditional_expr, build_compound_expr, c_cast_expr,
3764         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
3765         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
3766         argument.
3767         * c-semantics.c (build_stmt): Same.
3768         (build_case_label): Same.
3769         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
3770         (undeclared_variable): New argument.
3771         (make_label): Same.
3772         (lookup_label): Pass location on down.
3773         (define_label): Same.
3774         (finish_decl): Same.
3775         (build_compound_literal): Same.
3776         (finish_struct): Same.
3777         (finish_function): Do not set location here.
3778         (check_for_loop_decls): New argument.
3779         * tree.c (save_expr): Set location.
3780         (build_empty_stmt): New argument.
3781         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
3782         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
3783         * builtins.c (gimplify_va_arg_expr): Use locations.
3784         (expand_builtin_sync_operation): Same.
3785         * c-typeck.c (build_component_ref): New argument.
3786         (build_array_ref): Same.
3787         (build_external_ref): Same.
3788         (c_expr_sizeof_expr): Same.
3789         (c_expr_sizeof_type): Same.
3790         (parser_build_unary_op): Same.
3791         (build_conditional_expr): Same.
3792         (build_compound_expr): Pass location on down.
3793         (build_compound_expr): New argument.
3794         (build_c_cast): Same.
3795         (c_cast_expr): Same.
3796         (build_asm_expr): Same.
3797         (c_finish_return): Same.
3798         (c_process_expr_stmt): Pass location on down.
3799         (c_finish_stmt_expr): New argument.
3800         (push_clenaup): Same.
3801         (c_finish_omp_parallel): Same.
3802         (c_finish_omp_task): Same.
3803         * gimplify.c (gimplify_call_expr): Pass location on down.
3804         * c-omp.c (c_finish_omp_master): New argument.
3805         (c_finish_omp_critical): Same.
3806         (c_finish_omp_ordered): Same.
3807         (c_finish_omp_barrier): Same.
3808         (-c_finish_omp_taskwait): Same.
3809         (c_finish_omp_atomic): Same.
3810         (c_finish_omp_flush): Same.
3811         * tree-inline.c (copy_tree_body_r): Pass location on down.
3812         (inline_forbidden_p): Remove use of input_location.
3813         * c-gimplify.c (c_build_bind_expr): New argument.
3814         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
3815         (c_sizeof_or_alignof_type): New argument.
3816         (c_alignof_expr): Same.
3817         (build_va_arg): Same.
3818         (c_add_case_label): Same.
3819         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
3820         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
3821         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
3822         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
3823         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
3824         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
3825         New argument.
3826         * stub-objc.c (objc_build_selector_expr): Same.
3827         (objc_build_throw_stmt): Same.
3828         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
3829         (c_parser_initelt): Same.
3830         (c_parser_compound_statement): Same.
3831         (c_parser_compound_statement_nostart): Same.
3832         (c_parser_label): Same.
3833         (c_parser_statement_after_labels): Same.
3834         (c_parser_if_body): Same.
3835         (c_parser_else_body): Same.
3836         (c_parser_if_statement): Same.
3837         (c_parser_switch_statement): Same.
3838         (c_parser_while_statement): Same.
3839         (c_parser_do_statement): Same.
3840         (c_parser_for_statement): Same.
3841         (c_parser_asm_statement): Same.
3842         (c_parser_conditional_expression): Same.
3843         (c_parser_binary_expression): Same.
3844         (c_parser_cast_expression): Same.
3845         (c_parser_unary_expression): Same.
3846         (c_parser_sizeof_expression): Same.
3847         (c_parser_alignof_expression): Same.
3848         (c_parser_postfix_expression): Same.
3849         (c_parser_expression): Same.
3850         (c_parser_objc_receiver): Same.
3851         (c_parser_omp_variable_list): Same.
3852         (c_parser_omp_structured_block): Same.
3853         (c_parser_omp_atomic): New argument.
3854         (c_parser_omp_barrier): Same.
3855         (c_parser_omp_critical): Same.
3856         (c_parser_omp_flush): Pass location on down.
3857         (c_parser_omp_for_loop): New argument.
3858         (c_parser_omp_for): Same.
3859         (c_parser_omp_master): Same.
3860         (c_parser_omp_ordered): Same.
3861         (c_parser_omp_sections_scope): Same.
3862         (c_parser_omp_sections): Same.
3863         (c_parser_omp_parallel): Same.
3864         (c_parser_omp_single): Same.
3865         (c_parser_omp_task): Same.
3866         (c_parser_omp_taskwait): Pass location on down.
3867         (c_parser_omp_construct): Same.
3868         (c_parser_omp_threadprivate): Same.
3869         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
3870         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
3871         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
3872         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
3873         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
3874         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
3875         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
3876         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
3877         config/i386/i386.c, stmt.c:
3878         Add location argument to the following function definitions and/or
3879         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
3880         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
3881         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
3882         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
3883         do_case, c_finish_bc_stmt, build_compound_literal,
3884         build_function_call.
3885         * c-decl.c (build_compound_literal): Add location argument.
3886         Make all diagnostic calls use location.
3887         (start_struct): Same.
3888         (finish_struct): Same.
3889         (start_enum): Same.
3890         (build_enumerator): Same.
3891         (start_function): Same.
3892         (grokdeclarator): Make all diagnostic calls use location.
3893         (store_parm_decls_oldstyle): Same.
3894         * c-typeck.c (build_function_call): Add location argument.
3895         Make all diagnostic calls use location.
3896         (do_case): Same.
3897         (c_finish_bc_stmt): Same.
3898         * tree-nested.c (get_trampoline_type): Add argument.
3899         Pass location to build_decl.
3900         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
3901         * rtl.h (RTL_LOCATION): New.
3902         * c-common.c (c_add_case_label): Add location argument.
3903         Make all diagnostic calls use location.
3904         * c-common.h: Add location argument to make_fname_decl, do_case,
3905         c_add_case_label, build_function_call, resolve_overloaded_builtin.
3906         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
3907         Set it appropriately for every case.  Pass enum_loc to start_enum
3908         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
3909         parser_xref_tag.
3910         (c_parser_struct_or_union_specifier): Save location.  Use it for
3911         start_struct, finish_struct, and parser_xref_tag.
3912
3913 2009-06-12  Ian Lance Taylor  <iant@google.com>
3914
3915         * fold-const.c (fold_unary): Rename local variable and to and_expr.
3916
3917         * c-opts.c (c_common_handle_option): For -Wc++-compat set
3918         cpp_opts->warn_cxx_operator_names.
3919
3920 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3921
3922         PR tree-opt/38865
3923         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
3924         is returns NULL and OP is a VCE, look through the VCE.
3925
3926 2009-06-12  Ian Lance Taylor  <iant@google.com>
3927
3928         PR bootstrap/40430
3929         * collect2.c (main): Use CONST_CAST2 in code inside #if
3930         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
3931
3932 2009-06-12  Joey Ye  <joey.ye@intel.com>
3933
3934         PR middle-end/39146
3935         * cfgexpand.c (get_decl_align_unit): Update
3936         max_used_stack_slot_alignment with align instead of
3937         stack_alignment_needed.
3938
3939         * function.c (assign_stack_local_1): Update
3940         max_used_stack_slot_alignment with alignment_in_bits instead
3941         of stack_alignment_needed.
3942         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
3943         here.
3944
3945 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
3946
3947         * dwarf2out.c (last_var_location_insn): New variable.
3948         (dwarf2out_end_epilogue): Clear last_var_location_insn.
3949         (dwarf2out_var_location): Don't record anything after last real
3950         insn.  Only change labels if there were any real instructions
3951         in between last note and this one, or if changed sections.
3952
3953 2009-06-11  Richard Henderson  <rth@redhat.com>
3954
3955         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
3956         note when storing the frame pointer in a register.
3957         (FRP): Don't redefine to nothing for epilogue.
3958         (alpha_expand_epilogue): Mark register and sp restores.
3959         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
3960
3961         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
3962         when gen_lowpart is needed.
3963
3964 2009-06-11  Richard Henderson  <rth@redhat.com>
3965
3966         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
3967
3968         * dwarf2out.c (need_data_align_sf_opcode): New.
3969         (div_data_align): Move earlier.
3970         (def_cfa_1, reg_save): Use it.
3971
3972 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
3973
3974         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
3975         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
3976         (ix86_handle_option): Handle OPT_mcrc32.
3977         (ix86_target_string): Add -mcrc32.
3978         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
3979
3980         * config/i386/i386.h (TARGET_CRC32): New.
3981
3982         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
3983         (sse4_2_crc32di): Likewise.
3984
3985         * config/i386/i386.opt (mcrc32): New.
3986
3987         * doc/invoke.texi: Document -mcrc32.
3988
3989 2009-06-11  Richard Henderson  <rth@redhat.com>
3990
3991         * common.opt (gdwarf-): Accept a version number.
3992         * doc/invoke.texi (gdwarf-): Update docs.
3993         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
3994         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
3995         version level, and record it.
3996
3997         * dwarf2.h (DW_CIE_VERSION): Remove.
3998         * dwarf2out.c (DWARF_VERSION): Remove.
3999         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
4000         (output_call_frame_info): Use CIE version 3 for dwarf3,
4001         or if the return register column is out of range for version 1.
4002         (dwarf_stack_op_name): Add all dwarf3 values.
4003         (DEBUG_PUBTYPES_SECTION): New.
4004         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
4005         encoding change for dwarf3.
4006         (output_die) [dw_val_class_die_ref]: Likewise.
4007         (output_compilation_unit_header): Emit correct version for dwarf3.
4008         (output_line_info): Likewise.
4009         (output_pubnames): Update for DWARF_VERSION removal.
4010         (output_aranges): Likewise.
4011         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
4012         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
4013         (dwarf2out_finish): Likewise.
4014
4015 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
4016
4017         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
4018         in r148403.
4019
4020 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
4021
4022         PR c/39252
4023         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
4024         * builtins.c (expand_builtin_unreachable): New function.
4025         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
4026         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
4027         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
4028         successors.
4029         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
4030         searching for missing barriers.
4031
4032 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4033
4034         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
4035         when -fprofile-generate* was passed.
4036         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
4037
4038 2009-06-11  Anthony Green  <green@moxielogic.com>
4039
4040         * config/moxie/moxie.md: Define length attribute for all instructions.
4041         (rCC): Define.
4042         (*b<cond:code>): Support limited branch ranges for new PC-relative
4043         branch instructions.
4044         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
4045
4046 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
4047
4048         * config/i386/i386.c (min_insn_size): Use get_attr_length
4049         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
4050         For __asm return 0.
4051
4052         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
4053         instead of emit_insn_before.
4054
4055 2009-06-10  Ian Lance Taylor  <iant@google.com>
4056
4057         PR bootstrap/40408
4058         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
4059         GIMPLE_SWITCH.
4060
4061 2009-06-10  Revital Eres  <eres@il.ibm.com>
4062
4063         * passes.c (init_optimization_passes): Reschedule
4064         predictive-commoning pass before complete unroll pass.
4065
4066 2009-06-10  Martin Jambor  <mjambor@suse.cz>
4067
4068         * cgraph.c (cgraph_node_can_be_local_p): New function.
4069         (cgraph_make_node_local): New function.
4070         * cgraph.h (cgraph_node_can_be_local_p): Declare.
4071         (cgraph_make_node_local): Declare.
4072
4073 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
4074
4075         * tree.h (tree_base): Add packed_flag and user_align fields.
4076         Decrease size of spare field.
4077         (TYPE_USER_ALIGN): Use user_align from tree_base.
4078         (DECL_USER_ALIGN): Likewise.
4079         (TYPE_PACKED): Use packed_flag from tree_base.
4080         (DECL_PACKED): Likewise.
4081         (tree_type): Delete packed_flag and user_align fields.  Widen
4082         precision field.  Widen mode field and shuffle fields to align
4083         mode on an 8-bit boundary.
4084         (tree_decl_common): Delete decl_flag_1 and user_align fields.
4085         Renumber decl_flag_* fields.  Fix comments.  Widen
4086         decl_common_unused field.
4087         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
4088         (DECL_EXTERNAL): Likewise.
4089         (DECL_BIT_FIELD): Likewise.
4090         (DECL_NONADDRESSABLE_P): Likewise.
4091         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
4092         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
4093
4094 2009-06-10  Ian Lance Taylor  <iant@google.com>
4095
4096         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
4097         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
4098         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
4099         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
4100         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
4101         DEF_VEC_ALLOC_FUNC_P.
4102         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
4103         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
4104         DEF_VEC_ALLOC_FUNC_O.
4105         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
4106         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
4107         DEF_VEC_ALLOC_FUNC_I.
4108         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
4109         (vec_stack_p_reserve_exact_1): Declare.
4110         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
4111         (vec_stack_free): Declare.
4112         (VEC_stack_alloc): Define.
4113         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
4114         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
4115         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
4116         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
4117         for void_p.
4118         (stack_vecs): New static variable.
4119         (vec_stack_p_reserve_exact_1): New function.
4120         (vec_stack_o_reserve_1): New static function.
4121         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
4122         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
4123         (vec_stack_free): New function.
4124         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
4125         (VEC_df_ref_stack_alloc): Define.
4126         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
4127         DEF_VEC_ALLOC_P_STACK.
4128         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
4129         (struct df_collection_rec): Change _vec fields to VEC.  Remove
4130         _use fields.
4131         (df_free_collection_rec): Adjust for new fields.
4132         (df_insn_rescan): Use new df_collection_rec fields.
4133         (df_notes_rescan, df_canonize_collection_rec): Likewise.
4134         (df_ref_create_structure, df_ref_record): Likewise.
4135         (df_get_conditional_uses, df_get_call_refs): Likewise.
4136         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
4137         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
4138         (df_record_exit_block_uses, df_bb_verify): Likewise.
4139         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
4140         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
4141         Remove count parameter.  Change return type to void.  Change all
4142         callers.
4143         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
4144         Remove count parameter.  Change return type to void.  Change all
4145         callers.
4146         (df_install_refs): Change old_vec parameter to VEC.  Remove count
4147         parameter.  Change all callers.
4148         (df_install_mws): Change old_vec parameter to VEC.  Remove count
4149         parameter.  Change all callers.
4150         (df_refs_verify): Change new_rec parameter to VEC.  Change call
4151         callers.
4152         (df_mws_verify): Likewise.
4153
4154 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
4155
4156         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
4157
4158 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
4159
4160         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
4161
4162 2009-06-10  Anthony Green  <green@moxielogic.com>
4163
4164         * config/moxie/crti.asm: New file.
4165         * config/moxie/crtn.asm: New file.
4166         * config/moxie/moxie.c: New file.
4167         * config/moxie/moxie.h: New file.
4168         * config/moxie/sfp-machine.h: New file.
4169         * config/moxie/moxie-protos.h: New file.
4170         * config/moxie/t-moxie: Created.
4171         * config/moxie/t-moxie-softfp: Created.
4172         * config/moxie/moxie.md: Created.
4173         * config/moxie/constraints.md: Created.
4174         * config.gcc: Add moxie support.
4175         * doc/md.texi (Machine Constraints): Add moxie constraints.
4176         * doc/contrib.texi (Contributors): Mention moxie port.
4177         * doc/install.texi (Specific): Mention the moxie port.
4178
4179 2009-06-09  Ian Lance Taylor  <iant@google.com>
4180
4181         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
4182         compiling with C++.
4183         * optabs.c (optab_table): Only use designated initializers if
4184         HAVE_DESIGNATED_INITIALIZERS is defined.
4185         (convert_optab_table): Likewise.
4186         (init_optabs): Always call init_insn_codes if
4187         HAVE_DESIGNATED_INITIALIZERS is not defined.
4188
4189 2009-06-09  Ian Lance Taylor  <iant@google.com>
4190
4191         * targhooks.c (default_builtin_vectorized_function): Change fn
4192         parameter to unsigned int.
4193         (default_builtin_vectorized_conversion): Change code parameter to
4194         unsigned int.
4195         (default_builtin_reciprocal): Change fn parameter to unsigned int.
4196         * targhooks.h: Update declarations.
4197         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
4198         parameter to unsigned int.
4199
4200         * c-typeck.c (comptypes_check_enum_int): New static function.
4201         (comptypes_internal): Add enum_and_int_p parameter.  Change all
4202         callers.
4203         (comp_target_types): Add location parameter.  Change all callers.
4204         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
4205         Change all callers.
4206         (function_types_compatible_p, type_lists_compatible_p): Likewise.
4207         (build_conditional_expr): Add colon_loc parameter.  Change all
4208         callers.
4209         (convert_for_assignment): Add location parameter.  Change all callers.
4210         * c-parser.c (c_parser_conditional_expression): Pass location of
4211         colon to build_conditional_expr.
4212         * c-tree.h (build_conditional_expr): Update declaration.
4213
4214 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
4215
4216         * graphite.c: Revert previous patch.
4217
4218 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
4219
4220         PR bootstrap/40103
4221         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
4222
4223 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
4224
4225         * tree-ssa-loop-prefetch.c
4226         (loop_prefetch_arrays): Fixed a portability problem in printf format
4227         string.
4228
4229 2009-06-09  Martin Jambor  <mjambor@suse.cz>
4230
4231         PR tree-optimization/40351
4232         * tree-sra.c (propagate_subacesses_accross_link): Check that a
4233         refrence to a potential artifical subaccess can be constructed.
4234
4235 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4236
4237         * config/sh/sh-protos.h (sh_optimization_options): Declare.
4238         (sh_override_options): Likewise.
4239         * config/sh/sh.c: Include params.h.
4240         (sh_optimization_options): New.
4241         (sh_override_options): Likewise.
4242         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
4243         (OVERRIDE_OPTIONS): Use sh_override_options.
4244
4245 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
4246
4247         * dwarf2out.c (emit_cfa_remember): New variable.
4248         (add_fde_cfi): If emit_cfa_remember, recurse to add
4249         DW_CFA_remember_state first.
4250         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
4251         instead just set emit_cfa_remember.
4252
4253 2009-06-08  Jan Hubicka  <jh@suse.cz>
4254
4255         PR debug/40126
4256         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
4257
4258 2009-06-08  Jan Hubicka  <jh@suse.cz>
4259
4260         PR middle-end/39834
4261         * cgraphunit.c (save_inline_function_body): Do not copy transform
4262         hooks for saved inline bodies.
4263         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
4264         for given function.
4265
4266 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
4267
4268         * jump.c (returnjump_p): Handle delayed branches.  Add missing
4269         function comment.
4270
4271 2009-06-08  Jan Hubicka  <jh@suse.cz>
4272
4273         PR middle-end/40102
4274         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
4275         original node might've been modified.
4276         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
4277
4278 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
4279
4280         * tree-object-size.c (addr_object_size): Add OSI argument.
4281         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
4282         (compute_builtin_object_size, expr_object_size): Adjust callers.
4283         (plus_stmt_object_size): Call addr_object_size instead of
4284         compute_builtin_object_size.
4285
4286 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
4287             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4288         
4289         * tree-ssa-loop-prefetch.c 
4290         (gather_memory_references): Introduced a counter for the number of 
4291         memory references.
4292         (anything_to_prefetch_p): Introduced a counter for the number of 
4293         prefetches.
4294         (is_loop_prefetching_profitable): New function with a cost model 
4295         for prefetching.
4296         (loop_prefetch_arrays): Use the new cost model to determine if 
4297         prefetching is profitable.
4298         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
4299         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4300         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
4301         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4302         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
4303         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4304         
4305 2009-06-08  Michael Matz  <matz@suse.de>
4306
4307         PR debug/40012
4308         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
4309         partitions use the same.
4310         (expand_one_var): Deal with DECL_RTL sometimes begin set also
4311         for basevars of SSA_NAMEs.
4312         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
4313         to not expand them twice.
4314         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
4315         multiple places.
4316
4317 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
4318
4319         * common.opt (fcompare-debug=, fcompare-debug-second): New.
4320         (fdump-final-insns=, gtoggle): New.
4321         * doc/invoke.texi: Document them.
4322         * final.c (rest_of_clean_state): Dump final insn stream.
4323         * gcc.c (invoke_as): Hook in -fcompare-debug.
4324         (static_spec_functions): Add compare-debug-dump-opt,
4325         compare-debug-self-opt and compare-debug-auxbase-opt.
4326         (compare_debug, compare_debug_second, compare_debug_opt): New.
4327         (switches_debug_check, n_switches_debug_check): New.
4328         (debug_auxbase_opt, debug_check_temp_file): New.
4329         (process_command): Handle -fno-compare-debug, -fcompare-debug and
4330         -fcompare-debug=*.
4331         (do_self_spec): Handle arguments after switches.
4332         (do_spec_1): Add .gk extension to temp file basenames for compare.
4333         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
4334         (cc1_options): Use it instead of normal auxbase computation for
4335         the second compare-debug compilation.
4336         (compare_files): New.
4337         (main): Set up and implement compare debug mode.
4338         (compare_debug_dump_opt_spec_function): New.
4339         (compare_debug_self_opt_spec_function): New.
4340         (compare_debug_auxbase_opt_spec_function): New.
4341         * toplev.c (process_options): Handle flag_gtoggle,
4342         flag_dump_final_insns.
4343         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
4344         during -fcompare-debug-second compilation.
4345
4346 2009-06-07  Ian Lance Taylor  <iant@google.com>
4347
4348         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
4349         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
4350
4351         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
4352         with no default node.  Change warning with %H to warning_at.
4353         Don't clear warn_switch around case checking.
4354         * doc/invoke.texi (Warning Options): Clarify distinction between
4355         -Wswitch and -Wswitch-enum.
4356
4357 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4358
4359         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
4360
4361 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4362
4363         * gbl-ctors.h: Add header guard.
4364
4365 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4366
4367         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
4368         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
4369         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
4370         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
4371         prototypes for removed functions.
4372         (expressions_equal_p): Move to ...
4373         * tree-ssa-sccvn.h: ... here and ...
4374         * matrix-reorg.c: ... adjust includes.
4375
4376 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4377
4378         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
4379
4380 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4381
4382         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
4383         (finish_function): Remove erroneous whitespace.
4384
4385 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4386
4387         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
4388         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
4389
4390 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4391
4392         * errors.c (internal_error): Commentary typo fix.
4393         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
4394         * tree-ssa-pre.c: Ditto.
4395
4396 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4397
4398         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
4399         them is supposed to hold actual statements.
4400
4401 2009-06-06  Ian Lance Taylor  <iant@google.com>
4402
4403         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
4404         empty statements can now have attributes.
4405
4406 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
4407
4408         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
4409         * config/mips/mips.md: Ditto.
4410
4411 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4412
4413         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
4414         _RELOCATABLE.
4415         (__eabi_uconvert): Likewise.
4416
4417 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4418
4419         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
4420         CFI_* definitions with IN_GCC.
4421
4422 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
4423
4424         * xcoffout.h (xcoffout_source_line): Update prototype.
4425
4426 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4427
4428         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
4429         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
4430
4431 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4432
4433         PR middle-end/40340
4434         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4435         inlined_function_outer_scope_p blocks for artificial inlines
4436         even at -g0/-g1.
4437         * tree.c (tree_nonartificial_location): Rewrite using
4438         block_nonartificial_location.
4439
4440 2009-06-05  Revital Eres  <eres@il.ibm.com>
4441             Leehod Baruch  <leehod@il.ibm.com>
4442
4443         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
4444         (expand_expr_real_1): Remove comment.
4445         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4446         Vectorize misaligned access when the target supports it.
4447         (vect_supportable_dr_alignment): Check for unaligned access support.
4448         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
4449         and remove asset.
4450
4451 2009-06-05  Julian Brown  <julian@codesourcery.com>
4452
4453         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
4454         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
4455
4456 2009-06-05  Richard Guenther  <rguenther@suse.de>
4457
4458         PR bootstrap/40350
4459         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
4460         as possibly unused.
4461
4462 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4463
4464         * config/s390/s390.c (global_not_special_regno_p): New static inline.
4465         (save_gprs): Don't tell unwinder when a global register is saved.
4466         (s390_emit_epilogue): Emit needed epilogue unwind info.
4467
4468 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4469
4470         * dwarf2out.c (deferred_asm_name): New.
4471         (add_name_and_src_coords_attributes): Defer creation of
4472         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
4473         computed yet.
4474         (move_linkage_attr): New.
4475         (dwarf2out_finish): Revisit deferrals and emit attributes at the
4476         right place.
4477
4478 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4479
4480         * tree-nested.c (finalize_nesting_tree_1): Declare the
4481         frame_decl in the binding tree.
4482
4483 2009-06-04  Cary Coutant  <ccoutant@google.com>
4484
4485         * basic-block.h (struct basic_block_def): Add discriminator field.
4486         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
4487         callers.
4488         * debug.c (do_nothing_debug_hooks): Add additional entry.
4489         (debug_nothing_int_charstar_int): New function.
4490         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
4491         (debug_nothing_int_charstar_int): New declaration.
4492         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
4493         discriminator value in .loc directive.
4494         * final.c (last_discriminator): New variable.
4495         (discriminator): New variable.
4496         (final_start_function): Initialize above variables, pass current
4497         discriminator to debug hook.
4498         (notice_source_line): Check for discriminator change.
4499         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
4500         * sdbout.c (sdbout_source_line): New parameter.
4501         * tree-cfg.c (struct locus_discrim_map): New structure type.
4502         (discriminator_per_locus): New hash table.
4503         (build_gimple_cfg): Allocate and free discriminator hash table.
4504         (make_edges): Call assign_discriminator.
4505         (locus_map_hash): New function.
4506         (locus_map_eq): New function.
4507         (next_discriminator_for_locus): New function.
4508         (same_line_p): New function.
4509         (assign_discriminator): New function.
4510         (make_cond_expr_edges): Call assign_discriminator.
4511         (make_gimple_switch_edges): Likewise.
4512         (first_non_label_stmt): New function.
4513         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
4514         all callers.
4515         * xcoffout.c (xcoffout_source_line): Add new parameter.
4516
4517         * configure.ac (gcc_cv_as_discriminator): New configury check for
4518         gas support for discriminator.
4519         * configure: Regenerate.
4520         * config.in: Regenerate.
4521
4522 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4523
4524         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
4525         val after checking for integers.
4526
4527 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
4528
4529         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
4530         X64_REGPARM_MAX.
4531         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
4532         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
4533         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
4534         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
4535         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
4536         X64_SSE_REGPARM_MAX.
4537         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
4538         X64_SSE_REGPARM_MAX.
4539
4540 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4541
4542         * gcc.c (report_times_to_file): New.
4543         (execute): Implement it.
4544         (process_command): Support -time=.
4545         * doc/invoke.texi: Document it.
4546
4547 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4548
4549         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
4550         that have value exprs.
4551
4552 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4553
4554         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
4555         declarations for constants until...
4556         (dw2_output_indirect_constant_1): ... this point.
4557
4558 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
4559
4560         PR target/10242
4561         * arm.md (arm_addsi3): Don't try to split an add with an
4562         eliminable register until after reload has completed.
4563
4564 2009-06-03  Ian Lance Taylor  <iant@google.com>
4565
4566         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
4567         * genattrtab.c (write_length_unit_log): Likewise.
4568         * genchecksum.c (dosum): Likewise.
4569         * gengtype.c (write_rtx_next): Likewise.
4570         (finish_root_table, write_roots): Likewise.
4571         * gimple.c (gimple_ops_offset_): Likewise.
4572         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
4573         * config/arc/arc.c (arc_attribute_table): Likewise.
4574         * config/arm/arm.c (arm_attribute_table): Likewise.
4575         * config/avr/avr.c (avr_attribute_table): Likewise.
4576         * config/crx/crx.c (crx_attribute_table): Likewise.
4577         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
4578         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
4579         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
4580         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
4581         * config/sh/sh.c (sh_attribute_table): Likewise.
4582         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
4583         * config/spu/spu.c (spu_attribute_table): Likewise.
4584         * config/v850/v850.c (v850_attribute_table): Likewise.
4585
4586         * config/alpha/alpha.c (vms_attribute_table): Make static.
4587         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
4588         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
4589         * config/mips/mips.c (mips_attribute_table): Likewise.
4590
4591         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
4592         $(SYSTEM_H).
4593         (cc1-checksum.o): Likewise.
4594
4595 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
4596
4597         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
4598
4599 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
4600
4601         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
4602         insn if it is changing sp.  Use gen_add3_insn instead of
4603         conditionally gen_addsi3 and gen_adddi3.
4604         (offset_below_red_zone_p): New static inline function.
4605         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
4606         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
4607         * config/rs6000/ppc-asm.h: Include auto-host.h.
4608         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
4609         CFI_RESTORE): Define.
4610         * config/rs6000/crtresxgpr.asm: Add unwind info.
4611         * config/rs6000/crtresxfpr.asm: Likewise.
4612         * config/rs6000/crtresgpr.asm: Likewise.
4613         * config/rs6000/crtresfpr.asm: Likewise.
4614         * config/rs6000/crtsavgpr.asm: Likewise.
4615         * config/rs6000/crtsavfpr.asm: Likewise.
4616
4617         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
4618         argument of DWARF2_FRAME_REG_OUT macros.
4619
4620 2009-06-03  Julian Brown  <julian@codesourcery.com>
4621
4622         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
4623         words or less (including TImode) in core registers.
4624
4625 2009-06-03  Richard Guenther  <rguenther@suse.de>
4626
4627         PR middle-end/40328
4628         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
4629
4630 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
4631
4632         * statistics.c (statistics_counter_event): Do not record event 
4633         in pass dump if its number == -1.
4634         (curr_statistics_hash): Add assert that we never get passes 
4635         with static number == -1.
4636
4637 2009-06-03  Richard Guenther  <rguenther@suse.de>
4638             Andrey Belevantsev  <abel@ispras.ru>
4639
4640         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
4641         non-BLKmode arrays addressable.
4642
4643 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
4644
4645         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
4646         * config/m68k/m68k.h: ... here.
4647         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
4648         m68k and fido.
4649
4650 2009-06-03  Martin Jambor  <mjambor@suse.cz>
4651
4652         PR tree-optimization/40323
4653         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
4654         assignment.
4655
4656 2009-06-03  Richard Guenther  <rguenther@suse.de>
4657
4658         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4659         consistently.
4660
4661 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
4662
4663         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
4664         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
4665         JUMP_TABLE_DATA_P where applicable.
4666         * config/sh/sh.c: Ditto.
4667         * config/sh/sh.h: Ditto.
4668         * config/sh/sh.md: Ditto.
4669         * config/sh/symbian.c: Ditto.
4670
4671 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
4672
4673         * config/i386/driver-i386.c (describe_cache): Optimize
4674         concatenation of strings.  Use snprintf instead of sprintf.
4675         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
4676         target when not compiling with GCC.
4677
4678 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4679
4680         * config/sh/sh.c: Revert last change.
4681         (sh_expand_epilogue): Emit a blockage insn before the frame
4682         pointer adjustment unconditionally.
4683
4684 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4685
4686         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
4687         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
4688         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
4689         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
4690         to COLLECT_GCC_OPTIONS.
4691
4692 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4693
4694         * collect2.c (target_system_root): New variable.
4695         (main): Handle --sysroot=.
4696         (ignore_library): Strip the sysroot from the library path.
4697
4698 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4699
4700         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
4701         (collect2.o): Depend on collect2-aix.h.
4702         (collect2-aix.o): New rule.
4703         * collect2-aix.h: New file.
4704         * collect2-aix.c: Likewise.
4705         * collect2.c: Include collect2-aix.h.  Don't undefine
4706         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
4707         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
4708         Use TARGET_AIX_VERSION instead of _AIX51.
4709         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
4710         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
4711         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
4712         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
4713         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
4714
4715 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4716
4717         * collect2.c (ignore_library): Avoid premature post-increment
4718         and null deference.
4719
4720 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4721
4722         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
4723         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
4724         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
4725         CROSS_DIRECTORY_STRUCTURE too.
4726         (LINK_LIBG_SPEC): Likewise.
4727         (LIB_SPEC): Add %R to sysroot paths.
4728         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
4729         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
4730         * config/rs6000/aix51.h: As for aix43.h.
4731         * config/rs6000/aix52.h: Likewise.
4732         * config/rs6000/aix53.h: Likewise.
4733         * config/rs6000/aix61.h: Likewise.
4734         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
4735         to the beginning of sysroot paths.
4736
4737 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4738
4739         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
4740         INSN_LISTs that are out of the REG_NOTE range.
4741
4742 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4743
4744         * loop-unroll.c (struct iv_to_split): Add pointer to next.
4745         (struct var_to_expand): Likewise.
4746         (struct opt_info): Add head and tail for linked lists of the above.
4747         (analyze_insn_to_expand_var): Initialize next.
4748         (analyze_iv_to_split_insn): Likewise.
4749         (analyze_insns_in_loop): Create linked lists.
4750         (allocate_basic_variable): Simplify for use without hash table.
4751         (insert_var_expansion_initialization): Likewise, make it type-safer.
4752         (combine_var_copies_in_loop_exit): Likewise.
4753         (apply_opt_in_copies): Walk lists rather than hash tables.
4754         (release_var_copies): Simplified and inlined by hand into...
4755         (free_opt_info): ... this function.
4756
4757 2009-06-02  Richard Guenther  <rguenther@suse.de>
4758
4759         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4760         for field decls.
4761
4762 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4763
4764         * cfgexpand.c (gimple_expand_cfg): Discard the source location
4765         only for builtins that are not overridden.
4766
4767 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4768
4769         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
4770         label string.
4771
4772 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4773
4774         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
4775
4776 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4777
4778         * combine.c (move_deaths): Compare LUIDs within the same BB only.
4779
4780 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4781
4782         * common.opt (fdump-unnumbered-links): New.
4783         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
4784         * print-rtl.c (flag_dump_unnumbered_links): New.
4785         (print_rtx): Test it.
4786
4787 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
4788
4789         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
4790         push/pop multiple to 8-byte alignment.
4791
4792 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
4793
4794         * config/i386/i386.c (queued_cfa_restores): New static variable.
4795         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
4796         functions.
4797         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
4798         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
4799         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
4800         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
4801         note unconditionally.
4802         (ix86_emit_restore_regs_using_mov): Likewise.
4803         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4804         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
4805         it through to ix86_emit_restore_reg_using_pop.
4806         (ix86_emit_leave): Add RED_OFFSET argument.  Call
4807         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
4808         instead of adding REG_CFA_OFFSET note unconditionally.
4809         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
4810         the above functions.  Call ix86_add_queued_cfa_restore_notes when
4811         needed.
4812
4813         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
4814         force output of the label even for dwarf2out_do_cfi_asm.
4815         (add_fde_cfi): If -g2 and above and cfi might change CFA,
4816         force creation of CFI label and chain DW_CFA_set_loc jumping to it
4817         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
4818         caller.
4819         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4820         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
4821         dwarf2out_cfi_label callers.
4822         * tree.h (dwarf2out_cfi_label): Adjust prototype.
4823         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
4824         Adjust dwarf2out_cfi_label callers.
4825         * config/vax/vax.c (vax_output_function_prologue): Likewise.
4826
4827         * config/i386/i386.h (struct machine_cfa_state,
4828         struct machine_function): Guard with ifndef USED_FOR_TARGET
4829         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
4830
4831         PR other/40024
4832         * emutls.c (__emutls_get_address): Change arr->size to mean number
4833         of allocated arr->data entries instead of # of slots + 1.
4834
4835         PR middle-end/40316
4836         * recog.c (peep2_reinit_state): New function.
4837         (peephole2_init_state): Use it at the end of a basic block and also
4838         when seeing a RTX_FRAME_RELATED_P insn.
4839
4840 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
4841
4842         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
4843         fixuns_truncrfdi2): New.
4844         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
4845         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
4846         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
4847         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
4848         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
4849         *recip_approx): Remove.
4850         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
4851         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
4852         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
4853         move to div.md.
4854         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
4855         setf_exp_rf): New.
4856
4857 2009-06-01  Ian Lance Taylor  <iant@google.com>
4858
4859         * attribs.c (register_attribute): Use CONST_CAST.
4860         * collect2.c (main): Use CONST_CAST2.
4861         (scan_prog_file): Likewise.
4862         * gcc.c (process_command, main): Likewise.
4863         * toplev.c (toplev_main): Likewise.
4864
4865         * c-typeck.c (handle_warn_cast_qual): New static function,
4866         partially broken out of build_c_cast.
4867         (build_c_cast): Call handle_warn_cast_qual.
4868         * doc/invoke.texi (Warning Options): Document new effect of
4869         -Wcast-qual.
4870
4871 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
4872
4873         * diagnostic.c (diagnostic_build_prefix): Always print columns.
4874         (diagnostic_report_current_module): Print columns.
4875         * common.opt (flag_show_column): Enable by default.
4876
4877 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
4878
4879         * alias.c (find_base_term): Check for NULL term before returning.
4880
4881 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4882
4883         Revert due to PR40320:
4884         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4885         * calls.c (emit_library_call_value_1): Don't force_operand for move
4886         and push insns.
4887
4888 2009-06-01  Olivier Hainque  <hainque@adacore.com>
4889             Eric Botcazou  <ebotcazou@adacore.com>
4890
4891         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
4892         to be processed as a bitfield for constructor output purposes.
4893         * output.h (initializer_constant_valid_for_bitfield_p): Declare
4894         new function.
4895         * varasm.c (oc_local_state): New type, output_constructor
4896         local state to support communication with helpers.
4897         (oc_outer_state): New type, output_constructor outer state of
4898         relevance in recursive calls.
4899         (output_constructor_array_range): New output_constructor helper,
4900         extracted code for an array range element.
4901         (output_constructor_regular_field): New output_constructor helper,
4902         extracted code for an element that is not a bitfield.
4903         (output_constructor_bitfield): New output_constructor helper,
4904         extracted code for a bitfield element.  Accept an OUTER state
4905         argument for recursive processing.  Recurse on record or array
4906         CONSTRUCTOR values, possibly past noop conversions.
4907         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
4908         VALUE is a valid constant-valued expression for use in a static
4909         bit-field initializer.
4910         (output_constructor): Rework to use helpers.  Accept and honor an
4911         OUTER state argument for recursive calls.  Return total size.  Be
4912         prepared for nested constructors initializing bitfields.
4913         (output_constant): Feed OUTER in calls to output_constructor.
4914
4915 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4916
4917         * calls.c (emit_library_call_value_1): Don't force_operand for move
4918         and push insns.
4919
4920 2009-06-01  Nick Clifton  <nickc@redhat.com>
4921
4922         * doc/invoke.texi (IA-64 Options): Fix typo.
4923
4924 2009-06-01  Ira Rosen  <irar@il.ibm.com>
4925
4926         PR tree-optimization/39129
4927         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
4928         printed message.
4929         (vect_do_peeling_for_loop_bound): Use
4930         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4931         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4932         (vect_loop_versioning): Likewise.
4933         (vect_create_cond_for_alias_checks): Fix indentation.
4934         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
4935         macros.
4936         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
4937         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
4938         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
4939         "control flow in loop".
4940         (vect_estimate_min_profitable_iters): Use
4941         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4942         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4943         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4944         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
4945         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
4946         statement belongs to a group of strided accesses with the exact code
4947         check.
4948         (vectorizable_load): Likewise.
4949         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
4950         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4951
4952 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
4953
4954         * config/freebsd-stdint.h: New file.
4955         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
4956         Add freebsd-stdint.h to tm_file.
4957
4958 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
4959
4960         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
4961         (thumb2_extendhidi2): Likewise.
4962
4963 2009-05-31  Ian Lance Taylor  <iant@google.com>
4964
4965         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
4966
4967 2009-05-31  Ian Lance Taylor  <iant@google.com>
4968
4969         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
4970         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
4971         (ipa-reference.o): Depend upon gt-ipa-reference.h.
4972
4973 2009-05-31  Jason Merrill  <jason@redhat.com>
4974
4975         * tree-pretty-print.c (print_call_name): Take the callee, not the
4976         call itself.  Make non-static.  Use dump_function_name for functions.
4977         (dump_generic_node): Adjust.
4978         * diagnostic.h: Declare print_call_name.
4979         * gimple-pretty-print.c (dump_gimple_call): Use it.
4980
4981 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4982
4983         * config/sh/sh.md (ashldi3_std): New define_expand.
4984         (ashldi3): Use it.
4985
4986 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4987
4988         PR target/40313
4989         * config/sh/sh.c: Include debug.h.
4990         (sh_expand_epilogue): Emit a blockage insn before the frame
4991         pointer adjustment also when dwarf2out_do_frame returns true.
4992
4993 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
4994
4995         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
4996         (thumb2_extendqidi2): New pattern.
4997
4998 2009-05-31  Ira Rosen  <irar@il.ibm.com>
4999
5000         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
5001         mark phis for renaming.
5002         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
5003         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
5004         Call mark_sym_for_renaming.
5005         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
5006         * tree-vect-loop.c (vect_transform_loop): Remove
5007         vect_memsyms_to_rename initialization and a call to
5008         mark_set_for_renaming.
5009
5010 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
5011
5012         PR middle-end/40304
5013         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
5014         frame related even if !set_cfa && style < 0.
5015
5016 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
5017
5018         * config/i386/mingw-tls.c: New file.
5019         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
5020         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
5021         defining _WIN32 but not __CYGWIN__.
5022
5023 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5024
5025         * configure.ac: Add MPC support.
5026         
5027         * config.in, configure: Regenerate.     
5028
5029 2009-05-29  Richard Henderson  <rth@redhat.com>
5030
5031         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
5032         NOTE_INSN_BASIC_BLOCK.
5033         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
5034         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
5035         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
5036         to be deleted.
5037         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
5038         add in_use field.
5039         (add_cfi): Disable check redefining cfa away from drap.
5040         (lookup_cfa_1): Add remember argument; handle remember/restore.
5041         (lookup_cfa): Pass remember argument.
5042         (cfa_remember): New.
5043         (compute_barrier_args_size_1): Remove sibcall check.
5044         (dwarf2out_frame_debug_def_cfa): New.
5045         (dwarf2out_frame_debug_adjust_cfa): New.
5046         (dwarf2out_frame_debug_cfa_offset): New.
5047         (dwarf2out_frame_debug_cfa_register): New.
5048         (dwarf2out_frame_debug_cfa_restore): New.
5049         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
5050         (dwarf2out_begin_epilogue): New.
5051         (dwarf2out_frame_debug_restore_state): New.
5052         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
5053         DW_CFA_restore_state.
5054         (output_cfi_directive): Likewise.
5055         (convert_cfa_to_fb_loc_list): Likewise.
5056         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
5057         * dwarf2out.h: Update.
5058         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
5059         (copy_insn_1): Early out for null.
5060         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
5061         and dwarf2out_frame_debug_restore_state.
5062         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
5063         (prologue_insn_hash, epilogue_insn_hash): New.
5064         (free_after_compilation): Adjust freeing accordingly.
5065         (record_insns): Create hash table if needed; push insns into
5066         hash instead of array.
5067         (maybe_copy_epilogue_insn): New.
5068         (contains): Search hash table instead of array.
5069         (sibcall_epilogue_contains): Remove.
5070         (thread_prologue_and_epilogue_insns): Split eh_return insns
5071         and mark them as epilogues.
5072         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
5073         scanning in terms of basic blocks.
5074         * insn-notes.def (CFA_RESTORE_STATE): New.
5075         * jump.c (returnjump_p_1): Accept EH_RETURN.
5076         (eh_returnjump_p_1, eh_returnjump_p): New.
5077         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
5078         CFA_REGISTER, CFA_RESTORE): New.
5079         * rtl.def (EH_RETURN): New.
5080         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
5081
5082         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
5083         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
5084
5085         * config/i386/i386.c (gen_push): Update cfa state.
5086         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
5087         add a CFA_ADJUST_CFA note.
5088         (ix86_dwarf_handle_frame_unspec): Remove.
5089         (ix86_expand_prologue): Update cfa state.
5090         (ix86_emit_restore_reg_using_pop): New.
5091         (ix86_emit_restore_regs_using_pop): New.
5092         (ix86_emit_leave): New.
5093         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
5094         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
5095         * config/i386/i386.h (struct machine_cfa_state): New.
5096         (ix86_cfa_state): New.
5097         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
5098         (eh_return_internal): Merge from eh_return_<mode>,
5099         use eh_return rtx, split w/ epilogue.
5100
5101 2009-05-29  Ian Lance Taylor  <iant@google.com>
5102
5103         * builtins.c (validate_gimple_arglist): Don't use va_arg with
5104         enum type.
5105         * calls.c (emit_library_call_value_1): Likewise.
5106
5107         * c-typeck.c (c_build_va_arg): New function.
5108         * c-tree.h (c_build_va_arg): Declare.
5109         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
5110         instead of build_va_arg.
5111
5112 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5113
5114         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
5115         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
5116         (ptr_difference_cost): Use affine combinations to compute it.
5117         (difference_cost): Likewise.
5118         (get_computation_cost_at): Compute more accurate cost for addresses
5119         if the ratio is a multiplier allowed in addresses.
5120         For non-addresses, consider that an additional offset or symbol is
5121         added only once.
5122
5123 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5124
5125         * config/i386/i386.c (ix86_decompose_address): Avoid useless
5126         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
5127
5128         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
5129         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
5130         (prefix_rex): For UNIT_MMX don't imply the prefix by default
5131         if MODE_DI.
5132         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
5133         to 1 for TYPE_SSE{IADD1,CVT1}.
5134         (prefix_vex_imm8): Removed.
5135         (length_vex): Only pass 1 as second argument to
5136         ix86_attr_length_vex_default if prefix_extra is 0.
5137         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
5138         (length): For prefix vex computation use length_immediate
5139         attribute instead of prefix_vex_imm8.
5140         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
5141         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
5142         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
5143         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
5144         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
5145         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
5146         a space in between the operands.
5147         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
5148         if one operand is 0xff and the other one si, di, bp or sp.
5149         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
5150         other one si, di, bp or sp.
5151         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
5152         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
5153         type and mode attributes.
5154         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
5155         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
5156         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
5157         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
5158         prefix_data16 attribute iff MODE_DF.
5159         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
5160         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
5161         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
5162         constm128_operand in length_immediate computation.
5163         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
5164         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
5165         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
5166         length_immediate attribute to 1.
5167         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
5168         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
5169         for certain alternatives.
5170         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
5171         prefix_data16 attribute if MODE_V1DF.
5172         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
5173         length_immediate to 1.
5174         (set_got_rex64, set_rip_rex64): Remove length attribute, set
5175         length_address to 4, set mode attribute to MODE_DI.
5176         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
5177         (fxam<mode>2_i387): Set length attribute to 4.
5178         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
5179         *prefetch_3dnow_rex): Override length_address attribute.
5180         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
5181         attributes.
5182         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
5183         (constm128_operand): Removed.
5184         * config/i386/i386.c (memory_address_length): For
5185         disp && !index && !base in 64-bit mode account for SIB byte if
5186         print_operand_address can't optimize disp32 into disp32(%rip)
5187         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
5188         for fs: or gs: segment.
5189         (ix86_attr_length_immediate_default): When checking if shortform
5190         is possible, truncate immediate to the length of the non-shortened
5191         immediate.
5192         (ix86_attr_length_address_default): Ignore MEM_P operands
5193         with X constraint.
5194         (ix86_attr_length_vex_default): Only check for DImode on
5195         GENERAL_REG_P operands.
5196         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
5197         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
5198         (sse_cvttps2pi): Clear prefix_rep attribute.
5199         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
5200         attribute.
5201         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
5202         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
5203         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
5204         iff operand 2 is const_int_operand.
5205         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
5206         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
5207         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
5208         instead of vex.
5209         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
5210         prefix_data16.
5211         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
5212         prefix_data16 attribute for movlpd and movhpd instructions.
5213         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
5214         length_immediate for shufpd instruction.
5215         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
5216         (avx_cmpp<avxmodesuffixf2c><mode>3,
5217         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
5218         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
5219         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
5220         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
5221         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
5222         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
5223         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
5224         prefix_data16 attribute for the first alternative to 1.
5225         (*avx_loadlps): Override length_immediate for the first alternative.
5226         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
5227         attributes for second alternative.
5228         (*vec_concatv2sf_sse4_1): Override length_immediate and
5229         prefix_data16 attributes for second alternative.
5230         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
5231         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
5232         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
5233         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
5234         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
5235         prefix_data16 and length_immediate to 1.
5236         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
5237         to 1.
5238         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
5239         prefix_extra attribute for variants that don't have 0f prefix alone.
5240         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
5241         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
5242         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
5243         *sse4_1_pextrd): Set length_immediate to 1.
5244         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
5245         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
5246         to 1.
5247         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
5248         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
5249         length_immediate to 1 for second alternative.
5250         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
5251         prefix_extra and length_immediate attributes for the first
5252         alternative.
5253         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
5254         first alternative.
5255         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
5256         to 1 for the first and third alternative.
5257         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
5258         alternative.
5259         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
5260         attribute.
5261         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
5262         attribute to 0.
5263         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
5264         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
5265         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
5266         *avx_psign<mode>3): Set prefix_extra attribute to 1.
5267         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
5268         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
5269         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
5270         ssse3_psign<mode>3): Override prefix_rex attribute.
5271         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
5272         (ssse3_palignrti): Override length_immediate to 1.
5273         (ssse3_palignrdi): Override length_immediate to 1, override
5274         prefix_rex attribute.
5275         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
5276         (sse4a_extrqi): Override length_immediate to 2.
5277         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
5278         (sse4a_insertq): Override prefix_data16 to 0.
5279         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
5280         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
5281         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
5282         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
5283         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
5284         and length_immediate to 1.
5285         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
5286         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
5287         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
5288         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
5289         and length_immediate to 1.
5290         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
5291         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
5292         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
5293         avx_ptest256): Override prefix_extra to 1.
5294         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
5295         Override prefix_data16 and length_immediate to 1.
5296         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
5297         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
5298         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
5299         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
5300         prefix_data16 to 0 and prefix_extra to 2.
5301         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
5302         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
5303         attribute.
5304         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
5305         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
5306         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
5307         and prefix_extra to 2.
5308         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
5309         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
5310         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
5311         avx_vpermilvar<mode>3,
5312         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
5313         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
5314         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
5315         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
5316         Override prefix_extra to 1.
5317         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
5318         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
5319         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
5320         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
5321         prefix_extra and length_immediate to 1.
5322         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
5323         modrm to 0.
5324         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
5325         to 1 for the first alternative.
5326         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
5327         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
5328         cases.
5329         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
5330         *movv2sf_internal_avx, *movv2sf_internal): Override
5331         prefix_rep attribute for certain alternatives.
5332         (*mov<mode>_internal): Override prefix_rep or prefix_data16
5333         attributes for certain alternatives.
5334         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
5335         attributes for certain alternatives.
5336         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
5337         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
5338         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
5339         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
5340         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
5341         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
5342         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
5343         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
5344         length_immediate to 1 if operand 2 is const_int_operand.
5345         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
5346         *vec_extractv2si_1): Set length_immediate attribute to 1.
5347         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
5348         using old 3DNOW insn rather than SSE/3DNOW_A.
5349         (mmx_emms, mmx_femms): Clear modrm attribute.
5350
5351 2009-05-29  Martin Jambor  <mjambor@suse.cz>
5352
5353         * tree-sra.c:  New implementation of SRA.
5354
5355         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
5356         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
5357         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
5358         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
5359         (SRA_MAX_STRUCTURE_COUNT): Removed.
5360         (SRA_FIELD_STRUCTURE_RATIO): Removed.
5361         * doc/invoke.texi (sra-max-structure-size): Removed.
5362         (sra-field-structure-ratio): Removed.
5363
5364 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5365
5366         PR middle-end/40291
5367         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
5368         before expansion.
5369
5370 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
5371
5372         PR rtl-optimization/40101
5373         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
5374         seqno.  Adjust comment.
5375         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
5376         inserting bookkeeping before a jump, the jump is not scheduled.
5377         When no positive seqno found, provide a value.  Add comment.
5378
5379 2009-05-29  Richard Guenther  <rguenther@suse.de>
5380
5381         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
5382         short-cutting on the first component.
5383
5384 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5385
5386         PR middle-end/39958
5387         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
5388         for trees other than decls/types.
5389
5390 2009-05-29  Richard Guenther  <rguenther@suse.de>
5391
5392         * tree-ssa-operands.c (get_expr_operands): Do not handle
5393         INDIRECT_REFs in the handled-component case.  Remove
5394         unused get_ref_base_and_extent case.
5395         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
5396         tree_low_cst and host_integerp where possible.
5397         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
5398         codes for equivalence.
5399         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
5400
5401 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
5402
5403         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
5404         to tmake_file for i[34567]86-*-cygwin*. 
5405
5406 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5407
5408         PR target/40017
5409         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
5410         (altivec_categorize_keyword, init_vector_keywords,
5411         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
5412         similar to bool.
5413
5414 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
5415
5416         * tree.c (handle_dll_attribute): Check if node is
5417         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
5418
5419 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
5420
5421         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
5422         component.
5423         (thumb2_zero_extendqidi2): Likewise.
5424
5425 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5426
5427         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
5428         instead of gen_movrt.
5429         * config/sh/sh.md (movrt): Remove.
5430
5431 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
5432
5433         * doc/invoke.texi (IA-64 Options):
5434         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
5435         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
5436         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
5437         -msched-prefer-non-control-spec-insns,
5438         -msched-stop-bits-after-every-cycle,
5439         -msched-count-spec-in-critical-path,
5440         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
5441         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
5442         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
5443         and -msched-spec-verbose.
5444
5445 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
5446
5447         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
5448         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
5449         error if used.
5450         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
5451
5452 2009-05-28  Richard Guenther  <rguenther@suse.de>
5453
5454         * tree-ssa-alias.c (ao_ref_init): New function.
5455         (ao_ref_base): Likewise.
5456         (ao_ref_base_alias_set): Likewise.
5457         (ao_ref_alias_set): Likewise.
5458         (refs_may_alias_p_1): Change signature.
5459         (refs_may_alias_p): Adjust.
5460         (refs_anti_dependent_p): Likewise.
5461         (refs_output_dependent_p): Likewise.
5462         (call_may_clobber_ref_p_1): Change signature.
5463         (call_may_clobber_ref_p): Adjust.
5464         (stmt_may_clobber_ref_p_1): New function split out from ...
5465         (stmt_may_clobber_ref_p): ... here.
5466         (maybe_skip_until): Adjust signature.
5467         (get_continuation_for_phi): Likewise.
5468         (walk_non_aliased_vuses): Likewise.
5469         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
5470         (ao_ref_init): Declare.
5471         (ao_ref_base): Likewise.
5472         (ao_ref_alias_set): Likewise.
5473         (stmt_may_clobber_ref_p_1): Likewise.
5474         (walk_non_aliased_vuses): Adjust.
5475         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
5476         (get_ref_from_reference_ops): remove.
5477         (vn_reference_lookup_2): Adjust signature.
5478         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
5479         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
5480         (vn_reference_lookup): Adjust.
5481         (vn_reference_insert): Likewise.
5482         (vn_reference_insert_pieces): Adjust signature.
5483         (visit_reference_op_call): Adjust.
5484         * tree-ssa-pre.c (get_expr_type): Simplify.
5485         (phi_translate_1): Adjust.
5486         (compute_avail): Likewise.
5487         (translate_vuse_through_block): Do not re-build trees.
5488         (value_dies_in_block_x): Likewise.
5489         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
5490         fields.
5491         (vn_reference_lookup_pieces): Adjust declaration.
5492         (vn_reference_insert_pieces): Likewise.
5493
5494 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
5495
5496         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
5497         with checking disabled.
5498
5499 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
5500
5501         PR target/37216
5502
5503         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
5504         macro definition for support of three-operand format aligned
5505         .comm directive in assembler on cygwin/pe/mingw target OS.
5506         * configure:  Regenerate.
5507         * config.h:  Regenerate.
5508
5509         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
5510         aligned form of .comm directive if -mpe-aligned-commons is in effect.
5511         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
5512
5513         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
5514         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
5515
5516 2009-05-28  Ira Rosen  <irar@il.ibm.com>
5517
5518         PR tree-optimization/40254
5519         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
5520         in analysis of basic blocks.
5521
5522 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
5523
5524         PR middle-end/33699
5525         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
5526         * target-def.h (TARGET_CONST_ANCHOR): New macro.
5527         (TARGET_INITIALIZER): Use it.
5528         * cse.c (CHEAPER): Move it up to the other macros.
5529         (insert): Rename this ...
5530         (insert_with_costs): ... to this.  Add cost parameters.  Update
5531         function comment.
5532         (insert): New function.  Call insert_with_costs.
5533         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
5534         find_reg_offset_for_const, try_const_anchors): New functions.
5535         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
5536         when using a const-anchor.  Call insert_const_anchors.
5537         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
5538         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
5539
5540 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5541
5542         * tree-inline.c (remap_decls): Enable nonlocalized variables
5543         when not optimizing.
5544
5545 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5546
5547         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
5548         Simplify other tests involving optimize.
5549
5550 2009-05-27  Tom Tromey  <tromey@redhat.com>
5551
5552         * unwind-dw2.c (_Unwind_DebugHook): New function.
5553         (uw_install_context): Call _Unwind_DebugHook.
5554
5555 2009-05-27  Tom Tromey  <tromey@redhat.com>
5556
5557         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
5558
5559 2009-05-27  Ian Lance Taylor  <iant@google.com>
5560
5561         * Makefile.in (LINKER, LINKER_FLAGS): Define.
5562         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
5563         (ALL_LINKERFLAGS): Define.
5564         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
5565         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5566         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
5567         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5568         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
5569         $(LINKER_FOR_BUILD).
5570         (build/gcov-iov$(build_exeext)): Likewise.
5571
5572 2009-05-27  Julian Brown  <julian@codesourcery.com>
5573
5574         * gcse.c (target.h): Include.
5575         (can_assign_to_reg_without_clobbers_p): Check that the target allows
5576         copy of argument to a pseudo register.
5577
5578 2009-05-27  Diego Novillo  <dnovillo@google.com>
5579
5580         * tree-ssa-live.c (dump_scope_block): Document arguments.
5581         (dump_scope_blocks): Document.
5582         (debug_scope_blocks): New.
5583         * tree-flow.h (debug_scope_blocks): Declare.
5584
5585 2009-05-21  Denis Chertykov  <denisc@overta.ru>
5586
5587         * doc/contrib.texi (Contributors): Add myself to the list.
5588
5589 2009-05-27  Olivier Hainque  <hainque@adacore.com>
5590
5591         * expr.c (target_align): New function.  Alignment the TARGET of an
5592         assignment may be assume to have.
5593         (highest_pow2_factor_for_target): Use it instead of relying on
5594         immediate tree attributes of TARGET, not necessarily honored when
5595         intermediate bitfields are involved.
5596         
5597 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5598
5599         PR target/40266
5600         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5601         AVX, SSE4, AES, PCLMUL and POPCNT.
5602
5603 2009-05-27  Diego Novillo  <dnovillo@google.com>
5604
5605         * tree-pretty-print.c (dump_location): New.
5606         (dump_generic_node): Call it.
5607         Factor code to handle BLOCK nodes ...
5608         (dump_block_node): ... here.
5609
5610 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
5611
5612         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
5613         with it.
5614         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
5615         included.
5616         * gcc-plugin.h: Include config.h and system.h.
5617         (IN_GCC): Define if not defined.
5618
5619 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
5620
5621         PR middle-end/40249
5622         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
5623         with -fno-inline.
5624
5625 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
5626
5627         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
5628         applicable.
5629         * config/m32r/m32r.h: Ditto.
5630         * config/m32r/m32r.md: Ditto.
5631         * config/m32r/predicates.md: Ditto.
5632
5633 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
5634
5635         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
5636
5637 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
5638
5639         * doc/plugins.texi
5640         (Loading plugins): typo.
5641         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
5642         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5643         (Interacting with the GCC Garbage Collector): Added new section.
5644         (Giving information about a plugin): Added new section for
5645         PLUGIN_INFO.
5646         * ggc.h (ggc_register_root_tab): Added declaration.
5647         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
5648         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
5649         (register_callback): Improved comment in declaration.
5650         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
5651         (extra_root_vec) Added static variable for dynamic roots registration.
5652         (ggc_register_root_tab) Added new routine.
5653         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
5654         PLUGIN_GGC_MARKING event.
5655         * ggc-zone.c: Include plugin.h.
5656         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5657         * ggc-page.c: Include plugin.h.
5658         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5659         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
5660         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
5661         (register_callback): check lack of callbacks for
5662         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
5663         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
5664         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
5665         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5666         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
5667         dependency on plugin.h.
5668         (plugin.o): Added dependency on ggc.h...
5669
5670 2009-05-26  Richard Guenther  <rguenther@suse.de>
5671
5672         PR middle-end/40248
5673         Revert
5674         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
5675         with mismatched comparison modes.
5676
5677         * expr.c (expand_expr_real_1): Expand the operand of a
5678         VIEW_CONVERT_EXPR in its natural mode.
5679
5680 2009-05-26  Ian Lance Taylor  <iant@google.com>
5681
5682         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
5683         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
5684         (ALL_COMPILERFLAGS): Define.
5685         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
5686         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5687         (collect2$(exeext), collect2.o): Likewise.
5688         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
5689         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
5690         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
5691         (libbackend.o, intl.o, cppdefault.o): Likewise.
5692         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5693         (build/%.o): Use $(COMPILER_FOR_BUILD).
5694         (build/gen%$(build_exeext)): Likewise.
5695         (build/gcov-iov$(build_exeext)): LIkewise.
5696         * config/t-darwin (darwin.o): Use $(COMPILER).
5697         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
5698         * config/t-sol2 (sol2-c.o): Likewise.
5699         (sol2.o): Likewise.
5700         * config/t-vxworks (vxworks.o): Likewise.
5701         * config/x-darwin (host-darwin.o): Likewise.
5702         * config/x-hpux (host-hpux.o): Likewise.
5703         * config/x-linux (host-linux.o): Likewise.
5704         * config/x-solaris (host-solaris.o): Likewise.
5705         * config/alpha/x-alpha (driver-alpha.o): Likewise.
5706         * config/arm/t-arm (arm-c.o): Likewise.
5707         * config/arm/t-pe (pe.o): Likewise.
5708         * config/arm/t-wince-pe (pe.o): Likewise.
5709         * config/i386/t-cygming (winnt.o): Likewise.
5710         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
5711         * config/i386/t-cygwin (cygwin1.o): Likewise.
5712         (cygwin2.o): Likewise.
5713         * config/i386/t-i386 (i386-c.o): Likewise.
5714         * config/i386/t-interix (winnt.o): Likewise.
5715         * config/i386/t-netware (netware.o): Likewise.
5716         * config/i386/t-nwld (nwld.o): Likewise.
5717         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
5718         * config/i386/x-i386 (driver-i386.o): Likewise.
5719         * config/i386/x-cygwin (host-cygwin.o): Likewise.
5720         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
5721         * config/ia64/t-ia64 (ia64-c.o): Likewise.
5722         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
5723         * config/mips/x-native (driver-native.o): Likewise.
5724         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
5725         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
5726         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
5727         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
5728         * config/score/t-score-elf (score7.o): Likewise.
5729         (score3.o): Likewise.
5730         * config/sh/t-sh (sh-c.o): Likewise.
5731         * config/sh/t-symbian (sh-c.o): Likewise.
5732         (symbian.o): Likewise.
5733         * config/spu/t-spu-elf (spu-c.o): Likewise.
5734         * config/v850/t-v850 (v850-c.o): Likewise.
5735         * config/v850/t-v850e (v850-c.o): Likewise.
5736
5737 2009-05-26  Richard Guenther  <rguenther@suse.de>
5738
5739         PR tree-optimization/40122
5740         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
5741         VECTOR_CSTs if possible.
5742         (fold_gimple_assign): Likewise.
5743
5744 2009-05-26  Richard Guenther  <rguenther@suse.de>
5745
5746         PR middle-end/40252
5747         * fold-const.c (fold_binary): Use the correct types for building
5748         rotates.
5749
5750 2009-05-26  Richard Guenther  <rguenther@suse.de>
5751
5752         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
5753         redundant calls to merge_alias_info.
5754         (bump_vector_ptr): Likewise.
5755         * tree-ssa-copy.c (merge_alias_info): Remove.
5756         (replace_exp_1): Remove call to merge_alias_info.
5757         (propagate_tree_value): Likewise.
5758         (fini_copy_prop): Propagate points-to info.
5759         * tree-flow.h (merge_alias_info): Remove.
5760
5761 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5762
5763         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
5764
5765 2009-05-25  Jan Hubicka  <jh@suse.cz>
5766
5767         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5768         * cgraph.h (struct inline_summary): New filed self_wize,
5769         size_inlining_benefit, self_time and time_inlining_benefit.
5770         (struct cgraph_global_info): Replace insns by time ans size fields.
5771         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5772         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5773         (ipcp_update_callgraph): Do not touch function bodies.
5774         * ipa-inline.c: Include except.h
5775         (MAX_TIME): New constant.
5776         (overall_insns): Remove.
5777         (leaf_node_p): New.
5778         (overall_size, max_benefit): New static variables.
5779         (cgraph_estimate_time_after_inlining): New function.
5780         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5781         (cgraph_clone_inlined_nodes): Update size.
5782         (cgraph_mark_inline_edge): Update size.
5783         (cgraph_estimate_growth): Use size info.
5784         (cgraph_check_inline_limits): Check size.
5785         (cgraph_default_inline_p): Likewise.
5786         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5787         (cgraph_decide_recursive_inlining): Check size.
5788         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5789         and times.
5790         (cgraph_decide_inlining): Likewise.
5791         (cgraph_decide_inlining_incrementally): Likewise; honor
5792         PARAM_EARLY_INLINING_INSNS.
5793         (likely_eliminated_by_inlining_p): New predicate.
5794         (estimate_function_body_sizes): New function.
5795         (compute_inline_parameters): Use it.
5796         * except.c (must_not_throw_labels): New function.
5797         * except.h (must_not_throw_labels): Declare.
5798         * tree-inline.c (init_inline_once): Kill inlining_weigths
5799         * tree-ssa-structalias.c: Avoid uninitialized warning.
5800         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5801         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5802         (PARAM_INLINE_CALL_COST): Remove.
5803         (PARAM_EARLY_INLINING_INSNS): New.
5804
5805 2009-05-25  Richard Guenther  <rguenther@suse.de>
5806
5807         PR tree-optimization/36327
5808         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
5809         callback for reference translation or lookup at the point of may-defs.
5810         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
5811         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
5812         for union COMPONENT_REFs.
5813         (vn_reference_lookup_3): New callback.  Lookup from memset
5814         and CONSTRUCTOR assignment, translate through struct copies.
5815         (vn_reference_lookup_pieces): Make sure to not free the
5816         passed operands array.  Adjust walk_non_aliased_vuses call.
5817         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
5818         make sure we do not leak memory.
5819
5820 2009-05-25  Richard Guenther  <rguenther@suse.de>
5821
5822         * tree-ssa-alias.h (dump_points_to_solution): Declare.
5823         * tree-inline.c (expand_call_inline): Reset the escaped and
5824         callused solutions.
5825         * tree-ssa-structalias.c (pass_build_ealias): New.
5826         * tree-pass.h (pass_build_ealias): Declare.
5827         * passes.c (init_optimization_passes): Add PTA during 
5828         early optimizations.
5829         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
5830         and CALLUSED solutions.
5831         (dump_points_to_solution): New function, split out from ...
5832         (dump_points_to_info_for): ... here.
5833         * tree-parloops.c (parallelize_loops): Reset the escaped and
5834         callused solutions.
5835
5836 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5837
5838         PR bootstrap/40027
5839         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
5840         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
5841
5842 2009-05-25  Ira Rosen  <irar@il.ibm.com>
5843
5844         PR tree-optimization/40238
5845         * tree-vect-stmts.c (vect_init_vector): Insert initialization
5846         statements after basic block's labels.
5847         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
5848         to free the allocated memory.
5849
5850 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
5851
5852         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
5853         return address with a USE.
5854
5855 2009-05-24  Richard Guenther  <rguenther@suse.de>
5856
5857         PR middle-end/40233
5858         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
5859         array type from the main variant of the inner type.
5860
5861 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5862
5863         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
5864         definition to bool (from int) to un-break build.
5865         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
5866
5867 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
5868
5869         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
5870         discard_stmt_changes): Delete.
5871         * tree-ssa-operands.c (scb_stack): Delete.
5872         (init_ssa_operands): Do not initialize it.
5873         (fini_ssa_operands): Do not free it.
5874         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
5875
5876         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
5877         update_stmt, remove the others.  Fix comments.
5878         * tree-dfa.c (optimize_stack_restore): Likewise.
5879         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
5880         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
5881         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5882         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
5883         Likewise.
5884         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5885         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
5886         (dom_opt_finalize_block): Likewise, adjusting access to
5887         stmts_to_rescan.
5888         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
5889         (stmts_to_rescan): Change item type to gimple.
5890         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
5891
5892 2009-05-24  Ira Rosen  <irar@il.ibm.com>
5893
5894         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
5895         * tree-pass.h (pass_slp_vectorize): New pass.
5896         * params.h (SLP_MAX_INSNS_IN_BB): Define.
5897         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
5898         * tree-vectorizer.c (timevar.h): Include.
5899         (user_vect_verbosity_level): Declare.
5900         (vect_location): Fix comment.
5901         (vect_set_verbosity_level): Update user_vect_verbosity_level
5902         instead of vect_verbosity_level.
5903         (vect_set_dump_settings): Add an argument. Ignore user defined
5904         verbosity if dump flags require higher level of verbosity. Print to
5905         stderr only for loop vectorization.
5906         (vectorize_loops): Update call to vect_set_dump_settings.
5907         (execute_vect_slp): New function.
5908         (gate_vect_slp): Likewise.
5909         (struct gimple_opt_pass pass_slp_vectorize): New.
5910         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
5911         access its members.
5912         (vec_info_for_bb): New function.
5913         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
5914         (VECTORIZATION_ENABLED): New macro.
5915         (SLP_ENABLED, SLP_DISABLED): Likewise.
5916         (vect_is_simple_use): Add bb_vec_info argument.
5917         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
5918         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5919         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5920         vect_schedule_slp, vect_analyze_slp): Likewise.
5921         (vect_analyze_stmt): Add slp_tree argument.
5922         (find_bb_location): Declare.
5923         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
5924         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
5925         (vect_analyze_loop_operations, vect_analyze_loop,
5926         get_initial_def_for_induction, vect_create_epilog_for_reduction,
5927         vect_finalize_reduction, vectorizable_reduction,
5928         vectorizable_live_operation, vect_transform_loop): Likewise.
5929         * tree-data-ref.c (dr_analyze_innermost): Update comment,
5930         skip evolution analysis if analyzing a basic block.
5931         (dr_analyze_indices): Likewise.
5932         (initialize_data_dependence_relation): Skip the test whether the
5933         object is invariant for basic blocks.
5934         (compute_all_dependences): Skip dependence analysis for data
5935         references in basic blocks.
5936         (find_data_references_in_stmt): Don't fail in case of invariant
5937         access in basic block.
5938         (find_data_references_in_bb): New function.
5939         (find_data_references_in_loop): Move code to
5940         find_data_references_in_bb and add a call to it.
5941         (compute_data_dependences_for_bb): New function.
5942         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
5943         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
5944         that STEP is 0.
5945         (vect_analyze_data_ref_dependence): Check for interleaving in case of
5946         unknown dependence in basic block and fail in case of dependence in
5947         basic block.
5948         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
5949         dependence instances from either loop or basic block vectorization
5950         info.
5951         (vect_compute_data_ref_alignment): Check if it is loop vectorization
5952         before calling nested_in_vect_loop_p.
5953         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
5954         dependence instances from either loop or basic block vectorization
5955         info.
5956         (vect_verify_datarefs_alignment): Likewise.
5957         (vect_enhance_data_refs_alignment): Adjust function calls.
5958         (vect_analyze_data_refs_alignment): Likewise.
5959         (vect_analyze_group_access): Fix printing. Skip different checks if
5960         DR_STEP is 0. Keep strided stores either in loop or basic block
5961         vectorization data structure. Fix indentation.
5962         (vect_analyze_data_ref_access): Fix comments, allow zero step in
5963         basic blocks.
5964         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
5965         dependence instances from either loop or basic block vectorization
5966         info.
5967         (vect_analyze_data_refs): Update comment. Call
5968         compute_data_dependences_for_bb to analyze basic blocks.
5969         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
5970         case of loop vectorization. In case of basic block vectorization use
5971         data-ref itself as a base.
5972         (vect_create_data_ref_ptr): In case of basic block vectorization:
5973         don't advance the pointer, add new statements before the current
5974         statement.  Adjust function calls.
5975         (vect_supportable_dr_alignment): Support only aligned accesses in
5976         basic block vectorization.
5977         * common.opt (ftree-slp-vectorize): New flag.
5978         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
5979         (vect_pattern_recog_1): Likewise.
5980         * tree-vect-stmts.c (process_use): Likewise.
5981         (vect_init_vector): Add new statements in the beginning of the basic
5982         block in case of basic block SLP.
5983         (vect_get_vec_def_for_operand): Adjust function calls.
5984         (vect_finish_stmt_generation): Likewise.
5985         (vectorizable_call): Add assert that it is loop vectorization, adjust
5986         function calls.
5987         (vectorizable_conversion, vectorizable_assignment): Likewise.
5988         (vectorizable_operation): In case of basic block SLP, take
5989         vectorization factor from statement's type and skip the relevance
5990         check. Adjust function calls.
5991         (vectorizable_type_demotion): Add assert that it is loop
5992         vectorization, adjust function calls.
5993         (vectorizable_type_promotion): Likewise.
5994         (vectorizable_store): Check for outer loop only in case of loop
5995         vectorization. Adjust function calls. For basic blocks, skip the
5996         relevance check and don't advance pointers.
5997         (vectorizable_load): Likewise.
5998         (vectorizable_condition): Add assert that it is loop vectorization,
5999         adjust function calls.
6000         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
6001         that it is not reduction, get vector type, call only supported
6002         functions, skip loop specific parts.
6003         (vect_transform_stmt): Check for outer loop only in case of loop
6004         vectorization.
6005         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
6006         (vect_is_simple_use): Fix comment, add new argument, fix conditions
6007         for external definition.
6008         * passes.c (pass_slp_vectorize): New pass.
6009         * tree-vect-slp.c (find_bb_location): New function.
6010         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
6011         check for patterns only in loops.
6012         (vect_build_slp_tree): Add argument, adjust function calls, fail in
6013         case of multiple types in basic block SLP.
6014         (vect_mark_slp_stmts_relevant): New function.
6015         (vect_supported_load_permutation_p): Fix comment.
6016         (vect_analyze_slp_instance): Add argument. In case of basic block
6017         SLP, take vectorization factor from statement's type, check that
6018         unrolling factor is 1. Adjust function call. Save SLP instance in
6019         either loop or basic block vectorization structure. Return FALSE,
6020         if SLP failed.
6021         (vect_analyze_slp): Add argument. Get strided stores groups from
6022         either loop or basic block vectorization structure. Return FALSE
6023         if basic block SLP failed.
6024         (new_bb_vec_info): New function.
6025         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
6026         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
6027         (vect_schedule_slp): Add argument. Get SLP instances from either
6028         loop or basic block vectorization structure. Set vectorization factor
6029         to be 1 for basic block SLP.
6030         (vect_slp_transform_bb): New function.
6031         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
6032
6033 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
6034
6035         * final.c (shorten_branches): Do not align labels for jump tables.
6036         (final_scan_insn): Use JUMP_TABLE_DATA_P.
6037
6038 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
6039
6040         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
6041         Remove outdated reference to flow.c and fix nits.
6042         * doc/gccint.texi: Tweak RTL description.
6043         * doc/rtl.texi: Likewise.
6044
6045 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
6046
6047         * config/avr/avr.c: Change my email address.
6048         * config/avr/avr.h: Likewise.
6049         * config/avr/avr.md: Likewise.
6050         * config/avr/avr-protos.h: Likewise.
6051         * config/avr/libgcc.S: Likewise.
6052
6053 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6054
6055         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
6056         (spu_split_load, spu_split_store): Change return type to int.
6057         (spu_split_convert): Declare.
6058         * config/spu/predicates.md (spu_mem_operand): Remove.
6059         (spu_mov_operand): Update.
6060         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
6061         * config/spu/spu.c (regno_aligned_for_load): Remove.
6062         (reg_aligned_for_addr, spu_expand_load): Define.
6063         (spu_expand_extv): Reimplement and handle MEM.
6064         (spu_expand_insv): Handle MEM.
6065         (spu_sched_reorder): Handle insn's with length 0.
6066         (spu_legitimate_address_p): Reimplement.
6067         (store_with_one_insn_p): Return TRUE for any mode with size
6068         larger than 16 bytes.
6069         (address_needs_split): Define.
6070         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
6071         operands.
6072         (spu_convert_move): Define.
6073         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
6074         (spu_split_store): Change all MEM's to TImode.
6075         (spu_init_expanders): Preallocate registers that correspond to
6076         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
6077         mark_reg_pointer.
6078         (spu_split_convert): Define.
6079         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
6080         (_move<mode>, _movdi, _movti): Update predicate and condition.
6081         (load, store): Change to define_split.
6082         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
6083         extend<mode>ti2.
6084         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
6085         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
6086         define_insn_and_split of lshr<mode>3.
6087         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
6088         (<v>ashr<mode>3_imm): Define.
6089         (extv, extzv, insv): Allow MEM operands.
6090         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
6091         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
6092         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
6093         (_spu_convert2): Change to define_insn_and_split and remove the
6094         corresponding define_peephole2.
6095         (stack_protect_set, stack_protect_test, stack_protect_test_si):
6096         Change predicates to memory_operand.
6097
6098 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
6099
6100         * config/arm/thumb2.md: Add 16-bit multiply instructions.
6101
6102 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
6103
6104         PR tree-optimization/40219
6105         * tree.c (iterative_hash_expr): Make sure the builtin function is
6106         a normal builtin function and not a front end or back end builtin
6107         before indexing into the built_in_decls array.
6108
6109 2009-05-22  Richard Guenther  <rguenther@suse.de>
6110
6111         PR middle-end/38964
6112         * alias.c (write_dependence_p): Do not use TBAA for answering
6113         anti-dependence or output-dependence.
6114         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
6115         (emit_pointer_definition): Remove.
6116         (emit_alias_warning): Likewise.
6117         (find_what_var_points_to): Remove TBAA pruning code.
6118         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
6119         violations.
6120         (compute_points_to_sets): Remove code computing the set of
6121         dereferenced pointers.
6122         * tree-data-ref.c (dr_may_alias_p): Properly use the split
6123         oracle for querying anti and output dependencies.
6124         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
6125         if TBAA may be applied.
6126         (refs_anti_dependent_p): New function.
6127         (refs_output_dependent_p): Likewise.
6128         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
6129         (refs_output_dependent_p): Likewise.
6130         * doc/tree-ssa.texi (Memory model): New section.
6131         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
6132         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
6133         * cfgexpand.c (expand_gimple_basic_block): Do not handle
6134         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
6135         * expr.c (expand_expr_real_1): Likewise.
6136         * gimple-low.c (lower_stmt): Likewise.
6137         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
6138         (dump_gimple_cdt): Remove.
6139         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
6140         (gimple_size): Likewise.
6141         (walk_gimple_op): Likewise.
6142         (is_gimple_stmt): Likewise.
6143         (walk_stmt_load_store_addr_ops): Likewise.
6144         (gimple_build_cdt): Remove.
6145         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
6146         * gimple.h (gimple_cdt_new_type): Remove.
6147         (gimple_cdt_new_type_ptr): Likewise.
6148         (gimple_cdt_set_new_type): Likewise.
6149         (gimple_cdt_location): Likewise.
6150         (gimple_cdt_location_ptr): Likewise.
6151         (gimple_cdt_set_location): Likewise.
6152         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
6153         * tree-cfg.c (remove_useless_stmts_1): Do not handle
6154         GIMPLE_CHANGE_DYNAMIC_TYPE.
6155         (verify_types_in_gimple_stmt): Likewise.
6156         * tree-inline.c (estimate_num_insns): Likewise.
6157         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
6158         (copy_decl_to_var): Likewise.
6159         (copy_result_decl_to_var): Likewise.
6160         * tree-pretty-print.c (dump_generic_node): Do not handle
6161         CHANGE_DYNAMIC_TYPE_EXPR.
6162         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6163         * tree-ssa-operands.c (get_expr_operands): Likewise.
6164         * tree-ssa-structalias.c (struct variable_info): Remove
6165         no_tbaa_pruning member.
6166         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
6167         (unify_nodes): Do not copy it.
6168         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
6169         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
6170         (set_uids_in_ptset): Do not check it.
6171         (find_what_var_points_to): Likewise.
6172         (compute_tbaa_pruning): Remove.
6173         (compute_points_to_sets): Do not call it.
6174         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
6175         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
6176         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
6177         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
6178         (DECL_NO_TBAA_P): Likewise.
6179         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
6180         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
6181         (expand_omp_atomic_pipeline): Do not set it.
6182         * print-tree.c (print_node): Do not dump it.
6183         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6184         redundant check.
6185
6186 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
6187
6188         PR target/39856
6189         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
6190         for clobber.
6191
6192 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
6193
6194         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
6195         non-external.
6196
6197 2009-05-22  Ben Elliston  <bje@au.ibm.com>
6198
6199         * Makefile.in (bversion.h, s-bversion): New targets.
6200         (TOPLEV_H): Add bversion.h.
6201         * toplev.h: Include "bversion.h".
6202         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
6203         the __format__ attribute only if compiling with the same version
6204         of GCC as the sources (the "build version").
6205
6206 2009-05-22  Ben Elliston  <bje@au.ibm.com>
6207
6208         * c-format.c (handle_format_attribute): Fix comment typo.
6209
6210 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
6211
6212         PR target/37846
6213         * config/ia64/ia64.opt (mfused-madd): New.
6214         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
6215         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
6216         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
6217         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
6218         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
6219         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
6220         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
6221         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
6222         instruction if !TARGET_FUSED_MADD.
6223         (fpma, fpms): Remove colon from name.
6224
6225 2009-05-22  Richard Guenther  <rguenther@suse.de>
6226
6227         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
6228         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
6229         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
6230         TARGET_MEM_REF.
6231         (create_expression_by_pieces): Only convert if necessary.
6232         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
6233         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
6234
6235 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
6236
6237         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
6238         regular pattern from a template and rename it ...
6239         (*extzv_truncsi_exts): ... to this.
6240
6241 2009-05-21  Richard Guenther  <rguenther@suse.de>
6242
6243         * cgraph.h (struct cgraph_node): Remove inline_decl member.
6244         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
6245         (cgraph_default_inline_p): Likewise.
6246         (cgraph_decide_inlining_incrementally): Likewise.
6247
6248 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6249             Uros Bizjak  <ubizjak@gmail.com>
6250
6251         * config/i386/cpuid.h (bit_MOVBE): New.
6252
6253         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
6254
6255         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
6256         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
6257         (ix86_handle_option): Handle OPT_mmovbe.
6258         (ix86_target_string): Add -mmovbe.
6259         (pta_flags): Add PTA_MOVBE.
6260         (processor_alias_table): Add PTA_MOVBE to "atom".
6261         (override_options): Handle PTA_MOVBE.
6262
6263         * config/i386/i386.h (TARGET_MOVBE): New.
6264
6265         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
6266         (*bswapsi_movbe): New.
6267         (*bswapdi_movbe): Likewise.
6268         (bswapdi2): Renamed to ...
6269         (*bswapdi_1): This.
6270         (bswapdi2): New expander.
6271
6272         * config/i386/i386.opt (mmovbe): New.
6273
6274         * doc/invoke.texi: Document -mmovbe.
6275
6276 2009-05-21  Taras Glek  <tglek@mozilla.com>
6277
6278         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
6279         * gcc-plugin.h (plugin_init): Updated signature.
6280         * gcc-plugin.h (plugin_name_args): Moved to this header.
6281         * doc/plugins.texi (plugin_init): Updated documention to reflect
6282         API change.
6283         * doc/plugins.texi (plugin_name_args): Added to documention.
6284
6285 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
6286
6287         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
6288         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
6289
6290 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
6291
6292         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
6293         JUMP_TABLE_DATA_P predicates where applicable.
6294         * config/i386/predicates.md: Ditto.
6295         * config/i386/sse.md: Ditto.
6296
6297 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
6298
6299         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
6300         operand2 -128 override length_immediate attribute to 1.
6301         * config/i386/predicates.md (constm128_operand): New predicate.
6302
6303         * config/i386/i386.c (memory_address_length): Handle %r12
6304         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
6305         also check REGNO.
6306         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
6307         mode look through optional ZERO_EXTEND and SUBREG.
6308         * config/i386/i386.md (R12_REG): New define_constant.
6309         (prefix_data16): For sse unit set also for MODE_TI insns.
6310         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
6311         insns set if operand 1 is ext_QIreg_operand.
6312         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
6313         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
6314         immediate.
6315         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
6316         mode from MODE_DI to MODE_SI.
6317         (movdi_1_rex64): Override modrm and length_immediate attributes
6318         only for movabs (TYPE_IMOV, alternative 2).
6319         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
6320         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6321         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6322         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6323         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
6324         prefix_rex attribute if DImode.
6325         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
6326         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
6327         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
6328         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
6329         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
6330         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
6331         Likewise.  For TYPE_IMOV clear length_immediate attribute.
6332         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
6333         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
6334         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
6335         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
6336         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
6337         or one operand TYPE_ISHIFT.
6338         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
6339         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
6340         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
6341         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
6342         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
6343         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
6344         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
6345         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
6346         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
6347         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
6348         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
6349         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
6350         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
6351         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
6352         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
6353         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
6354         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
6355         set mode attribute, don't override length attribute.
6356         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
6357         to 1.
6358         (return_internal_long): Set length attribute to 2 instead of 1.
6359         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
6360         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
6361         prefix_rex attribute.
6362         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
6363         New predicates.
6364         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
6365
6366 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6367
6368         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
6369
6370 2009-05-20  Ian Lance Taylor  <iant@google.com>
6371
6372         * tree.c (build_tree_list_vec_stat): New function.
6373         (ctor_to_vec): New function.
6374         (build_nt_call_vec): New function.
6375         (build_call_array): Change args to be a const pointer.
6376         (build_call_vec): New function.
6377         * tree.h (build_nt_call_vec): Declare.
6378         (build_tree_list_vec_stat): Declare.
6379         (build_tree_list_vec): Define.
6380         (build_call_array): Update declaration.
6381         (build_call_vec): Declare.
6382         (ctor_to_vec): Declare.
6383         * c-common.c (tree_vector_cache): New static variable.
6384         (make_tree_vector): New function.
6385         (release_tree_vector): New function.
6386         (make_tree_vector_single): New function.
6387         (make_tree_vector_copy): New function.
6388         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
6389         (make_tree_vector_single, make_tree_vector_copy): Declare.
6390         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
6391         (c_parser_expr_list): Don't manage cache here, instead call
6392         make_tree_vector.
6393         (c_parser_release_expr_list): Remove static function.
6394         (c_parser_vec_to_tree_list): Remove static function.
6395         (c_parser_attributes): Call build_tree_list_vec instead of
6396         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
6397         c_parser_release_expr_list.
6398         (c_parser_postfix_expression_after_primary): Likewise.
6399         (c_parser_objc_keywordexpr): Likewise.
6400
6401 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6402
6403         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
6404         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
6405         TARGET_CONVERT_TO_TYPE.
6406         * hooks.c (hook_tree_const_tree_null): Define.
6407         * hooks.h (hook_tree_const_tree_null): Declare.
6408         * target.h (struct gcc_target):  Add invalid_parameter_type,
6409         invalid_return_type, promoted_type, and convert_to_type fields.
6410         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
6411         (TARGET_INVALID_RETURN_TYPE): Define.
6412         (TARGET_PROMOTED_TYPE): Define.
6413         (TARGET_CONVERT_TO_TYPE): Define.
6414         (TARGET_INITIALIZER): Update for new fields.
6415         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
6416         (grokparms): Check targetm.invalid_parameter_type.
6417         * c-typeck.c (default_conversion): Check targetm.promoted_type.
6418         * c-convert.c (convert): Check targetm.convert_to_type.
6419
6420 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
6421
6422         * config/mips/mips.md (*extenddi_truncate<mode>,
6423         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
6424         defintions.
6425         (*extendhi_truncateqi): New define_insn_and_sptit.
6426
6427 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
6428
6429         PR middle-end/40204
6430         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
6431         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6432
6433 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
6434
6435         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
6436         the operand of VIEW_CONVERT_EXPR.
6437
6438 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6439
6440         * config/i386/driver-i386.c (host_detect_local_cpu): Check
6441         extended family and model for Intel processors.  Support Intel Atom.
6442
6443 2009-05-20  Olivier Hainque  <hainque@adacore.com>
6444
6445         * gstab.h (stab_code_type): Define, to be used instead of the
6446         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
6447         notice.
6448         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
6449         occurrences by stab_code_type.
6450         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
6451
6452 2009-05-20  Martin Jambor  <mjambor@suse.cz>
6453
6454         * tree-flow.h (insert_edge_copies_seq): Undeclare.
6455         (sra_insert_before): Likewise.
6456         (sra_insert_after): Likewise.
6457         (sra_init_cache): Likewise.
6458         (sra_type_can_be_decomposed_p): Likewise.
6459         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
6460         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
6461         (sra_insert_before): Likewise.
6462         (sra_insert_after): Likewise.
6463         (sra_init_cache): Likewise.
6464         (insert_edge_copies_seq): Made static and moved upwards.
6465
6466         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
6467         case.
6468
6469         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
6470
6471         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
6472         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
6473         simple copies.
6474
6475 2009-05-20  Richard Guenther  <rguenther@suse.de>
6476
6477         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6478         with mismatched comparison modes.
6479
6480 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6481
6482         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
6483         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
6484         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
6485         with shifts for Thumb2.
6486         (orsi_notsi): New for orn.
6487         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
6488         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
6489         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
6490         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
6491         Don't invert remainder for IOR.
6492         
6493 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
6494
6495         PR tree-optimization/40087
6496         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
6497         number_of_iterations_ne): Rename never_infinite argument.
6498         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
6499         number_of_iterations_le): Handle pointer-type ivs when
6500         exit_must_be_taken is false.
6501         (number_of_iterations_cond):  Do not always assume that
6502         exit_must_be_taken if the control variable is a pointer.
6503
6504 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6505
6506         * c-typeck.c (build_binary_op): Allow % on integal vectors.
6507         * doc/extend.texi (Vector Extension): Document that % is allowed too.
6508
6509 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6510
6511         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
6512         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
6513
6514 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6515
6516         PR c/40172
6517         * c.opt (Wlogical-op): Disabled by default.
6518         * c-opt (c_common_post_options): Do not enable Wlogical-op with
6519         Wextra.
6520         * doc/invoke.texi (Wlogical-op): Likewise.
6521         
6522 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6523
6524         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
6525         into CASE_CONVERT.
6526         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
6527         Propagate the type of the first operand.
6528         <ASSERT_EXPR>: Simplify.
6529         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
6530         Rewrite using the RHS code as discriminant.
6531         <NOP_EXPR>: Turn into CASE_CONVERT.
6532         <PLUS_EXPR>: Propagate the type of the first operand.
6533
6534 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
6535
6536         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
6537         (ia64_dconst_0_375): New.
6538         * config/ia64/ia64.c (ia64_override_options): Remove
6539         -minline-sqrt-min-latency warning.
6540         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
6541         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
6542         * config/ia64/ia64.md (*sqrt_approx): Remove.
6543         (sqrtsf2): Remove #if 0.
6544         (sqrtsf2_internal_thr): Rewrite and move to div.md.
6545         (sqrtdf): Remove assert.
6546         (sqrtdf2_internal_thr): Rewrite and move to div.md.
6547         (sqrtxf2): Remove #if 0.
6548         (sqrtxf2_internal_thr): Rewrite and move to div.md.
6549         * div.md (sqrt_approx_rf): New.
6550         (sqrtsf2_internal_thr): New implementation.
6551         (sqrtsf2_internal_lat): New.
6552         (sqrtdf2_internal_thr: New implementation.
6553         (sqrtxf2_internal): New implementation.
6554
6555 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6556             Hans-Peter Nilsson  <hp@axis.com>
6557
6558         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
6559         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
6560         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
6561         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
6562         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
6563         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
6564         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
6565         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
6566         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
6567         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
6568         * c-common.c: ...from here.
6569
6570 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6571
6572         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
6573
6574 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6575
6576         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
6577
6578 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6579
6580         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
6581         assignments with memcpy calls.
6582         (add_fdes): Likewise.
6583         (binary_search_unencoded_fdes): Likewise.
6584         (linear_search_fdes): Eliminate type puns.
6585         
6586 2009-05-19  Richard Guenther  <rguenther@suse.de>
6587
6588         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
6589         not falsely claim to have propagated into all uses.
6590
6591 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6592
6593         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
6594         version to v3.0.
6595
6596 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6597
6598         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
6599         * config/sh/sh.c (sh_legitimate_address_p): Make static.
6600         (TARGET_LEGITIMATE_ADDRESS_P): New.
6601         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6602         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6603         
6604 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
6605
6606         PR debug/40109
6607         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
6608         child of the containing namespace's DIE.
6609
6610 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
6611
6612         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
6613         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
6614         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
6615         extend patterns.
6616
6617 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6618
6619         PR target/39942
6620         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
6621         gen_align with gen_pad.
6622         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
6623         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
6624
6625         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
6626         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
6627
6628         * config/i386/i386.md (align): Renamed to ...
6629         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
6630         ASM_OUTPUT_MAX_SKIP_PAD.
6631
6632 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
6633
6634         * config.gcc: Fix variable syntax.
6635
6636         PR target/39531
6637         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
6638         before calling exact_log2.
6639         (output_iorsi3): Likewise.
6640         (output_xorsi3): Likewise.
6641
6642 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6643
6644         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
6645         for the none zero constant operand except for EQ and NE
6646         comprisons even when the first operand is R0.
6647
6648 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6649
6650         * config/s390/2064.md: Remove trailing whitespaces.
6651         * config/s390/2084.md: Likewise.
6652         * config/s390/constraints.md: Likewise.
6653         * config/s390/fixdfdi.h: Likewise.
6654         * config/s390/libgcc-glibc.ver: Likewise.
6655         * config/s390/s390-modes.def: Likewise.
6656         * config/s390/s390-protos.h: Likewise.
6657         * config/s390/s390.c: Likewise.
6658         * config/s390/s390.h: Likewise.
6659         * config/s390/s390.md: Likewise.
6660         * config/s390/tpf-unwind.h: Likewise.
6661
6662 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6663
6664         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
6665
6666 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6667
6668         M68K TLS support.
6669         * configure.ac (m68k-*-*): Check if binutils support TLS.
6670         * configure: Regenerate.
6671         * config/m68k/predicates.md (symbolic_operand): Extend comment.
6672         * config/m68k/constraints.md (Cu): New constraint.
6673         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
6674         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
6675         (movsi): Handle TLS symbols.
6676         (addsi3_5200): Handle XTLS symbols, indent.
6677         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
6678         (m68k_tls_reference_p): Declare.
6679         (m68k_legitimize_address): Declare.
6680         (m68k_unwrap_symbol): Declare.
6681         * config/m68k/m68k.opt (mxtls): New option.
6682         * config/m68k/m68k.c (ggc.h): Include.
6683         (m68k_output_dwarf_dtprel): Implement hook.
6684         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
6685         (m68k_expand_prologue): Load GOT pointer when function needs it.
6686         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
6687         (m68k_legitimate_constant_address_p): Same.
6688         (m68k_decompose_address): Handle TLS references.
6689         (m68k_get_gp): New static function.
6690         (enum m68k_reloc): New contants.
6691         (TLS_RELOC_P): New macro.
6692         (m68k_wrap_symbol): New static function.
6693         (m68k_unwrap_symbol): New function.
6694         (m68k_final_prescan_insn_1): New static function.
6695         (m68k_final_prescan_insn): New function.
6696         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
6697         functions.
6698         (legitimize_pic_address): Handle TLS references..
6699         (m68k_tls_get_addr, m68k_get_tls_get_addr)
6700         (m68k_libcall_value_in_a0_p)
6701         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
6702         (m68k_call_m68k_read_tp): Helper variables and functions for ...
6703         (m68k_legitimize_tls_address): Handle TLS references.
6704         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
6705         New functions.
6706         (m68k_legitimize_address): Handle TLS symbols.
6707         (m68k_get_reloc_decoration): New static function.
6708         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
6709         UNSPEC_RELOC32.
6710         (m68k_output_dwarf_dtprel): Implement hook.
6711         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
6712         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
6713         m68k_call_* routines.
6714         (sched_attr_op_type): Handle TLS symbols.
6715         (gt-m68k.h): Include.
6716         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
6717         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
6718
6719 2009-05-18  Martin Jambor  <mjambor@suse.cz>
6720
6721         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
6722         (visit_store_addr_for_mod_analysis): New function.
6723         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
6724         (determine_cst_member_ptr): Use gimple_assign_single_p.
6725         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
6726         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
6727         operands.  Don't check number of operands of a NOP_EXPR.
6728
6729 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
6730
6731         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
6732
6733 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6734
6735         PR c/40172
6736         * c-common.c (warn_logical_operator): Don't warn if one of
6737         expression isn't always true or false.
6738
6739 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
6740
6741         * config/i386/biarch32.h: New file.
6742         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
6743
6744 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
6745
6746         * config/mips/mips.md (*zero_extend<mode>_trunchi,
6747         *zero_extend<mode>_truncqi): Merge these into ...
6748         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
6749         Name the pattern following this as *zero_extendhi_truncqi.
6750
6751 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
6752
6753         PR middle-end/39301
6754         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
6755         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
6756         (output_info): Make field HOST_WIDEST_INT.
6757         (print_statistics): Use HOST_WIDEST_INT_PRINT.
6758         (dump_bitmat_statistics): Same.
6759
6760 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6761
6762         * config.gcc (use_gcc_stdint):  Set to wrap.
6763         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6764         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6765         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6766         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6767         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6768         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6769         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6770         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6771
6772 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
6773
6774         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
6775         tune_64.
6776         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
6777         Move definitions earlier.
6778         (OPT_ARCH64, OPT_ARCH32): Define.
6779         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
6780         and tune_64.
6781
6782 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6783
6784         PR target/40153
6785         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
6786         implies.
6787
6788 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6789
6790         * arm.md (movdi2): Copy non-reg values to DImode registers.
6791
6792 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
6793
6794         PR target/39942
6795         * final.c (label_to_max_skip): New function.
6796         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
6797         CODE_LABEL_NUMBER <= max_labelno.
6798         * output.h (label_to_max_skip): New prototype.
6799         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
6800         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
6801         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
6802         Handle CODE_LABELs with >= 16 byte alignment or with
6803         max_skip == (1 << align) - 1.
6804         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
6805         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
6806
6807         PR target/39942
6808         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
6809         .p2align 3 if MAX_SKIP is smaller than 7.
6810         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
6811
6812 2009-05-15  Ian Lance Taylor  <iant@google.com>
6813
6814         * alias.c (struct alias_set_entry_d): Rename from struct
6815         alias_set_entry.  Change all uses.
6816         * except.c (struct call_site_record_d): Rename from struct
6817         call_site_record.  Change all uses.
6818         * except.h (struct eh_region_d): Rename from struct eh_region.
6819         Change all uses.
6820         * gcse.c (struct hash_table_d): Rename from struct hash_table.
6821         Change all uses.
6822         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
6823         ivtype_map_elt.  Change all uses.
6824         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
6825         Change all uses.
6826         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
6827         * graphite.h (struct name_tree_d): Rename from struct name_tree.
6828         Change all uses.
6829         (struct sese_d): Rename from struct sese.  Change all uses.
6830         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
6831         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
6832         * optabs.h (struct optab_d): Rename from struct optab.  Change all
6833         uses.
6834         (struct convert_optab_d): Rename from struct convert_optab.
6835         Change all uses.
6836         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
6837         ipa_opt_pass.  Change all uses.
6838         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
6839         all uses.
6840
6841         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
6842         defined as a typedef.
6843         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
6844         defined as a tag.
6845
6846 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6847
6848         PR 16302
6849         * fold-const.c (make_range,build_range_check,merge_ranges): Move
6850         declaration to...
6851         (merge_ranges): Returns bool. 
6852         * tree.h (make_range): .. to here.
6853         (build_range_check): Likewise.
6854         (merge_ranges): Likewise. Renamed from merge_ranges.
6855         * c-typeck.c (parser_build_binary_op): Update calls to
6856         warn_logical_operator.
6857         * c-common.c (warn_logical_operator): Add new warning.
6858         * c-common.h (warn_logical_operator): Update declaration.
6859         
6860 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6861
6862         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
6863         
6864 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6865
6866         * doc/install.texi: Document MPC requirements, flags etc.
6867
6868         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
6869         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
6870         Evaluate constant arguments.
6871         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
6872         (fold_builtin_1): Likewise, also evaluate constant arguments.
6873         Remove superfluous break.
6874         (do_mpc_ckconv): New.
6875         * real.h: Include mpc.h.
6876         * toplev.c (print_version): Output MPC version info if available.
6877
6878 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6879
6880         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
6881
6882 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6883
6884         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
6885         only once.
6886
6887 2009-05-15  Jan Hubicka  <jh@suse.cz>
6888
6889         * doc/invoke.texi (max-early-inliner-iterations): New flag.
6890         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
6891         (try_inline): Fix return value.
6892         (cgraph_decide_inlining_incrementally): Honor new value.
6893         (cgraph_early_inlining): Handle indirect inlining.
6894         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
6895
6896 2009-05-15  Jan Hubicka  <jh@suse.cz>
6897
6898         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
6899         * cgraphunit.c (cgraph_finalize_function): Set it.
6900         (cgraph_expand_function): Use it.
6901
6902 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6903
6904         * real.c (encode_ieee_half): Define.
6905         (decode_ieee_half): Define.
6906         (ieee_half_format): Define.
6907         (arm_half_format): Define.
6908         * real.h (ieee_half_format): Declare.
6909         (arm_half_format): Declare.
6910
6911 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6912
6913         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
6914         swapped, and reversed optabs exist before trying to use them.
6915
6916 2009-05-15  Paul Brook  <paul@codesourcery.com>
6917             Sandra Loosemore  <sandra@codesourcery.com>
6918
6919         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
6920         loads.  Allow PRE_DEC.
6921         (output_move_neon): Handle PRE_DEC.
6922         (arm_print_operand): Add 'A' for neon structure loads.
6923         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
6924         * config/arm/neon.md (neon_mov): Update comment.
6925         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
6926         calls.
6927         (Um): New constraint.
6928
6929 2009-05-15  Jan Hubicka  <jh@suse.cz>
6930
6931         Revert the following patch until testsuite fallout is fixed:
6932         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6933         * cgraph.h (struct inline_summary): New filed self_wize,
6934         size_inlining_benefit, self_time and time_inlining_benefit.
6935         (struct cgraph_global_info): Replace insns by time ans size fields.
6936         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6937         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6938         (ipcp_update_callgraph): Do not touch function bodies.
6939         * ipa-inline.c: Include except.h
6940         (MAX_TIME): New constant.
6941         (overall_insns): Remove
6942         (overall_size, max_benefit): New static variables.
6943         (cgraph_estimate_time_after_inlining): New function.
6944         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6945         (cgraph_clone_inlined_nodes): Update size.
6946         (cgraph_mark_inline_edge): Update size.
6947         (cgraph_estimate_growth): Use size info.
6948         (cgraph_check_inline_limits): Check size.
6949         (cgraph_default_inline_p): Likewise.
6950         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6951         (cgraph_decide_recursive_inlining): Check size.
6952         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6953         and times.
6954         (cgraph_decide_inlining): Likewise.
6955         (cgraph_decide_inlining_incrementally): Likewise; honor
6956         PARAM_EARLY_INLINING_INSNS.
6957         (likely_eliminated_by_inlining_p): New predicate.
6958         (estimate_function_body_sizes): New function.
6959         (compute_inline_parameters): Use it.
6960         * except.c (must_not_throw_labels): New function.
6961         * except.h (must_not_throw_labels): Declare.
6962         * tree-inline.c (init_inline_once): Kill inlining_weigths
6963         * tree-ssa-structalias.c: Avoid uninitialized warning.
6964         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6965         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6966         (PARAM_INLINE_CALL_COST): Remove.
6967         (PARAM_EARLY_INLINING_INSNS): New.
6968
6969 2009-05-15  Richard Guenther  <rguenther@suse.de>
6970
6971         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
6972         not TODO_update_ssa.
6973
6974 2009-05-15  Richard Guenther  <rguenther@suse.de>
6975
6976         PR tree-optimization/39999
6977         * gimple.h (gimple_expr_type): Use the expression type looking
6978         through useless conversions.
6979         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
6980         (vn_nary_op_insert_stmt): Likewise.
6981         (simplify_binary_expression): Likewise.
6982
6983 2009-05-15  Richard Guenther  <rguenther@suse.de>
6984
6985         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6986         New options, enabled by default.
6987         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6988         Document.
6989         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
6990         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
6991         * tree-ssa-structalias.c (gate_tree_pta): New function.
6992         (pass_build_alias): Use it.
6993
6994 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
6995
6996         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
6997         recurse on an invariant address if a conversion from a pointer
6998         type to a wider integer type is involved.
6999
7000 2009-05-15  Jan Hubicka  <jh@suse.cz>
7001
7002         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
7003         * cgraph.h (struct inline_summary): New filed self_wize,
7004         size_inlining_benefit, self_time and time_inlining_benefit.
7005         (struct cgraph_global_info): Replace insns by time ans size fields.
7006         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
7007         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
7008         (ipcp_update_callgraph): Do not touch function bodies.
7009         * ipa-inline.c: Include except.h
7010         (MAX_TIME): New constant.
7011         (overall_insns): Remove
7012         (overall_size, max_benefit): New static variables.
7013         (cgraph_estimate_time_after_inlining): New function.
7014         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
7015         (cgraph_clone_inlined_nodes): Update size.
7016         (cgraph_mark_inline_edge): Update size.
7017         (cgraph_estimate_growth): Use size info.
7018         (cgraph_check_inline_limits): Check size.
7019         (cgraph_default_inline_p): Likewise.
7020         (cgraph_edge_badness): Compute badness based on benefit and size cost.
7021         (cgraph_decide_recursive_inlining): Check size.
7022         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
7023         and times.
7024         (cgraph_decide_inlining): Likewise.
7025         (cgraph_decide_inlining_incrementally): Likewise; honor
7026         PARAM_EARLY_INLINING_INSNS.
7027         (likely_eliminated_by_inlining_p): New predicate.
7028         (estimate_function_body_sizes): New function.
7029         (compute_inline_parameters): Use it.
7030         * except.c (must_not_throw_labels): New function.
7031         * except.h (must_not_throw_labels): Declare.
7032         * tree-inline.c (init_inline_once): Kill inlining_weigths
7033         * tree-ssa-structalias.c: Avoid uninitialized warning.
7034         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
7035         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
7036         (PARAM_INLINE_CALL_COST): Remove.
7037         (PARAM_EARLY_INLINING_INSNS): New.
7038         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
7039         (inline-call-cost): Remove.
7040         (early-inlining-insns): New.
7041
7042 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
7043
7044         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
7045         for bounds.
7046         (print_int_cst_bounds_in_octal_p): Likewise.
7047         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
7048         with subtypes.
7049         * dwarf2out.c (base_type_die): Likewise.
7050         (is_subrange_type): Delete.
7051         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
7052         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
7053         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
7054         if the destination type is boolean.
7055         (build_range_check): Do not special-case subtypes.
7056         (fold_sign_changed_comparison): Likewise.
7057         (fold_unary): Likewise.
7058         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
7059         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
7060         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
7061         * tree.c (subrange_type_for_debug_p): New predicate based on the
7062         former is_subrange_type.
7063         * tree.h (subrange_type_for_debug_p): Declare.
7064         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
7065         (convert_affine_scev): Remove call to above function.
7066         (chrec_convert_aggressive): Likewise.
7067         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
7068         false for conversions involving subtypes.
7069         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
7070         (vrp_val_min): Likewise.
7071         (needs_overflow_infinity): Likewise.
7072         (extract_range_from_unary_expr): Likewise.
7073
7074 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
7075
7076         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
7077         * config/frv/frv.c: Likewise.
7078         * config/s390/s390.c: Likewise.
7079         * config/sparc/sparc.h: Likewise.
7080         * config/i386/i386.h: Likewise.
7081         * config/i386/i386.c: Likewise.
7082         * config/crx/crx.c: Likewise.
7083         * config/m68hc11/m68hc11.h: Likewise.
7084         * config/iq2000/iq2000.c: Likewise.
7085         * config/mn10300/mn10300.h: Likewise.
7086         * config/mn10300/mn10300.c: Likewise.
7087         * config/m68k/m68k.c: Likewise.
7088         * config/rs6000/rs6000.c: Likewise.
7089         * config/rs6000/xcoff.h: Likewise.
7090         * config/rs6000/linux64.h: Likewise.
7091         * config/rs6000/sysv4.h: Likewise.
7092         * config/score/score3.c: Likewise.
7093         * config/score/score7.c: Likewise.
7094         * config/score/score.c: Likewise.
7095         * config/arm/arm.md: Likewise.
7096         * config/mips/mips.c: Likewise.
7097         * config/mips/mips.md: Likewise.
7098         * config/bfin/bfin.h: Likewise.
7099         * config/pa/pa.c: Likewise.
7100         * config/pa/constraints.md: Likewise.
7101
7102         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
7103         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
7104         * config/pdp11/pdp11.h: Use memory_address_p instead.
7105
7106 2009-05-14  Ian Lance Taylor  <iant@google.com>
7107
7108         * passes.c (finish_optimization_passes): Change i to int.
7109         * plugin.c (plugins_active_p): Change event to int.
7110         (dump_active_plugins): Likewise.
7111         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
7112         Add cast.
7113         * tree.c (tree_range_check_failed): Change c to unsigned int.
7114         (omp_clause_range_check_failed): Likewise.
7115         (build_common_builtin_nodes): Change mode to int.  Add cast.
7116         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
7117         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
7118
7119         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
7120         ++ or -- with a variable of enum type.
7121
7122 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7123
7124         PR driver/40144
7125         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
7126
7127 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7128
7129         * store-motion.c: Do not include params.h
7130         * Makefile.in: Fix dependencies for various files.
7131
7132 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7133
7134         * auto-inc-dec.c: Fix pass description, remove apparent
7135         accidental duplication.
7136
7137 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
7138
7139         PR middle-end/40147
7140         * ipa-utils.h (memory_identifier_string): Moved to ...
7141         * tree.h (memory_identifier_string): Here.  Add GTY(()).
7142
7143 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
7144
7145         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
7146         in the former documentation of...
7147         (GO_IF_LEGITIMATE_ADDRESS): ... this.
7148         * ira-conflicts.c (get_dup_num): Use address_operand.
7149         * targhooks.c (default_legitimate_address_p): New.
7150         * targhooks.h (default_legitimate_address_p): New.
7151         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
7152         Call hook.
7153         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
7154         * target.h (struct target): Add legitimate_address_p.
7155         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
7156         (TARGET_INITIALIZER): Include it.
7157
7158         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7159         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
7160         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
7161         (TARGET_LEGITIMATE_ADDRESS_P): New.
7162
7163         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7164         (REG_OK_STRICT_P): Delete.
7165         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
7166         (frv_legitimate_address_p_1): ... this.
7167         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
7168         (frv_legitimate_address_p_1): ... the renamed old
7169         frv_legitimate_address_p.
7170         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
7171         (TARGET_LEGITIMATE_ADDRESS_P): New.
7172
7173         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7174         * config/s390/s390-protos.h (legitimate_address_p): Remove.
7175         * config/s390/s390.c (legitimate_address_p): Rename to...
7176         (s390_legitimate_address_p): ... this, make static.
7177         (legitimize_address): Adjust call.
7178         (TARGET_LEGITIMATE_ADDRESS_P): New.
7179         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
7180
7181         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7182         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
7183         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
7184         (TARGET_LEGITIMATE_ADDRESS_P): New.
7185
7186         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7187         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
7188         * config/spu/spu.c (spu_legitimate_address): Rename to...
7189         (spu_legitimate_address_p): ... this, make static.
7190         (TARGET_LEGITIMATE_ADDRESS_P): New.
7191
7192         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7193         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
7194         * config/sparc/sparc.c (legitimate_address_p): Rename to...
7195         (sparc_legitimate_address_p): ... this, make static and return bool.
7196         (legitimize_address): Adjust call.
7197         (TARGET_LEGITIMATE_ADDRESS_P): New.
7198
7199         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7200         * config/i386/i386-protos.h (legitimate_address_p): Remove.
7201         * config/i386/i386.c (legitimate_address_p): Rename to...
7202         (ix86_legitimate_address_p): ... this, make static.
7203         (constant_address_p): Move after it, adjust call.
7204         (TARGET_LEGITIMATE_ADDRESS_P): New.
7205
7206         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7207         * config/avr/avr-protos.h (legitimate_address_p): Remove.
7208         * config/avr/avr.c (legitimate_address_p): Rename to...
7209         (avr_legitimate_address_p): ... this, make static.
7210         (legitimize_address): Adjust call.
7211         (TARGET_LEGITIMATE_ADDRESS_P): New.
7212
7213         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7214         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
7215         * config/crx/crx.c (crx_legitimate_address_p): Make static.
7216         (TARGET_LEGITIMATE_ADDRESS_P): New.
7217
7218         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7219         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
7220         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
7221         (TARGET_LEGITIMATE_ADDRESS_P): New.
7222
7223         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7224         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
7225         Remove.
7226         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7227         Make static.
7228         (TARGET_LEGITIMATE_ADDRESS_P): New.
7229
7230         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7231         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
7232         Remove.
7233         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
7234         Rename to...
7235         (m68hc11_legitimate_address_p): ... this, make static.
7236         (go_if_legitimate_address_internal): Rename to...
7237         (m68hc11_legitimate_address_p_1): ... this.
7238         (legitimize_address): Adjust call.
7239         (TARGET_LEGITIMATE_ADDRESS_P): New.
7240
7241         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7242         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
7243         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
7244         (TARGET_LEGITIMATE_ADDRESS_P): New.
7245
7246         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7247         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
7248         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
7249         (mn10300_legitimate_address_p): ... this, make static.
7250         (TARGET_LEGITIMATE_ADDRESS_P): New.
7251
7252         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7253         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
7254         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
7255         (TARGET_LEGITIMATE_ADDRESS_P): New.
7256
7257         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7258         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
7259         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
7260         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7261         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
7262         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
7263         (rs6000_legitimate_address_p): ... this, make static.
7264         (TARGET_LEGITIMATE_ADDRESS_P): New.
7265         (REG_MODE_OK_FOR_BASE_P): Delete.
7266         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
7267
7268         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7269         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
7270         Delete.
7271         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
7272         static, adjust types.
7273         (TARGET_LEGITIMATE_ADDRESS_P): New.
7274
7275         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7276         * config/score/score.c (score_address_p): Rename to...
7277         (score_legitimate_address_p): ... this.
7278         (TARGET_LEGITIMATE_ADDRESS_P): New.
7279         * config/score/score3.c (score3_address_p): Rename to...
7280         (score3_legitimate_address_p): ... this.
7281         * config/score/score7.c (score7_address_p): Rename to...
7282         (score7_legitimate_address_p): ... this.
7283
7284         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
7285         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
7286         GO_IF_LEGITIMATE_ADDRESS): Delete.
7287         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
7288         thumb2_legitimate_address_p): Delete.
7289         (arm_legitimate_address_p): Rename to...
7290         (arm_legitimate_address_outer_p): ... this.
7291         * config/arm/constraints.md ("Uq"): Adjust call.
7292         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
7293         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
7294         to...
7295         (arm_legitimate_address_outer_p): ... this.
7296         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
7297         static.
7298         (TARGET_LEGITIMATE_ADDRESS_P): New.
7299
7300         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7301         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
7302         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
7303         (TARGET_LEGITIMATE_ADDRESS_P): New.
7304
7305         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7306         * config/vax/vax-protos.h (legitimate_address_p): Remove.
7307         * config/vax/vax.c (legitimate_address_p): Rename to...
7308         (vax_legitimate_address_p): ... this, make static.
7309         (TARGET_LEGITIMATE_ADDRESS_P): New.
7310
7311         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7312         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
7313         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
7314         (TARGET_LEGITIMATE_ADDRESS_P): New.
7315
7316         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7317         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
7318         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
7319         (mmix_legitimate_address_p): ... this, make static.
7320         (TARGET_LEGITIMATE_ADDRESS_P): New.
7321
7322         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7323         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
7324         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
7325         (TARGET_LEGITIMATE_ADDRESS_P): New.
7326
7327 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
7328
7329         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
7330         of MODE_COMPLEX_INT.
7331
7332 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7333
7334         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
7335         LCT_NORMAL in function call.
7336         * mips-tdump.c (print_file_desc): Add cast to enum type.
7337         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
7338         (mark_stabs): Add casts to enum types.
7339         (parse_stabs_common): Add casts to enum types.
7340
7341 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
7342
7343         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
7344         Check for invalid values of LETTER.
7345
7346 2009-05-13  Taras Glek  <tglek@mozilla.com>
7347
7348         * attribs.c (register_attribute): moved out attribute registration
7349         into register_attribute.
7350         * doc/plugins.texi: Documented register_attribute and
7351         PLUGIN_ATTRIBUTES.
7352         * gcc-plugin.h: Added forward decl for register_attribute.
7353         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
7354         * plugin.c (register_callback, invoke_plugin_callbacks): Added
7355         PLUGIN_ATTRIBUTES boilerplate.
7356
7357 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7358
7359         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
7360         values even in sentinel and empty entries.
7361         (ms_printf_flag_specs):  Likewise.
7362         (ms_scanf_flag_specs):  Likewise.
7363         (ms_strftime_flag_specs):  Likewise.
7364         (ms_print_char_table):  Likewise.
7365         (ms_scan_char_table):  Likewise.
7366         (ms_time_char_table):  Likewise.
7367
7368 2009-05-13  Doug Kwan  <dougkwan@google.com>
7369
7370         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
7371
7372 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
7373
7374         * config/mips/mips.md (store): Add attributes for QI and HI.
7375         Update comment.
7376         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
7377         (truncdi<mode>2): ... this new pattern.
7378
7379 2009-05-13  Brad Hards  <bradh@kde.org>
7380
7381         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
7382
7383 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
7384             Ben Elliston <bje@au.ibm.com>
7385
7386         PR middle-end/40035
7387         * dse.c (check_mem_read_rtx): Guard against width == -1.
7388
7389 2009-05-13  Michael Matz  <matz@suse.de>
7390
7391         PR middle-end/39976
7392         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
7393         (trivially_conflicts_p): New function.
7394         (insert_backedge_copies): Use it.
7395
7396 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
7397
7398         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
7399         (handle_stdc_pragma): Use new enum constant names.
7400         (handle_pragma_float_const_decimal64): Ditto.
7401
7402 2009-05-13  Ian Lance Taylor  <iant@google.com>
7403
7404         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
7405         tree.def.
7406
7407 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
7408
7409         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
7410         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
7411         multilibs.
7412         * config/m68k/m68k.h (FL_UCLINUX): Define.
7413
7414 2009-05-13  Jan Hubicka  <jh@suse.cz>
7415
7416         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
7417
7418 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7419
7420         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
7421         unless -fschedule-insns is specified.
7422
7423 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7424
7425         PR target/39561
7426         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
7427         TARGET_EXPAND_CBRANCHDI4.
7428         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
7429         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
7430         (cmpeqdi): Fix comment.
7431
7432 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7433
7434         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
7435         (sh_legitimate_address_p): Likewise.
7436         * config/sh/sh.c (sh_legitimate_index_p): New.
7437         (sh_legitimate_address_p): Likewise.
7438         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
7439         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
7440         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
7441         (MAYBE_BASE_REGISTER_RTX_P): New macro.
7442         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
7443         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
7444         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
7445         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
7446         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
7447
7448 2009-05-12  Jan Hubicka  <jh@suse.cz>
7449
7450         * tree-inline.c (estimate_operator_cost): Add operands;
7451         when division happens by constant, it is cheap.
7452         (estimate_num_insns): Loads and stores are not having cost of 0;
7453         EH magic stuff is cheap; when computing runtime cost of switch,
7454         use log2 base of amount of its cases; builtin_expect has cost of 0;
7455         compute cost for moving return value of call.
7456         (init_inline_once): Initialize time_based flags.
7457         * tree-inline.h (eni_weights_d): Add time_based flag.
7458
7459 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7460
7461         * df-core.c: Update head documentation.
7462
7463 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7464
7465         PR bootstrap/40118
7466         * rs6000.c (rs6000_generate_compare): Use op1b instead of
7467         shadowing exisiting variable op1.
7468
7469 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
7470
7471         PR target/37179
7472         * config/i386/driver-i386.c (processor_signatures): New enum.
7473         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
7474         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
7475         processor signature to detect geode processor.
7476
7477 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7478
7479         Revert:
7480
7481         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7482
7483         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7484         causes spurious differences between trunk and cond-optab branch.
7485
7486 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7487
7488         * dojump.c (compare_from_rtx): Delete.
7489         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
7490         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
7491         if the comparison does not satisfy the predicate; test predicates for
7492         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
7493         further if one existing pattern fails.
7494         * expr.h (compare_from_rtx): Delete.
7495         (prepare_operand): Declare it.
7496         * optabs.c: Change "lib call" to "libcall" throughout.
7497         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
7498         HAVE_conditional_trap, emit_cmp_insn): Delete.
7499         (can_compare_p): Delete cmp_optab case.
7500         (prepare_float_lib_cmp): Return an rtx and a machine mode.
7501         Accept other parameters by value.
7502         (prepare_operand): Make non-static.
7503         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
7504         other parameters by value.  Try to widen operands here based on
7505         an optab_methods argument and looking at cbranch_optab.
7506         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
7507         loop.  Use cbranch_optab directly.
7508         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
7509         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
7510         assertion.
7511         (emit_conditional_move, emit_conditional_add): Inline what's needed
7512         of compare_from_rtx, using new prepare_cmp_insn for the rest.
7513         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
7514         with COMPARE.  Move cmov_optab and cstore_optab above
7515         with cbranch_optab, move cmp_optab down with ucmp_optab,
7516         remove tst_otpab.  Do not initialize trap_rtx.
7517         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
7518         for trap code.  Do not check HAVE_conditional_trap.  Use
7519         prepare_cmp_insn.  Accept no predicate for operand 3.
7520         * optabs.h (OTI_cmp): Mark as used only for libcalls.
7521         (OTI_ctrap, ctrap_optab): New.
7522         (tst_optab): Delete.
7523         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
7524         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
7525         with lookup of ctrap_optab.
7526         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
7527         Delete.
7528         (ctrap_optab): New.
7529
7530         * combine.c (combine_simplify_rtx, simplify_set): Do not
7531         special case comparing against zero for cc0 machines.
7532         * simplify-rtx.c (simplify_binary_operation_1): Never remove
7533         COMPARE on cc0 machines.
7534         (simplify_relational_operation): Return a new expression when
7535         a COMPARE could be removed.
7536         * final.c (final_scan_insn): Compare cc_status values
7537         against LHS of a (compare FOO (const_int 0)) cc0 source.
7538         Also check if cc_status.value is the full compare.
7539
7540         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
7541         (cstoreMM4): Document.
7542         (conditional_trap): Document ctrapMM4 instead.
7543         (sync_compare_and_swapMM): Refer to cbranchcc4.
7544         (Dependent Patterns): Eliminate obsolete information referring to
7545         the old jump optimization phase.
7546         (Canonicalization): Include cbranchcc4 case, omit canonicalization
7547         of compares with 0 on cc0 machines.
7548         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
7549         avoiding references to cc0.  Remove text about storing operands
7550         in cmpMM.
7551         * doc/tm.texi (Condition Codes): Include blurb on different
7552         condition code representations, separate into subsections for
7553         CC0, MODE_CC and conditional execution.
7554
7555         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
7556         alpha_emit_setcc): Accept operands and a machine mode.
7557         * config/alpha/alpha.c (alpha_emit_conditional_branch):
7558         Get code/op0/op1 from operands, use machine mode argument
7559         instead of alpha_compare.fp_p.  Emit the branch here.
7560         (alpha_emit_setcc): Likewise, and return boolean.
7561         (alpha_emit_conditional_move): Likewise.  Assert that
7562         cmp_op_mode == cmp_mode, and simplify accordingly.
7563         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
7564         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
7565         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
7566         Delete.
7567         (stack probe test): Use cbranchdi4.
7568         * config/alpha/predicates.md (alpha_cbranch_operator): New.
7569
7570         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
7571         * config/arc/arc.h (movsicc, movsfcc): Use it.
7572         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
7573         (cbranchsi4, cstoresi4): New.
7574         (cmpsi, bCC and sCC expanders): Remove. 
7575
7576         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
7577         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
7578         * config/arm/predicates.md (arm_comparison_operator): Only include
7579         floating-point operators if there is a hardware floating-point unit.
7580         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
7581         deferring to cbranch_cc and cstore_cc respectively.
7582         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
7583         cbranch_cc, cstore_cc): New.
7584         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
7585         arm_compare_op1.
7586         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
7587
7588         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
7589         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
7590         as an argument.
7591         (adjust_insn_length): Adjust calls.
7592         (avr_reorg): Handle (compare (foo) (const_int 0)).
7593         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
7594         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
7595         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
7596         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
7597         (bCC): Remove.
7598         (cbranchqi4, cbranchhi4, cbranchsi4): New.
7599         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
7600
7601         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
7602         (cbranchsi4, cstorebi4, cstoresi4): New.
7603         (movbisi): This insn is duplicate, split it to zero_extend.
7604         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
7605         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
7606         (bfin_optimize_loop): Use cbranch expander.
7607         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
7608         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
7609         (bfin_bimode_comparison_operator): ... this.
7610         (bfin_direct_comparison_operator): New.
7611  
7612         * config/cris/cris.c (cris_normal_notice_update_cc): Look
7613         inside (compare FOO (const_int 0)).
7614         (cris_rtx_costs): Handle ZERO_EXTRACT.
7615         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
7616         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
7617         (*tstdi_v32): Delete.
7618         (*cmpdi_non_v32): Add M alternative for operand 1.
7619         (cmpsi, cmp<mode>): Make private.
7620         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
7621         with COMPARE.
7622         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
7623
7624         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
7625         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
7626         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
7627         (cc_reg_operand): New.
7628         (any_cond): Delete.
7629         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
7630         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
7631         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
7632         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
7633         crx_expand_scond): Delete.
7634
7635         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
7636         (cbranchsi4): New.
7637         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
7638         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
7639
7640         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
7641         cstoresi4, cstoresf4, cstoredf4): New.
7642         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
7643         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7644         Receive the entire operands array.
7645         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
7646         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
7647         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7648         Get test/op0/op1 from the operands array.
7649         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
7650
7651         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
7652         (h8300_expand_store): New.
7653         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
7654         (const_int 0)).
7655         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
7656         (h8300_expand_store): New.
7657         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
7658         or do not try to produce (set (cc0) REG).
7659         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
7660         change a compare into a move to a scratch register.  Disable some
7661         peepholes when comparing with zero.
7662         (tstsi, tsthi, tstsi, cmpqi): Make private.
7663         (cmphi): Delete.
7664         (bCC, sCC): Delete.
7665         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
7666         cstoresi4): New.
7667
7668         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
7669         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
7670         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
7671         (ix86_emit_i387_log1p): Use cbranchxf2.
7672         (ix86_expand_setcc): Return void.
7673         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
7674         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
7675         cmp<MODEF>, cmpcc): Remove.
7676         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
7677         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
7678         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
7679         (sCC and bCC expanders): Remove.
7680         (stack_protect_test): Use cbranchcc4.
7681
7682         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
7683         Delete.
7684         (ia64_expand_compare): Accept three rtx by reference and return void.
7685         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
7686         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
7687         from *expr.  Update *expr with the BImode comparison to do.
7688         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
7689         cmptf, bCC, sCC, conditional_trap): Delete.
7690         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
7691         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
7692         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
7693         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
7694         * config/ia64/predicates.md (ia64_cbranch_operator): New.
7695
7696         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
7697         type of last argument.
7698         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
7699         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
7700         use machine mode argument instead of branch_type.  Remove dead
7701         code for floating-point comparisons.
7702         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
7703         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
7704         Remove.
7705         (cbranchsi4, cstoresi4): New.
7706         * config/iq2000/predicates.md (reg_or_const_operand): New.
7707
7708         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
7709         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
7710         (b<code>_op): Rewrite to...
7711         (bcc_op): ... this, using match_operator.
7712         (s<code>_op): Rewrite to...
7713         (scc_op): ... this, using match_operator.
7714         (s<code>_24_op): Rewrite to...
7715         (scc_op_24): ... this, using match_operator.
7716         (s<code>_<mode>): Rewrite to...
7717         (cstore<mode>4): ... this, using match_operator.
7718         (s<code>_<mode>_24): Rewrite to...
7719         (cstore<mode>4_24): ... this, using match_operator.
7720         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
7721         m32c_unpend_compare, m32c_expand_scc): Delete.
7722         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
7723         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
7724         (m32c_expand_movcc): Change NE to EQ if necessary.
7725         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
7726
7727         * config/m32r/m32r-protos.h (gen_cond_store): New.
7728         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
7729         (gen_cond_store): New, from sCC patterns.
7730         (m32r_expand_block_move): Use cbranchsi4.
7731         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
7732         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
7733         (cbranchsi4, cstoresi4): New.
7734         
7735         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
7736         Delete.
7737         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
7738         (m68hc11_notice_update_cc): Look into a compare with 0.
7739         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
7740         Delete.
7741         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
7742         cmphi, cmpqi, bCC): Delete.
7743         (cbranchsi4, cbranchhi4, cbranchqi4): New.
7744         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
7745         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
7746         sets with COMPARE.
7747
7748         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
7749         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
7750         * config/m68k/constraints.md (H): New.
7751         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
7752         the define_insn below.
7753         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
7754         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
7755         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
7756         patterns): Wrap RHS with COMPARE.
7757         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
7758         (*cmpdi_internal): Name this pattern.
7759         (cmpdi): Change to define_insn.
7760         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
7761         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
7762         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
7763         predicate.
7764         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
7765         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
7766         (conditional_trap): Change to...
7767         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
7768         (*conditional_trap): Use the ordered_comparison_operator and
7769         const1_operand predicates.
7770         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
7771         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
7772         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
7773         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
7774
7775         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
7776         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
7777         (mcore_gen_compare): New. 
7778         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
7779         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
7780         (mcore_gen_compare): ... this.
7781         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
7782         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
7783         (stack probe pattern): Use cbranchsi4.
7784
7785         * config/mips/predicates.md (mips_cstore_operator): New.
7786         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
7787         * config/mips/mips.md (any_cond): Delete.
7788         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
7789         always succeed.
7790         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
7791         fixuns_truncsfdi2): Use cbranch patterns.
7792         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
7793         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
7794         Adjust call to mips_expand_conditional_branch.
7795         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
7796         cstore<GPR:mode>4.
7797         * config/mips/mips-protos.h (mips_expand_conditional_branch,
7798         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
7799         * config/mips/mips.c (cmp_operands): Delete.
7800         (mips_emit_compare): Get comparison operands from *op0/*op1.
7801         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
7802         that it succeeds.  Use op0/op1 instead of cmp_operands.
7803         (mips_expand_conditional_branch, mips_expand_conditional_move,
7804         mips_expand_conditional_trap): Likewise.
7805         (mips_block_move_loop): Use cbranch patterns. 
7806         * config/mips/mips.h (cmp_operands): Delete.
7807
7808         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
7809         (mmix_gen_compare_reg): Just return a register in the right CC mode.
7810         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
7811         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
7812         (*cmpcc_folded): Rename to...
7813         (*cmpdi_folded): this.
7814         (*cmpcc): Rename to...
7815         (*cmps): ... this.
7816         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
7817         (bCC): Remove.
7818         (cbranchdi4): New.
7819         (cbranchdf4): New.  Handle invalid comparisons here.
7820         * config/mmix/predicates.md (float_comparison_operator): New.
7821
7822         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
7823         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
7824         * config/mn10300/mn10300.md (tst): Delete.
7825         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
7826         Name these patterns and wrap RHS in a compare.
7827         (*cmpsi): Make this pattern private.  Include tst.
7828         (*cmpsf): Make this pattern private.
7829         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
7830         (compare with zero peepholes): Likewise.
7831         (bCC): Remove.
7832         (cbranchsi4, cbranchsf4): New.
7833         (casesi): Use cbranchsi4.
7834
7835         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
7836         hppa_branch_type): Delete.
7837         (return_addr_rtx): Use cbranchsi4.
7838         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
7839         Emit CCFPmode comparison here.
7840         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
7841         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
7842         hppa_branch_type): Delete.
7843         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
7844         (movsicc, movdicc): Remove references to hppa_compare_op0,
7845         hppa_compare_op1 and compare_from_rtx.
7846         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
7847         (casesi): Use cbranchsi4.
7848
7849         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
7850         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
7851         * config/pdp11/pdp11.md (register_or_const0_operand): New.
7852         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
7853         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
7854         (bCC): Delete.
7855         (cbranchdf4, cbranchhi4, cbranchqi4): New.
7856         (*branch, *branch_inverted): New.
7857
7858         * config/picochip/picochip.md (cbranchhi4): Use
7859         ordered_comparison_operator.
7860         (cmphi, bCC): Remove.
7861
7862         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
7863         (trap_comparison_operator): Delete.
7864         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
7865         rs6000_emit_cbranch): Accept mode and operands.
7866         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
7867         rs6000_compare_fp_p): Delete.   
7868         (rs6000_generate_compare): Accept mode and comparison.  Extract code
7869         and op0/op1 from there.  Replace references to rs6000_compare_op0
7870         and rs6000_compare_op1.
7871         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
7872         extract result from passed operands.
7873         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
7874         extract loc from passed operands.
7875         (rs6000_emit_cmove): Likewise.
7876         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
7877         rs6000_compare_fp_p): Delete.
7878         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
7879         (cbranch<GPR>4, cbranch<FP>4): New.
7880         (cstore<mode>4): New.  Consolidate here all choices about when to use
7881         portable or specialized sCC sequences.
7882         (stack_protect_test): Use cbranchsi4.
7883         (conditional_trap): Replace with ctrap<GPR>4.
7884         (conditional trap insn): Replace trap_comparison_operator with
7885         ordered_comparison_operator. 
7886
7887         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
7888         (s390_emit_prologue): Use ctrap.
7889         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
7890         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
7891         New predicates replacing...
7892         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
7893         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
7894         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
7895         (add<mode>cc): Do not use s390_compare_op0/op1.
7896         (s<code>): Change to...
7897         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
7898         (seq): Change to...
7899         (cstorecc4): ... this.  Handle EQ or NE equally.
7900         (*sne): Un-privatize for use in cstorecc4.
7901         (b<code>): Change to...
7902         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
7903         (conditional_trap): Replace with...
7904         (ctrap<GPR>4, ctrap<FP>4): ... these.
7905         (stack_protect): Use cbranchcc4.
7906
7907         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
7908         * config/score/score-protos.h (score_gen_cmp): Delete.
7909         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
7910         (score_block_move-loop): Use cbranchsi4.
7911         * config/score/score.md (cbranchsi4): New.
7912         (cmpsi, bCC): Delete.
7913         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
7914         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7915         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
7916         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7917         * config/score/score3.h (score3_gen_cmp): Delete.
7918         * config/score/score7.h (score7_gen_cmp): Delete.
7919
7920         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
7921         (sh_emit_scc_to_t): ... this.  Return void.
7922         (from_compare): Rename to...
7923         (sh_emit_compare_and_branch): ... this.
7924         (sh_emit_compare_and_set): New.
7925         (sh_expand_t_scc): Accept operands.
7926         * config/sh/predicates.md (sh_float_comparison_operator): New.
7927         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
7928         (prepare_scc_operands): Rename to...
7929         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
7930         arguments.
7931         (sh_emit_cheap_store_flag): New.
7932         (sh_emit_set_t_insn): New.
7933         (from_compare): Rename to...
7934         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
7935         handling of TARGET_SH2E floating point to avoid recursive call.
7936         Generate branch here.
7937         (sh_emit_compare_and_set): New.
7938         (sh_expand_t_scc): Get op0/op1 from arguments.
7939         (sh_emit_cheap_store_flag): New.
7940         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
7941         cases.
7942         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
7943         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
7944         (movsicc, movdicc): Do nothing when it recreated operands from
7945         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
7946         prepare_scc_operands (now sh_emit_scc_to_t).
7947         (udivdi3): Use cstoresi4.
7948         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
7949         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
7950         (cbranchint4_media, cbranchfp4_media): New.
7951         (casesi): Use cbranchdi4.
7952         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
7953         Delete.
7954         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
7955         (movnegt): Remove second operand.
7956         (cbranchsf4, cbranchdf4): New.
7957         (stack_protect): Use cbranchdi4/cbranchsi4.
7958
7959         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
7960         (gen_compare_reg): Accept comparison, extract part of it to...
7961         (gen_compare_reg_1): ... this. 
7962         (gen_compare_operator): Delete.
7963         (gen_v9_scc): Accept separate destination, comparison code and arms.
7964         Do not use sparc_compare_op0/sparc_compare_op1.
7965         (emit_scc_insn, emit_conditional_branch_insn): New.
7966         (emit_v9_brxx): Make static.  Remove useless assertion.
7967         (sparc_emit_float_lib_cmp): Return RTL instead of calling
7968         emit_cmp_insn.
7969         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
7970         * config/sparc/sparc-protos.h (gen_compare_reg,
7971         sparc_emit_float_lib_cmp): Adjust prototype.
7972         (emit_scc_insn, emit_conditional_branch_insn): New.
7973         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
7974         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
7975         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
7976         iterators to the top.
7977         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
7978         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
7979         snedi_special_trunc): Delete.
7980         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
7981         and snedi_special_trunc.
7982         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
7983         cbranchdi4, cbranch<F:mode>4): New.
7984         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
7985         here.  Use gen_compare_reg instead of gen_compare_operator.
7986         (conditional_trap): Replace with...
7987         (ctrapsi4, ctrapdi4): ... this.
7988         (stack_protect_test): Use cbranchcc4.
7989
7990         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
7991         argument to rtx.
7992         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
7993         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
7994         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
7995         from operands[0] or operands[3] depending on is_set.
7996         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
7997         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
7998         cmpdf, bCC), sCC: Remove.
7999         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
8000         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
8001         cstoredf4): New.
8002         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
8003         spu_emit_branch_or_set.
8004
8005         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
8006         Add two arguments.
8007         * config/stormy16/stormy16.h (xstormy16_compare_op0,
8008         xstormy16_compare_op1): Delete.
8009         * config/stormy16/stormy16.c (xstormy16_compare_op0,
8010         xstormy16_compare_op1): Delete. 
8011         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
8012         Adjust calls.
8013         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
8014         (cmphi, cmpsi, bCC): Remove.
8015
8016         * config/v850/v850.md (tstsi, cmpsi): Fold into...
8017         (*cmpsi): ... this one.
8018         (cbranchsi4, cstoresi4): New.
8019         (bCC expanders): Delete.
8020         (sCC insns): Fold into...
8021         (*setcc): ... this one.
8022         (casesi): Do not use gen_cmpsi and gen_bgtu. 
8023         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
8024         (movsicc): Simplify.
8025         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
8026
8027         * config/vax/vax-protos.h (cond_name): New.
8028         (vax_output_conditional_branch): Remove.
8029         * config/vax/vax.c (cond_name): New.
8030         (vax_output_conditional_branch): Remove.
8031         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
8032         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
8033         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
8034         (bit<VAXint>): Wrap source with (compare).
8035         (b<code> and following unnamed pattern): Rename to *branch and
8036         *branch_reversed.  Change macroization to match_operator.
8037         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
8038
8039         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
8040         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
8041         Change last argument to machine_mode.
8042         (xtensa_expand_scc): Add machine_mode argument.
8043         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
8044         (gen_conditional_move, xtensa_expand_conditional_branch,
8045         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
8046         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
8047         Adjust operand numbers.
8048         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
8049         Delete.
8050         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
8051         (cmpsi, cmpsf, b<code>, s<code>): Delete.
8052         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
8053
8054 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
8055
8056         * optabs.c (prepare_cmp_insn): Temporarily disable test that
8057         causes spurious differences between trunk and cond-optab branch.
8058
8059 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
8060
8061         PR target/37137
8062         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
8063
8064 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
8065
8066         * tree.c (iterative_hash_pointer): Delete.
8067         (iterative_hash_expr): Short-circuit handling of NULL pointer.
8068         Hash UIDs and versions of SSA names.  Don't special-case built-in
8069         function declarations.
8070
8071 2009-05-11  Ian Lance Taylor  <iant@google.com>
8072
8073         PR bootstrap/40103
8074         * graphite.c: Force -Wc++-compat to only be a warning before
8075         #including "cloog/cloog.h".
8076
8077 2009-05-11  Martin Jambor  <mjambor@suse.cz>
8078
8079         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
8080         
8081 2009-05-11  Jan Hubicka  <jh@suse.cz>
8082
8083         * tree-ssa-loop-ivcanon.c: Include target.h
8084         (struct loop_size): new structure.
8085         (constant_after_peeling): New predicate.
8086         (tree_estimate_loop_size): New function.
8087         (estimated_unrolled_size): Rewrite for new estimates.
8088         (try_unroll_loop_completely): Use new estimates.
8089         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
8090
8091 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8092
8093         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
8094         libcpp interface change.
8095         (spu_macro_to_expand): Likewise.
8096
8097 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
8098
8099         PR tree-optimization/40026
8100         * gimplify.c (gimplify_init_constructor): Change initial conditional
8101         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
8102         optimize_compound_literals_in_ctor.
8103
8104 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
8105
8106         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
8107         New devices.
8108         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
8109
8110 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
8111
8112         * tree-vect-data-refs.c (vect_analyze_group_access): Use
8113         HOST_WIDE_INT for gap.
8114
8115 2009-05-11  Ira Rosen  <irar@il.ibm.com>
8116
8117         PR tree-optimization/40074
8118         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
8119         account in group size and step comparison.
8120
8121 2009-05-11  Richard Guenther  <rguenther@suse.de>
8122
8123         * passes.c (init_optimization_passes): Strip now incorrect comment.
8124         (execute_function_todo): Do not set PROP_alias.
8125         * tree-pass.h (PROP_alias): Remove.
8126         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
8127         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
8128         * tree-nrv.c (pass_return_slot): Likewise.
8129         * tree-object-size.c (pass_object_sizes): Likewise.
8130         * tree-ssa-dom.c (pass_dominator): Likewise.
8131         (pass_phi_only_cprop): Likewise.
8132         * tree-ssa-dse.c (pass_dse): Likewise.
8133         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
8134         (pass_cselim): Likewise.
8135         * tree-ssa-pre.c (pass_pre): Likewise.
8136         (pass_fre): Likewise.
8137         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
8138         * tree-ssa-sink.c (pass_sink_code): Likewise.
8139         * tree-stdarg.c (pass_stdarg): Likewise.
8140         * tree-tailcall.c (pass_tail_calls): Likewise.
8141         * tree-vrp.c (pass_vrp): Likewise.
8142
8143 2009-05-10  Ian Lance Taylor  <iant@google.com>
8144
8145         * basic-block.h (enum profile_status): Break out of struct
8146         control_flow_graph.
8147         * cgraph.h (struct inline_summary): Break out of struct
8148         cgraph_local_info.
8149         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
8150         of struct cgraph_order_sort.
8151         * combine.c (enum undo_kind): New enum, broken out of struct undo.
8152         * cse.c (struct branch_path): Break out of struct
8153         cse_basic_block_data.
8154         * except.h (enum eh_region_type): Break out of struct eh_region.
8155         * gcc.c (enum add_del): Break out of struct modify_target.
8156         * genrecog.c (enum decision_type): Break out of struct decision_test.
8157         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
8158         ggc_pch_data.
8159         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
8160         * regmove.c (enum match_use): New enum, broken out of struct match.
8161         * sched-int.h (enum post_call_group): New enum, broken out of
8162         struct deps.
8163         (struct deps_reg): Break out of struct deps.
8164         * target.h (struct asm_int_op): Break out of struct gcc_target.
8165         * tree-eh.c (struct goto_queue_node): Break out of struct
8166         leh_tf_state.
8167         * tree-inline.h (enum copy_body_cge_which): Break out of
8168         copy_body_data.
8169         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
8170
8171         * c-decl.c (in_struct, struct_types): New static variables.
8172         (pushtag): Add loc parameter.  Change all callers.
8173         (lookup_tag): Add ploc parameter.  Change all callers.
8174         (check_compound_literal_type): New function.
8175         (parser_xref_tag): Add loc parameter.  Change all callers.  If
8176         -Wc++-compat, warn about struct/union/enum types defined within a
8177         struct or union.
8178         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
8179         and loc parameters.  Change all callers.  Change error calls to
8180         error_at, using loc.  For a redefinition, if the location of the
8181         original definition is known, report it.  Set in_struct and
8182         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
8183         (finish_struct): Add new parameters enclosing_in_struct and
8184         enclosing_struct_types.  Change all callers.  Set
8185         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
8186         in the struct.  If in a struct, add this struct to struct_types.
8187         (start_enum): Add loc parameter.  Change all callers.  Use
8188         error_at for errors, using loc.  For a redefinition, if the
8189         location of the original definition is known, report it.  If in a
8190         struct, add this enum type to struct_types.  If -Wc++-compat warn
8191         if in sizeof, typeof, or alignof.
8192         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
8193         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
8194         (c_parser_enum_specifier): Get enum location for start_enum.
8195         (c_parser_struct_or_union_specifier): Get struct location for
8196         start_struct.  Save in_struct and struct_types status between
8197         start_struct and finish_struct.
8198         (c_parser_cast_expression): Get location of cast.
8199         (c_parser_alignof_expression): Get location of type.
8200         (c_parser_postfix_expression): Likewise.
8201         (c_parser_postfix_expression_after_paren_type): Add type_loc
8202         parameter.  Change all callers.  Call check_compound_literal_type.
8203         Use type_loc for error about variable size type.
8204         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
8205         of an enum constant from an enum type defined in a struct or union.
8206         (c_cast_expr): Add loc parameter.  Change all callers.  If
8207         -Wc++-compat, warn about defining a type in a cast.
8208         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
8209         (start_enum, start_struct, finish_struct): Update declarations.
8210         (parser_xref_tag, c_cast_expr): Update declarations.
8211         (check_compound_literal_type): Declare.
8212
8213 2009-05-11  Ben Elliston  <bje@au.ibm.com>
8214
8215         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
8216         for recent libcpp interface change.
8217         (rs6000_macro_to_expand): Likewise.
8218
8219 2009-05-10  Michael Matz  <matz@suse.de>
8220
8221         PR target/40031
8222         * config/arm/arm.c (require_pic_register): Emit on entry edge,
8223         not at entry of function.
8224
8225 2009-05-10  Richard Guenther  <rguenther@suse.de>
8226
8227         PR tree-optimization/40081
8228         Revert
8229         * tree-sra.c (instantiate_element): Instantiate scalar replacements
8230         using the main variant of the element type.  Do not fiddle with
8231         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8232
8233         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
8234         structs with volatile fields.
8235
8236 2009-05-10  Jan Hubicka  <jh@suse.cz>
8237
8238         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
8239         (estimate_move_cost): Assert that it does not get called for
8240         VOID_TYPE_P.
8241         (estimate_num_insns): Skip VOID types in argument handling.
8242         (optimize_inline_calls): Delete unreachable blocks and verify that
8243         callgraph is valid.
8244
8245 2009-05-10  Jan Hubicka  <jh@suse.cz>
8246
8247         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
8248         * cgraph.c (cgraph_mark_address_taken_node): New function.
8249         (dump_cgraph_node): Dump new flag.
8250         * cgraph.h (struct cgraph_node): Add address_taken.
8251         (cgraph_mark_address_taken_node): New function.
8252         * ipa.c (cgraph_postorder): Prioritize functions with address taken
8253         since new direct calls can be born.
8254
8255 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8256
8257         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
8258         tok->val.node.node.
8259
8260 2009-05-10  Jan Hubicka  <jh@suse.cz>
8261
8262         PR middle-end/40084
8263         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
8264         argument; rewrite.
8265         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
8266         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
8267         * tree-inline.c (copy_bb): Set frequency correctly.
8268         (fold_marked_statements): Update call to
8269         cgraph_update_edges_for_call_stmt.
8270
8271 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8272
8273         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
8274         identifiers in diagnostics.
8275         * config/arm/arm.c (arm_handle_fndecl_attribute,
8276         arm_handle_isr_attribute): Likewise.
8277         * config/avr/avr.c (avr_handle_progmem_attribute,
8278         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
8279         * config/bfin/bfin.c (handle_int_attribute,
8280         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
8281         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
8282         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
8283         Likewise.
8284         * config/darwin.c (darwin_handle_kext_attribute,
8285         darwin_handle_weak_import_attribute): Likewise.
8286         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
8287         h8300_handle_eightbit_data_attribute,
8288         h8300_handle_tiny_data_attribute): Likewise.
8289         * config/i386/i386.c (ix86_handle_cconv_attribute,
8290         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
8291         * config/i386/winnt.c (ix86_handle_shared_attribute,
8292         ix86_handle_selectany_attribute): Likewise.
8293         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
8294         * config/m32c/m32c.c (function_vector_handler): Likewise.
8295         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
8296         m68hc11_handle_fntype_attribute): Likewise.
8297         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
8298         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
8299         * config/mips/mips.c (mips_insert_attributes,
8300         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
8301         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
8302         rs6000_handle_struct_attribute): Likewise.
8303         * config/sh/sh.c (sh_insert_attributes,
8304         sh_handle_resbank_handler_attribute,
8305         sh_handle_interrupt_handler_attribute,
8306         sh2a_handle_function_vector_handler_attribute,
8307         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
8308         Likewise.
8309         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
8310         * config/spu/spu.c (spu_handle_fndecl_attribute,
8311         spu_handle_vector_attribute): Likewise.
8312         * config/stormy16/stormy16.c
8313         (xstormy16_handle_interrupt_attribute): Likewise.
8314         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
8315         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
8316
8317 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8318
8319         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
8320         (pp_translate_identifiers): New.
8321         (pp_identifier): Only conditionally translate identifier to locale
8322         character set.
8323         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
8324         (pp_base_tree_identifier): Only conditionally translate identifier
8325         to locale character set.
8326         * c-pretty-print.c (M_): Define.
8327         (pp_c_type_specifier, pp_c_primary_expression): Mark English
8328         fragments for conditional translation with M_.
8329         * tree-pretty-print.c (maybe_init_pretty_print): Disable
8330         identifier translation.
8331
8332 2009-05-10  Richard Guenther  <rguenther@suse.de>
8333
8334         PR tree-optimization/40081
8335         * tree-sra.c (instantiate_element): Instantiate scalar replacements
8336         using the main variant of the element type.  Do not fiddle with
8337         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8338
8339 2009-05-09  Jan Hubicka  <jh@suse.cz>
8340
8341         PR middle-end/40080
8342         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
8343         indirect calls; verify cgraph afterwards.
8344
8345 2009-05-09  Jan Hubicka  <jh@suse.cz>
8346
8347         PR bootstrap/40082
8348         * ipa.c (update_inlined_to_pointer): New function.
8349         (cgraph_remove_unreachable_nodes): Use it.
8350
8351 2009-05-09  Jan Hubicka  <jh@suse.cz>
8352
8353         * tree-eh.c (struct leh_state): Remove prev_try.
8354         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
8355         not track prev_try.
8356         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
8357         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
8358         remove_eh_handler_and_replace, foreach_reachable_handler,
8359         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
8360         * except.h (struct eh_region): Remove eh_region_u_cleanup.
8361         (gen_eh_region_cleanup): Update prototype.
8362
8363 2009-05-09  Jan Hubicka  <jh@suse.cz>
8364
8365         PR middle-end/40043
8366         * except.c (copy_eh_region): Always set prev_try.
8367         (redirect_eh_edge_to_label): Find outer try.
8368         (foreach_reachable_handler): When looking for prev try
8369         handle case where previous try is not going to be taken.
8370
8371 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
8372
8373         PR tree-optimization/40049
8374         * tree-vect-stmts.c (vectorizable_operation): If the machine has
8375         only vector/vector shifts, convert the type of the constant to the
8376         appropriate type to avoid building incorrect trees, which
8377         eventually have problems with garbage collection.
8378
8379 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8380
8381         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
8382         -1 for complex floating-point types if honoring signed zeros.
8383
8384 2009-05-08  Jan Hubicka  <jh@suse.cz>
8385
8386         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
8387         argument; handle correctly when profile is absent.
8388         (build_cgraph_edges): Update.
8389         (rebuild_cgraph_edges): Update.
8390         * cgraph.c: Do not include varray.h.
8391         (cgraph_set_call_stmt_including_clones): New function.
8392         (cgraph_create_edge_including_clones): Likewise
8393         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
8394         (cgraph_update_edges_for_call_stmt): Handle clones.
8395         (cgraph_remove_node): Handle clone tree.
8396         (cgraph_remove_node_and_inline_clones): New function.
8397         (dump_cgraph_node): Dump clone tree.
8398         (cgraph_clone_node): Handle clone tree.
8399         (clone_function_name): Bring here from tree-inline.c.
8400         (cgraph_create_virtual_clone): New function.
8401         * cgraph.h (ipa_replace_map): Move here from ipa.h.
8402         (cgraph_clone_info): New function.
8403         (strut cgraph_node): Add clone_info and new clone tree pointers.
8404         (cgraph_remove_node_and_inline_clones,
8405         cgraph_set_call_stmt_including_clones,
8406         cgraph_create_edge_including_clones,
8407         cgraph_create_virtual_clone): Declare.
8408         (cgraph_function_versioning): Use VEC argument.
8409         (compute_call_stmt_bb_frequency): Update prototype.
8410         (cgraph_materialize_all_clones): New function.
8411         * ipa-cp.c (ipcp_update_cloned_node): Remove.
8412         (ipcp_create_replace_map): Update to VECtors.
8413         (ipcp_update_callgraph): Use virtual clones.
8414         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
8415         (ipcp_update_profiling): Do not update local profiling.
8416         (ipcp_insert_stage): Use VECtors and virtual clones.
8417         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
8418         (clone_of_p): New function.
8419         (cgraph_preserve_function_body_p): Use clone tree.
8420         (cgraph_optimize): Materialize clones.
8421         (cgraph_function_versioning): Update for VECtors.
8422         (save_inline_function_body): Use clone tree.
8423         (cgraph_materialize_clone): New function.
8424         (cgraph_materialize_all_clones): Likewise.
8425         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
8426         * ipa.c: Include gimple.h.
8427         (cgraph_remove_unreachable_nodes): Use clone tree.
8428         * ipa-prop.c (ipa_note_param_call): Update call to
8429         compute_call_stmt_bb_frequencycall.
8430         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
8431         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
8432         (copy_bb): Handle updating of clone tree; add new edge when new call
8433         appears.
8434         (expand_call_inline): Be strict about every call having edge.
8435         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
8436         (delete_unreachable_blocks_update_callgraph): New function.
8437         (tree_function_versioning): Use VECtors; always remove unreachable
8438         blocks and fold conditionals.
8439         * tree-inline.h: Do not include varray.h.
8440         (tree_function_versioning): Remove.
8441         * Makefile.in (GTFILES): Remove tree-inline.c
8442         * passes.c (do_per_function): Do only functions having body.
8443         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
8444         tree.
8445
8446 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
8447             Andrew Morrow  <acm@google.com>
8448
8449         PR c/36892
8450         * c-common.c (c_common_attribute_table): Permit deprecated
8451         attribute to take an optional argument.
8452         (handle_deprecated_attribute): If the optional argument to
8453         __attribute__((deprecated)) is not a string ignore the attribute
8454         and emit a warning.
8455
8456         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
8457         * c-typeck.c (build_component_ref): Likewise.
8458         (build_external_ref): Likewise.
8459
8460         * toplev.c (warn_deprecated_use): Add an attribute argument.
8461         Emit the message associated with __attribute__((deprecated)).
8462
8463         * toplev.h (warn_deprecated_use): Updated.
8464
8465         * doc/extend.texi: Document new optional parameter to
8466         __attribute__((deprecated))
8467
8468 2009-05-08  Michael Eager <eager@eagercon.com>
8469
8470         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
8471         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
8472
8473 2009-05-08  Richard Guenther  <rguenther@suse.de>
8474
8475         PR tree-optimization/40062
8476         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
8477         Avoid exponential behavior.
8478
8479 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8480
8481         PR rtl-optimization/33928
8482         PR 26854
8483         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
8484         process_uses, build_single_def_use_links): New.
8485         (update_df): Update use_def_ref.
8486         (forward_propagate_into): Use get_def_for_use instead of use-def
8487         chains.
8488         (fwprop_init): Call build_single_def_use_links and let it initialize
8489         dataflow.
8490         (fwprop_done): Free use_def_ref.
8491         (fwprop_addr): Eliminate duplicate call to df_set_flags.
8492         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
8493         df_rd_simulate_one_insn): New.
8494         (df_rd_bb_local_compute_process_def): Update head comment.
8495         (df_chain_create_bb): Use the new RD simulation functions.
8496         * df.h (df_rd_simulate_artificial_defs_at_top, 
8497         df_rd_simulate_one_insn): New.
8498         * opts.c (decode_options): Enable fwprop at -O1.
8499         * doc/invoke.texi (-fforward-propagate): Document this.
8500
8501 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8502
8503         PR c/24581
8504         * c-typeck.c (build_binary_op): Handle arithmetic between one real
8505         and one complex operand specially.
8506         * tree-complex.c (some_nonzerop): Do not identify a real value as
8507         zero if flag_signed_zeros.
8508
8509 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8510
8511         PR rtl-optimization/33928
8512         * loop-invariant.c (record_use): Fix && vs. || mishap.
8513
8514 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8515
8516         PR rtl-optimization/33928
8517         * loop-invariant.c (struct use): Add addr_use_p.
8518         (struct def): Add n_addr_uses.
8519         (struct invariant): Add cheap_address.
8520         (create_new_invariant): Set cheap_address.
8521         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
8522         (record_uses): Pass df_ref to record_use.
8523         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
8524         used only as such.
8525
8526 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8527
8528         * config/sh/sh.c: Do not include c-pragma.h.
8529
8530 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8531
8532         * config/spu/spu.c: Remove include of c-common.h.
8533
8534 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
8535
8536         PR c/39037
8537         * c-common.h (mark_valid_location_for_stdc_pragma,
8538         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
8539         clear_float_const_decimal64, float_const_decimal64_p): New.
8540         * c.opt (Wunsuffixed-float-constants): New.
8541         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
8542         unsuffixed float constant, handle new warning.
8543         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
8544         * c-decl.c (c_scope): New flag float_const_decimal64.
8545         (set_float_const_decimal64, clear_float_const_decimal64,
8546         float_const_decimal64_p): New.
8547         (push_scope): Set new flag.
8548         * c-parser.c (c_parser_translation_unit): Mark when it's valid
8549         to use STDC pragmas.
8550         (c_parser_external_declaration): Ditto.
8551         (c_parser_compound_statement_nostart): Ditto.
8552         * c-pragma.c (valid_location_for_stdc_pragma,
8553         mark_valid_location_for_stdc_pragma,
8554         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
8555         handle_pragma_float_const_decimal64): New.
8556         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
8557         * cp/semantics.c (valid_location_for_stdc_pragma_p,
8558         set_float_const_decimal64, clear_float_const_decimal64,
8559         float_const_decimal64_p): New dummy functions.
8560         * doc/extend.texi (Decimal Float): Remove statement that the
8561         pragma, and suffix for double constants, are not supported.
8562         * doc/invoke.texi (Warning Options): List new option.
8563         (-Wunsuffixed-float-constants): New.
8564
8565 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
8566
8567         * config/i386/i386.c: Do not include c-common.h.
8568
8569 2009-05-07  Mark Heffernan  <meheff@google.com>
8570
8571         * doc/invoke.texi (Debugging Options): Document change of debugging
8572         dump location.
8573         * opts.c (decode_options): Make dump_base_name relative to
8574         aux_base_name directory.
8575
8576 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
8577
8578         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
8579         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
8580
8581 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
8582
8583         * Makefile.in (install-plugin): Simplify a bit.
8584
8585 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
8586
8587         * Makefile.in (OBJS-common): Add regcprop.o.
8588         (regcprop.o): New.
8589         * timevar.def (TV_CPROP_REGISTERS): New.
8590         * regrename.c (regrename_optimize): Return 0.
8591         (rest_of_handle_regrename): Delete.
8592         (pass_rename_registers): Point to regrename_optimize.
8593         (struct value_data_entry, struct value_data, 
8594         kill_value_one_regno, kill_value_regno, kill_value,
8595         set_value_regno, init_value_data, kill_clobbered_value,
8596         kill_set_value, kill_autoinc_value, copy_value,
8597         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
8598         replace_oldest_value_reg, replace_oldest_value_addr,
8599         replace_oldest_value_mem, copyprop_hardreg_forward_1,
8600         debug_value_data, validate_value_data): Move...
8601         * regcprop.c: ... here.
8602         (rest_of_handle_cprop): Delete.
8603         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
8604
8605 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
8606
8607         PR middle-end/40057
8608         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
8609         GEN_INT for 1 << bitnum.
8610         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
8611         build_int_cst_type.
8612
8613 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
8614
8615         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
8616         Remove wrong description of "nand" operation.
8617
8618 2009-05-06  Richard Guenther  <rguenther@suse.de>
8619             Adam Nemet  <anemet@caviumnetworks.com>
8620
8621         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
8622         comment.  Add that if LHS is not a gimple register, then RHS1 has
8623         to be a single object (GIMPLE_SINGLE_RHS).
8624
8625 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
8626
8627         * expr.c (get_def_for_expr): Move it up in the file.
8628         (store_field): When expanding a bit-field store, look at the
8629         defining gimple stmt for the masking conversion.
8630
8631 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
8632
8633         PR middle-end/39986
8634         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
8635         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
8636         32-bit memcpy into long.
8637
8638 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
8639
8640         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
8641         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
8642         new_reg_loc_descr.
8643         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
8644         instead of appending DW_OP_deref*.
8645
8646 2009-05-06  Michael Matz  <matz@suse.de>
8647
8648         PR middle-end/40021
8649         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
8650         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
8651
8652 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
8653
8654         * Makefile.in (install-plugin): Fix srcdir handling.
8655
8656 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
8657
8658         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
8659         when processing for not_regs_needed bitmap.
8660         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
8661         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
8662         handling it for rhs. 
8663
8664 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8665
8666         * config/i386/i386.md (unnamed inc/dec peephole): Use
8667         optimize_insn_for_size_p instead of optimize_size.
8668         * config/i386/predicates.md (incdec_operand): Likewise.
8669         (aligned_operand): Likewise.
8670         * config/i386/sse.md (divv8sf3): Likewise.
8671         (sqrtv8sf2): Likewise.
8672
8673 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8674
8675         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
8676
8677         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
8678
8679 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8680
8681         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
8682         ssemodesuffixf2c with avxmodesuffixf2c.
8683
8684 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
8685
8686         PR c/40032
8687         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
8688
8689 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
8690
8691         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
8692         (struct tree_base): Adjust spacing for 8 bit boundaries.
8693         (struct tree_decl_common): Add decl_by_reference_flag bit.
8694         (DECL_BY_REFERENCE): Adjust.
8695         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
8696         print DECL_BY_REFERENCE bit.
8697         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
8698         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
8699         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
8700         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
8701         unconditionally.
8702
8703         PR middle-end/39666
8704         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
8705         range of the type, but default label is missing, add it with one
8706         of the existing labels instead of adding a new label for it.
8707
8708 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
8709
8710         * dwarf.h: Remove.
8711
8712 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
8713
8714         * Makefile.in (enable_plugin, plugin_includedir): New.
8715         (install): Depend on install-plugin.
8716         (PLUGIN_HEADERS): New.
8717         (install-plugin): New.
8718         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
8719
8720 2009-05-05  Richard Guenther  <rguenther@suse.de>
8721
8722         PR tree-optimization/40022
8723         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
8724         the only vuse.
8725         (phivn_valid_p): Fix tuplification error, simplify.
8726         (phiprop_insert_phi): Add dumps.
8727         (propagate_with_phi): Simplify.
8728
8729 2009-05-05  Richard Guenther  <rguenther@suse.de>
8730
8731         PR middle-end/40023
8732         * builtins.c (gimplify_va_arg_expr): Properly build the address.
8733
8734 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
8735
8736         * tree.h (strip_float_extensions): Remove duplicate declaration.
8737         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
8738         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
8739         block_ultimate_origin): Rearrange the declarations line to match the
8740         comment that indicates the .c file which the functions are defined.
8741         (dwarf2out_*, set_decl_rtl): Add comment.
8742         (get_base_address): Adjust comment.
8743         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
8744         declarations line and add comment.
8745         (is_builtin_name): Add blank after function name, for clarity.
8746
8747 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8748
8749         * attribs.c (decl_attributes): Use %qE for identifiers in
8750         diagnostics.
8751         * cgraphunit.c (verify_cgraph_node): Translate function names to
8752         locale character set in diagnostics.
8753         * coverage.c (get_coverage_counts): Use %qE for identifiers in
8754         diagnostics.
8755         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
8756         Document that functions are named in UTF-8.
8757         * expr.c (expand_expr_real_1): Translate function names to locale
8758         character set in diagnostics.
8759         * gimplify.c (omp_notice_variable, omp_is_private,
8760         gimplify_scan_omp_clauses): Use %qE for identifiers in
8761         diagnostics.
8762         * langhooks.c (lhd_print_error_function): Translate function names
8763         to locale character set.
8764         * langhooks.h (decl_printable_name): Document that return value is
8765         in internal character set.
8766         * stmt.c: Include pretty-print.h
8767         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
8768         diagnostics.
8769         (resolve_operand_name_1): Translate named operand name to locale
8770         character set.
8771         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
8772         diagnostics.
8773         * toplev.c (announce_function): Translate function names to locale
8774         character set.
8775         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
8776         (default_tree_printer): Use pp_identifier or translate identifiers
8777         to locale character set.  Mark "<anonymous>" for translation.
8778         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
8779         for identifiers in diagnostics.
8780         * tree.c (handle_dll_attribute): Use %qE for identifiers in
8781         diagnostics.
8782         * varasm.c (output_constructor): Use %qE for identifiers in
8783         diagnostics.
8784
8785 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
8786
8787         * configure.ac: use ` ` instead of $()
8788         * configure: Regenerate.
8789
8790 2009-05-05  Ben Elliston  <bje@au.ibm.com>
8791
8792         * config/pa/linux-atomic.c: Eliminate conditional include of
8793         errno.h on non-LP64 systems to simplify build requirements.
8794
8795 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8796
8797         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
8798         diagnostics.
8799         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
8800         and pass value to identifier_to_locale.
8801         (warn_variable_length_array): Make name a tree.
8802         (grokdeclarator): Separate diagnostic texts for named and unnamed
8803         declarators.  Use %qE for named declarators.
8804         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
8805         diagnostics.
8806         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
8807         identifiers in diagnostics.
8808         * c-typeck.c (push_member_name, start_init): Pass identifiers to
8809         identifier_to_locale.  Mark "anonymous" strings for translation.
8810
8811 2009-05-04  Michael Eager <eager@eagercon.com>
8812
8813         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
8814         address for DImode/DFmode only if double-precision FP regs.
8815
8816 2009-05-04  Michael Eager <eager@eagercon.com>
8817
8818         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
8819         TARGET_SINGLE_FLOAT check.
8820
8821 2009-05-04  Michael Eager <eager@eagercon.com>
8822
8823         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
8824
8825 2009-05-04  Michael Eager <eager@eagercon.com>
8826
8827         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
8828         * config/rs6000/t-xilinx: New
8829
8830 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
8831
8832         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
8833         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
8834         * gcc/explow.c (memory_address): Use target hook.
8835         * gcc/targhooks.c (default_legitimize_address): New.
8836         * gcc/targhooks.h (default_legitimize_address): New.
8837         * gcc/target.h (legitimize_address): New.
8838         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
8839         (TARGET_INITIALIZER): Include it.
8840         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
8841
8842         * config/bfin/bfin-protos.h (legitimize_address): Remove.
8843         * config/bfin/bfin.c (legitimize_address): Remove.
8844         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
8845         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
8846         Remove.
8847         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
8848         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
8849
8850         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
8851         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
8852         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
8853         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
8854         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
8855         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
8856         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
8857         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
8858         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
8859         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
8860         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
8861         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
8862         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
8863         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
8864         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
8865         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
8866         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
8867         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
8868         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
8869         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
8870         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
8871         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
8872         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
8873
8874         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
8875         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
8876         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
8877         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
8878         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
8879         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
8880         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
8881         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
8882         (thumb_legitimize_address): Delete.
8883         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
8884         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
8885         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
8886         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
8887         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
8888         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
8889         Delete.
8890         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
8891         Delete.
8892
8893         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
8894         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
8895         * config/m32r/m32r.c (m32r_legitimize_address): New.
8896         * config/m68k/m68k.c (m68k_legitimize_address): New.
8897         * config/score/score.c (score_legitimize_address): Standardize.
8898         * config/score/score3.c (score3_legitimize_address): Standardize.
8899         * config/score/score3.h (score3_legitimize_address): Adjust.
8900         * config/score/score7.c (score7_legitimize_address): Standardize.
8901         * config/score/score7.h (score7_legitimize_address): Adjust.
8902         * config/sh/sh.c (sh_legitimize_address): New.
8903         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
8904
8905         * gcc/config/s390/s390.c (legitimize_address): Rename to...
8906         (s390_legitimize_address): ... this.
8907         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
8908         (sparc_legitimize_address): ... this.
8909         * gcc/config/i386/i386.c (legitimize_address): Rename to...
8910         (ix86_legitimize_address): ... this.
8911         * gcc/config/avr/avr.c (legitimize_address): Rename to...
8912         (avr_legitimize_address): ... this.
8913         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
8914         (mn10300_legitimize_address): ... this.
8915         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
8916         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
8917         (alpha_expand_mov): Adjust call.
8918
8919         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
8920         * config/spu/spu.c (spu_legitimize_address): Likewise.
8921         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
8922         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
8923
8924 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8925
8926         * intl.c (locale_encoding, locale_utf8): New.
8927         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
8928         * intl.h (locale_encoding, locale_utf8): Declare.
8929         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
8930         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
8931         New.
8932         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
8933         argument.
8934         (pp_tree_identifier): Define to call pp_base_tree_identifier.
8935         (pp_base_tree_identifier): Declare as function.
8936         (identifier_to_locale): Declare.
8937         * Makefile.in (pretty-print.o): Update dependencies.
8938         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
8939
8940 2009-05-04  Richard Guenther  <rguenther@suse.de>
8941
8942         PR middle-end/40015
8943         * builtins.c (fold_builtin_memory_op): Do not decay to element
8944         type if the size matches the whole array.
8945
8946 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8947
8948         * expmed.c (synth_mult): When trying out a shift, pass the result
8949         of a signed shift.
8950
8951 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8952
8953         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
8954         (shiftsub1_cost): New.
8955         (init_expmed): Compute shiftsub1_cost.
8956         (synth_mult): Optimize multiplications by constants of the form
8957         -(2^^m-1) for some constant positive integer m.
8958
8959 2009-05-03  Richard Guenther  <rguenther@suse.de>
8960
8961         PR c/39983
8962         * c-typeck.c (array_to_pointer_conversion): Do not built
8963         ADDR_EXPRs of arrays of pointer-to-element type.
8964         * c-gimplify.c (c_gimplify_expr): Revert change fixing
8965         up wrong ADDR_EXPRs after-the-fact.
8966         * c-common.c (strict_aliasing_warning): Strip pointer
8967         conversions for obtaining the original type.
8968         * builtins.c (fold_builtin_memset): Handle array types.
8969         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
8970         and array types
8971
8972 2009-05-03  Richard Guenther  <rguenther@suse.de>
8973
8974         PR middle-end/23329
8975         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
8976         Do not lose casts from array types with unknown extent to array
8977         types with known extent.
8978         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
8979         alias set compatibility.
8980
8981 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8982
8983         * flags.h (extra_warnings): Delete.
8984         * toplev.c (process_options): Handle Wuninitialized here.
8985         * opts.c (extra_warnings): Delete.
8986         (set_Wextra): Delete.
8987         (common_handle_option): -Wextra can be handled automatically.
8988         * c-opts.c (c_common_handle_option): Delete obsolete code.
8989         (c_common_post_options): Simplify comment.
8990         * common.opt (W): Add Var.
8991         (Wextra): Add Var.
8992         (Wuninitialized): Initialize to -1.
8993
8994 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
8995             Richard Guenther  <rguenther@suse.de>
8996
8997         * expr.c (get_def_for_expr): New function.
8998         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
8999         SSA rather than trees.
9000         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
9001         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
9002         
9003 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
9004
9005         * c-common.c (reswords): Add _Imaginary.
9006         * c-common.c (enum rid): Add RID_IMAGINARY.
9007
9008 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
9009
9010         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
9011         Patch by Richard Guenther.
9012
9013 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
9014
9015         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
9016         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
9017         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
9018         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
9019         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
9020         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
9021         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
9022         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
9023         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
9024         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
9025         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
9026         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
9027         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
9028         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
9029         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
9030         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
9031         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
9032         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
9033
9034 2009-05-02  Richard Guenther  <rguenther@suse.de>
9035
9036         PR tree-optimization/39940
9037         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
9038         doing so.
9039
9040 2009-05-02  Richard Guenther  <rguenther@suse.de>
9041
9042         PR middle-end/40001
9043         * tree-ssa.c (execute_update_addresses_taken): Properly check
9044         if we can mark a variable DECL_GIMPLE_REG_P.
9045         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
9046         back to the end of the function.
9047         (is_gimple_reg_type): Remove complex type special casing.
9048         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
9049         if not optimizing.
9050
9051 2009-05-02  Ben Elliston  <bje@au.ibm.com>
9052
9053         * doc/collect2.texi (Collect2): Document search path behaviour
9054         when configured with --with-ld.
9055
9056 2009-05-02  Jan Hubicka  <jh@suse.cz>
9057
9058         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
9059         parameter; update callers.
9060         (coalesce_cost_edge): EH edges are costier because they needs
9061         splitting even if not critical and even more costier when there are
9062         multiple EH predecestors.
9063
9064 2009-05-02  Jan Hubicka  <jh@suse.cz>
9065
9066         * except.c (remove_eh_handler_and_replace): Handle updating after
9067         removing TRY blocks.
9068
9069 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
9070
9071         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
9072
9073 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
9074
9075         * varasm.c: Do not include c-pragma.h.
9076         * attribs.c: Do not incude c-common.h.
9077
9078 2009-05-01  Michael Matz  <matz@suse.de>
9079
9080         * calls.c (initialize_argument_information): Handle SSA names like
9081         decls with a non MEM_P DECL_RTL.
9082
9083 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
9084
9085         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
9086         * ipa-utils.c: Likewise.
9087         * ipa-type-escape.c: Likewise.
9088         * cgraphunit.c Do not include c-common.h.
9089         * ipa-pure-const.c: Likewise.
9090         * tree-if-conv.c: Likewise.
9091         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
9092         * ipa-struct-reorg.c: Likewise.
9093         * tree-nomudflap.c: Likewise.
9094         * tree-ssa-structalias.c: Likewise.
9095
9096 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
9097
9098         * store-motion.c: Many cleanups to make this pass a first-class
9099         citizen instead of an appendix to gcse load motion.  Add TODO list
9100         to make this pass faster/cleaner/better.
9101
9102         (struct ls_expr): Post gcse.c-split cleanups.
9103         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
9104         "stores" field to "avail_stores".
9105         (pre_ldst_mems): Rename to store_motion_mems.
9106         (pre_ldst_table): Rename to store_motion_mems_table.
9107         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
9108         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
9109         (ldst_entry): Rename to st_expr_entry, update users.
9110         (free_ldst_entry): Rename to free_st_expr_entry, update users.
9111         (free_ldst_mems): Rename to free_store_motion_mems, update users.
9112         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
9113         update caller.
9114         (first_ls_expr): Rename to first_st_expr, update users.
9115         (next_ls_expr): Rename to next_st_expr, update users.
9116         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
9117         fields properly for store motion instead of names inherited from load
9118         motion in gcse.c.
9119         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
9120         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
9121         are done with it.
9122
9123         (ae_kill): Rename to st_kill, update users.
9124         (ae_gen): Rename to st_avloc, update users.
9125         (transp): Rename to st_transp, update users.
9126         (pre_insert_map): Rename to st_insert_map, update users.
9127         (pre_delete_map): Rename to st_delete_map, update users.
9128         (insert_store, build_store_vectors, free_store_memory,
9129         one_store_motion_pass): Update for abovementioned changes.
9130
9131         (gcse_subst_count, gcse_create_count): Remove.
9132         (one_store_motion_pass): New statistics counters "n_stores_deleted"
9133         and "n_stores_created", local variables.
9134
9135         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
9136         use for_each_rtx.
9137
9138         (regvec, compute_store_table_current_insn): Remove.
9139         (reg_set_info, reg_clear_last_set): Remove.
9140         (compute_store_table): Use DF caches instead of local dataflow
9141         solvers.
9142
9143 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
9144
9145         * c-objc-common.c (c_tree_printer): Print identifiers with
9146         pp_identifier, not pp_string.  Mark "({anonymous})" for
9147         translation.
9148         * c-pretty-print.c (pp_c_ws_string): New.
9149         (pp_c_cv_qualifier, pp_c_type_specifier,
9150         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
9151         pp_c_storage_class_specifier, pp_c_function_specifier,
9152         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
9153         pp_c_primary_expression, pp_c_postfix_expression,
9154         pp_c_unary_expression, pp_c_shift_expression,
9155         pp_c_relational_expression, pp_c_equality_expression,
9156         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
9157         use pp_string and pp_c_ws_string in place of pp_identifier and
9158         pp_c_identifier for non-identifiers.  Mark English strings for
9159         translation.
9160         * c-pretty-print.h (pp_c_ws_string): Declare.
9161
9162 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
9163             Roland McGrath <roland@redhat.com>
9164
9165         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
9166         (ENABLE_LD_BUILDID): New configuration option.
9167         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
9168         (LINK_BUILDID_SPEC): New macro.
9169         (init_spec): If defined, prepend it between LINK_EH_SPEC and
9170         link_spec.
9171         * doc/install.texi: Document --enable-linker-build-id option.
9172         * configure: Rebuild.
9173         * config.in: Rebuild.
9174
9175 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
9176
9177         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
9178         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
9179         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
9180         MIPS_GP_SAVE_AREA_SIZE.
9181         * config/mips/mips.c (struct mips_frame_info): Update comment
9182         before arg_pointer_offset and hard_frame_pointer_offset.
9183         (mips_compute_frame_info): Update diagram before function: to
9184         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
9185         indicate the position of frame_pointer_rtx with -fstack-protector and
9186         to show args_size.  Don't allocate cprestore area for leaf functions
9187         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
9188         cprestore_size.
9189         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
9190
9191 2009-04-30  Michael Matz  <matz@suse.de>
9192
9193         PR tree-optimization/39955
9194         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
9195
9196 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
9197
9198         * ira.c (setup_cover_and_important_classes):  Use safe macro
9199         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
9200         directly.
9201         * genpreds.c (write_tm_preds_h):  Output suitable definition of
9202         REG_CLASS_FOR_CONSTRAINT.
9203
9204 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
9205
9206         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
9207         instead of an int.
9208         * bitmap.c (bitmap_descriptor): Likewise.
9209         * ggc-common.c (loc_descriptor): Likewise.
9210         * varray.c (varray_descriptor): Likewise.
9211         * vec.c (vec_descriptor): Likewise.
9212
9213 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
9214
9215         * Makefile.in (dce.o): Add $(EXCEPT_H).
9216         * dce.c: Include except.h and delete redundant vector definitions.
9217         (deletable_insn_p): Return false for non-call insns that can throw
9218         if DF is running.
9219
9220 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
9221
9222         * gcse.c (ae_gen): Remove.
9223         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
9224         and make non-static function to make it available in store-motion.c.
9225         Update call sites with search-and-replace.
9226         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
9227         extract_mentioned_regs, extract_mentioned_regs_helper,
9228         find_moveable_store, compute_store_table, load_kills_store, find_loads,
9229         store_killed_in_insn, store_killed_after, store_killed_before,
9230         build_store_vectors, insert_insn_start_basic_block, insert-store,
9231         remove_reachable_equiv_notes, replace_store_insn, delete_store,
9232         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
9233         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
9234         * store-motion.c: ...new file.  Also copy data structures from gcse.c
9235         and clean up to remove parts not used by store motion.
9236         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
9237         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
9238
9239 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9240
9241         PR target/38571
9242         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
9243         when optimizing for size.
9244
9245 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
9246
9247         * gcse.c (gcse_constant_p): Fix typo in last change.
9248
9249 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
9250
9251         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
9252
9253 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9254
9255         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
9256
9257 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
9258
9259         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
9260         CONST_HIGH_PART result.
9261
9262 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
9263
9264         * config/avr/avr.c (initial_elimination_offset): Rename to
9265         avr_initial_elimination_offset.
9266         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
9267         change return type to bool.
9268         (avr_can_eliminate): New function.
9269         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
9270         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
9271         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
9272         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
9273         avr_initial_elimination_offset.
9274         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
9275         (avr_initial_elimination_offset): Define.
9276
9277 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9278             Steven Bosscher  <steven@gcc.gnu.org>
9279
9280         PR rtl-optimization/39938
9281         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
9282         * cfgrtl.c: Include insn-attr.h.
9283         (rest_of_pass_free_cfg): New function.
9284         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
9285         * resource.c (init_resource_info): Remove call to df_analyze.
9286
9287 2009-04-29  Richard Guenther  <rguenther@suse.de>
9288
9289         PR target/39943
9290         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
9291         allow conversion to signed integers.
9292
9293 2009-04-29  Richard Guenther  <rguenther@suse.de>
9294
9295         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
9296         shifts of floating point vectors if the shift amount is
9297         a constant multiple of the element size.
9298
9299 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
9300             Michael Matz  <matz@suse.de>
9301
9302         PR middle-end/39927
9303         PR bootstrap/39929
9304         * tree-outof-ssa.c (emit_partition_copy): New function.
9305         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
9306         insert_part_to_rtx_on_edge): Perform the partition base var
9307         copy using emit_partition_copy.
9308         (insert_value_copy_on_edge): Convert constants to the right mode.
9309         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
9310         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
9311
9312 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9313
9314         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
9315         scan backwards to try to find a constant to initialize it.
9316
9317         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
9318         insn before the loop_end instruction, don't look past labels.
9319
9320 2009-04-29  Richard Guenther  <rguenther@suse.de>
9321
9322         PR middle-end/39937
9323         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
9324         loose type conversions.
9325         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
9326         stmts only if there are no uses of its definition.
9327
9328 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9329
9330         * config/bfin/bfin.h (splitting_loops): Declare.
9331         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
9332         Reorder bit definitions to be ascending.
9333         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
9334         * config/bfin/bfin.c (splitting_loops): New variable.
9335         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
9336         (struct loop_info): Remove members INIT and LOOP_INIT.
9337         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
9338         the LSETUP sequence.  Allow LC to be loaded from any register, but
9339         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
9340         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
9341         set to 1.
9342         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
9343         of reload_completed.
9344
9345         From Jie Zhang:
9346         * config/bfin/bfin.md (movsi_insn): Refine constraints.
9347
9348 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
9349
9350         * Makefile.in (PLUGIN_VERSION_H): New.
9351         (OBJS-common): Remove plugin-version.o.
9352         (plugin.o): Depend on (PLUGIN_VERSION_H).
9353         (plugin-version.o): Remove.
9354         * configure: Regenerate
9355         * configure.ac: Create plugin-version.h.
9356         * gcc-plugin.h (plugin_gcc_version): Remove.
9357         (plugin_default_version_check): Change signature.
9358         * plugin-version.c: Remove.
9359         * plugin.c: Include plugin-version.h.
9360         (str_plugin_gcc_version_name): Remove.
9361         (try_init_one_plugin): Pass gcc version to plugin_init.
9362         (plugin_default_version_check): Both gcc and plugin versions are now
9363         arguments.
9364
9365 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9366         
9367         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
9368         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
9369         Remove special case testing for last insn of inner loops. Don't fail
9370         if the loop ends with a jump, emit an extra nop instead.
9371
9372         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
9373         DREGS rather than comparing directly.  Remove code that tries to
9374         account for latencies.
9375
9376 2009-04-29  Richard Guenther  <rguenther@suse.de>
9377
9378         PR tree-optimization/39941
9379         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
9380         eliminating an indirect call.
9381
9382 2009-04-29  Richard Guenther  <rguenther@suse.de>
9383
9384         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
9385         parameter.  Allow invariants as base if !require_lvalue.
9386         (verify_gimple_assign_single): Adjust.
9387
9388 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9389
9390         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
9391         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
9392         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
9393         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
9394         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
9395         a VEC_SELECT.
9396         * config/bfin/bfin.c (bfin_expand_builtin,
9397         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
9398
9399 2009-04-28  Richard Guenther  <rguenther@suse.de>
9400
9401         * tree-vect-loop.c (get_initial_def_for_induction): Use
9402         correct types for pointer increment.
9403
9404 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9405
9406         * toplev.c (print_version): Update GMP version string calculation.
9407
9408 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9409
9410         PR rtl-optimization/39938
9411         * resource.c (init_resource_info): Add call to df_analyze.
9412
9413 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9414
9415         * config/alpha/alpha.md (usegp): Cast the result of
9416         alpha_find_lo_sum_using_gp to enum attr_usegp.
9417         * config/alpha/alpha.c (override_options): Remove end-of-structure
9418         marker element from cpu_table.  Use array size of cpu_table to handle
9419         -mcpu and -mtune options.
9420         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
9421
9422 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
9423
9424         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
9425         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
9426         tune_32 and tune_64.
9427         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9428         support on PowerPC.
9429         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
9430         * config/rs6000/option-defaults.h: ... here.  New file.
9431         (OPT_64, OPT_32): Define.
9432         (MASK_64BIT): Define to 0 if not already defined.
9433         (OPT_ARCH64, OPT_ARCH32): Define.
9434         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
9435         and tune_64.
9436
9437 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9438
9439         * config/arm/arm.c (arm_override_options): Emit error on using
9440         fpa with AAPCS.
9441
9442 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9443
9444         PR rtl-optimization/39914
9445         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9446         registers for allocnos created from user-defined variables only
9447         when not optimizing.
9448
9449 2009-04-28  Richard Guenther  <rguenther@suse.de>
9450
9451         PR middle-end/39937
9452         * fold-const.c (fold_binary): Use distribute_real_division only
9453         on float types.
9454
9455 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
9456
9457         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
9458         add hpux-stdint.h to tm_file.
9459         (hppa[12]*-*-hpux11*): Ditto.
9460         (ia64*-*-hpux*): Ditto.
9461         * config/hpux-stdint.h: New.
9462         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9463         __STDC_EXT__ for all compiles.
9464         * config/pa/pa-hpux.h: Ditto.
9465         * config/pa/pa-hpux10.h: Ditto.
9466         * config/pa/pa-hpux11.h: Ditto.
9467
9468 2009-04-28  Catherine Moore  <clm@codesourcery.com>
9469
9470         * debug.h (set_name): Add comment.
9471
9472 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
9473
9474         PR target/39929
9475         * config/darwin.c (machopic_gen_offset): Check
9476         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
9477         * config/arm/arm.c (require_pic_register): Likewise.
9478
9479 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
9480
9481         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
9482         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
9483         m32c_promote_prototypes): Delete.
9484
9485 2009-04-28  Michael Matz  <matz@suse.de>
9486
9487         PR middle-end/39922
9488         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
9489         constants.
9490
9491 2009-04-28  Richard Guenther  <rguenther@suse.de>
9492
9493         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
9494
9495 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9496
9497         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
9498         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
9499         * config/arm/arm-tune.md: Regenerate.
9500
9501 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
9502
9503         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
9504         block if there are complex incoming edges.
9505         (sel_merge_blocks): Remove useless assert.
9506         (sel_redirect_edge_and_branch): Check that edge was redirected.
9507         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
9508         (sel_find_rgns): Delete declaration.
9509         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
9510         the region when it is not a preheader.
9511
9512 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9513
9514         PR c/39323
9515         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
9516
9517 2009-04-28  Richard Guenther  <rguenther@suse.de>
9518
9519         * tree.h (SSA_NAME_VALUE): Remove.
9520         (struct tree_ssa_name): Remove value_handle member.
9521         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
9522         array for jump threading.
9523         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
9524         SSA_NAME_VALUEs.
9525         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
9526         * tree-flow.h (threadedge_initialize_values): Declare.
9527         (threadedge_finalize_values): Likewise.
9528         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
9529         (SSA_NAME_VALUE): Define.
9530         (threadedge_initialize_values): New function.
9531         (threadedge_finalize_values): Likewise.
9532         * tree-ssa-dom.c (ssa_name_values): New global variable.
9533         (SSA_NAME_VALUE): Define.
9534         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
9535
9536 2009-04-28  Ira Rosen  <irar@il.ibm.com>
9537
9538         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9539         Use REPORT_VECTORIZED_LOCATIONS instead 
9540         REPORT_VECTORIZED_LOOPS.
9541         * tree-vectorizer.c (vect_verbosity_level): Make static.
9542         (vect_loop_location): Rename to vect_location.
9543         (vect_set_verbosity_level): Update comment.
9544         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
9545         and vect_location.
9546         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
9547         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
9548         instead REPORT_UNVECTORIZED_LOOPS.
9549         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
9550         and vect_loop_def to vect_external_def and vect_internal_def.
9551         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
9552         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
9553         REPORT_UNVECTORIZED_LOCATIONS.
9554         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
9555         and vect_used_in_loop and to vect_unused_in_scope and 
9556         vect_used_in_scope.
9557         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
9558         (vect_verbosity_level): Remove declaration.
9559         (vect_analyze_operations): Likewise.
9560         (vect_analyze_stmt): Declare.
9561         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
9562         REPORT_UNVECTORIZED_LOCATIONS.
9563         (vect_get_loop_niters): Fix indentation.
9564         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
9565         (vect_analyze_loop_operations): New function.
9566         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
9567         vect_analyze_operations.
9568         (vect_is_simple_reduction): Use new names.
9569         (vectorizable_live_operation, vect_transform_loop): Likewise.
9570         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
9571         to specify whether the data references can be a part of interleaving
9572         chain.
9573         (vect_analyze_data_ref_dependence): Use new names.
9574         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
9575         (vect_create_addr_base_for_vector_ref): Remove redundant code.
9576         * tree-vect-patterns.c (widened_name_p): Use new names.
9577         (vect_recog_dot_prod_pattern): Likewise.
9578         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
9579         (process_use, vect_mark_stmts_to_be_vectorized, 
9580         vect_model_simple_cost, vect_model_store_cost,
9581         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
9582         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
9583         vectorizable_operation, vectorizable_type_demotion,
9584         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
9585         vectorizable_condition): Likewise.
9586         (vect_analyze_operations): Split into vect_analyze_loop_operations
9587         and ...
9588         (vect_analyze_stmt): ... new function.
9589         (new_stmt_vec_info): Use new names.
9590         (vect_is_simple_use): Use new names and fix comment.
9591         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
9592         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
9593
9594 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9595
9596         PR target/39911
9597         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
9598         and integer modes for x87 operands.  Do not ICE for unsupported size,
9599         generate error instead.  Generate error for unsupported operand types.
9600         ['z']: Do not handle HImode memory operands specially.  Warning
9601         for floating-point operands.  Fallthru to 'Z' for unsupported operand
9602         types.  Do not ICE for unsupported size, generate error instead.
9603         (output_387_binary_op): Use %Z to output operands.
9604         (output_fp_compare): Ditto.
9605         (output_387_reg_move): Ditto.
9606
9607 2009-04-28  Ben Elliston  <bje@au.ibm.com>
9608
9609         PR c++/35652
9610         Revert:
9611
9612         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9613
9614         * builtins.c (c_strlen): Do not warn here.
9615         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9616         * c-common.c (pointer_int_sum): Take an explicit location.
9617         Warn about offsets out of bounds.
9618         * c-common.h (pointer_int_sum): Adjust declaration.
9619
9620 2009-04-27  Ian Lance Taylor  <iant@google.com>
9621
9622         * collect2.c (is_ctor_dtor): Change type of ret field in struct
9623         names to symkind.
9624         * dce.c (run_fast_df_dce): Change type of old_flags to int.
9625         * df-core.c (df_set_flags): Change return type to int.  Change
9626         type of old_flags to int.
9627         (df_clear_flags): Likewise.
9628         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
9629         (df_get_conditional_uses): Likewise.
9630         * df.h (df_set_flags, df_clear_flags): Update declarations.
9631         * dwarf2out.c (struct indirect_string_node): Change type of form
9632         field to enum dwarf_form.
9633         (AT_string_form): Change return type to enum dwarf_form.
9634         * fixed-value.c (fixed_compare): Add cast to enum type.
9635         * fwprop.c (update_df): Change 0 to VOIDmode.
9636         * gensupport.c: Change 0 to UNKNOWN.
9637         * gimple.h (gimple_cond_code): Add cast to enum type.
9638         * haifa-sched.c (reemit_notes): Add cast to enum type.
9639         * hooks.c (hook_int_void_no_regs): Remove function.
9640         * hooks.h (hook_int_void_no_regs): Remove declaration.
9641         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
9642         * predict.c (combine_predictions_for_insn): Add casts to enum type.
9643         * real.c (real_arithmetic): Add cast to enum type.
9644         (real_compare): Likewise.
9645         * target.h (struct gcc_target): Change return type of
9646         branch_target_register_class to enum reg_class.
9647         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
9648         default_branch_target_register_class.
9649         * targhooks.c (default_branch_target_register_class): New function.
9650         * targhooks.h (default_branch_target_register_class): Declare.
9651         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
9652         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
9653         cast to int.
9654         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
9655         ERROR_MARK.
9656         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
9657         vect_uninitialized_def.  Change 0 to ERROR_MARK.
9658         * tree-vect-stmts.c (supportable_widening_operation): Don't
9659         initialize icode1 and icode2.
9660         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
9661         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
9662         and to STD_C89.
9663         (cmn_err_flag_specs): Change 0 to STD_C89.
9664         (cmn_err_char_table): Likewise.
9665         * config/arm/arm.c (get_arm_condition_code): Change type of code
9666         to enum arm_cond_code.
9667         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
9668         (IWMMXT_BUILTIN2): Likewise.
9669         (neon_builtin_type_bits): Don't define typedef.
9670         (neon_builtin_datum): Change type of bits field to int.
9671         (arm_expand_neon_args): Add cast to enum type.
9672         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
9673         TLS_MODEL_NONE.
9674         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
9675         casts to enum type.
9676         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
9677         MIPS_FP_COND_f.
9678         * config/mips/mips.md (jal_macro): Return enum constant.
9679         (single_insn): Likewise.
9680         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
9681         CODE_FOR_nothing.
9682         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9683         casts to enum type.
9684         * config/s390/s390.c (s390_tune_flags): Change type to int.
9685         (s390_arch_flags): Likewise.
9686         (s390_handle_arch_option): Change flags field of struct pta to int.
9687         * config/s390/s390.h (s390_tune_flags): Update declaration.
9688         (s390_arch_flags): Likewise.
9689         * config/sh/sh.c (prepare_move_operands): Compare
9690         tls_symbolic_operand result with enum constant.
9691         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
9692         (sh_expand_prologue): Add cast to enum type.
9693         (sh_expand_epilogue): Likewise.
9694         (tls_symbolic_operand): Change return type to enum tls_model.
9695         (fpscr_set_from_mem): Add cast to enum type.
9696         (legitimize_pic_address): Compare tls_symbolic_operand result with
9697         enum constant.
9698         (sh_target_reg_class): Change return type to enum reg_class.
9699         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
9700         PROCESSOR_xxx.
9701         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
9702         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
9703         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
9704         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
9705         (delayed_branch, tls_call_delay): Likewise.
9706         (eligible_for_sibcall_delay): Likewise.
9707         (eligible_for_return_delay): Likewise. 
9708         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
9709         (spu_expand_builtin_1): Likewise.
9710
9711         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
9712         for all types of conversions.
9713         (output_init_element): Issue -Wc++-compat warning if needed when
9714         initializing a bitfield with enum type.
9715         * c-parser.c (c_parser_expression): Set original_type to
9716         original_type of right hand operand of comman operator.
9717
9718 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9719
9720         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
9721         grammar nits.
9722         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
9723         * doc/cpp.texi (Standard Predefined Macros)
9724         (Implementation-defined behavior): Likewise.
9725         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
9726         * doc/gimple.texi (GIMPLE Exception Handling)
9727         (@code{GIMPLE_ASSIGN}): Likewise.
9728         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
9729         * doc/invoke.texi (Warning Options, Optimize Options)
9730         (AVR Options, Darwin Options): Likewise.
9731         (Optimize Options): Reformulate -fwhole-program description.
9732         * doc/loop.texi (Lambda): Likewise.
9733         * doc/md.texi (Output Template, Define Constraints)
9734         (Standard Names, Insn Splitting): Likewise.
9735         * doc/options.texi (Option properties): Likewise.
9736         * doc/passes.texi (Tree-SSA passes): Likewise.
9737         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
9738         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
9739         (File Names and DBX): Likewise.
9740         * doc/trouble.texi (Incompatibilities): Likewise.
9741
9742 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9743
9744         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
9745         instruction is correct.
9746
9747 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9748
9749         Allow non-constant arguments to conversion intrinsics.
9750         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
9751         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
9752         * spu.c (print_operand): Handle 'v' and 'w'.
9753         (exp2_immediate_p, spu_gen_exp2): Define.
9754         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
9755         spu_convtf_1): Update parameter descriptions.
9756         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
9757         * constraints.md ('v', 'w'): New.
9758         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
9759         Remove.
9760         (i2f, I2F): New define_mode_attr.
9761         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
9762         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
9763         fixuns_truncv4sfv4si2):  Update to use mode attribute.
9764         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
9765         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
9766         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
9767         patterns for combine.
9768
9769 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
9770
9771         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
9772         (cprop, hoist, pre, store_motion): New debug counters.
9773         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
9774         is not an RTL pass anymore.
9775         (pass_profiling): Remove extern decl for pass removed in 2005.
9776         (pass_gcse, pass_jump_bypass): Remove.
9777         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
9778         to 0 for clean state.
9779         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
9780         * cse.c (gate_handle_cse_after_global_opts,
9781         rest_of_handle_cse_after_global_opts): New functions.
9782         (pass_cse_after_global_opts): New pass, does local CSE.
9783         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
9784         (TV_CPROP): New timevar.
9785         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
9786         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
9787         (gcse_main, recompute_all_luids): Remove.
9788         (compute_hash_table_work): Call max_reg_num instead of reading
9789         max_gcse_regno.
9790         (cprop_jump): Don't set run_jump_opt_after_gcse.
9791         (constprop_register): Always allow to alter jumps.
9792         (cprop_insn): Likewise.
9793         (do_local_cprop): Likewise.
9794         (local_cprop_pass): Likewise.  Return non-zero if something changed.
9795         (cprop): Remove function, fold interesting bits into one_cprop_pass.
9796         (find_implicit_sets): Add note about missed optimization opportunity.
9797         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
9798         pass_rtl_cprop execute function.
9799         Don't bother tracking the pass number, each pass gets its own dumpfile
9800         now anyway.
9801         Always allow to alter jumpsand bypass jumps.
9802         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
9803         will just find no suitable set.
9804         (pre_edge_insert): Fix dumping, this function is for PRE only.
9805         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
9806         pass_rtl_pre execute function.
9807         (hoist_code): Return non-zero if something changed.  Keep track of
9808         substitutions and insertions for statistics gathering similar to PRE.
9809         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
9810         called from the pass_rtl_hoist execute function.  Show pass statistics.
9811         (compute_store_table): Use max_reg_num directly instead of using the
9812         formerly global max_gcse_regno.
9813         (build_store_vectors): Likewise.
9814         (replace_store_insn): Fix dumping.
9815         (store_motion): Rename to ...
9816         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
9817         pass, called from the pass_rtl_store_motion execute function.  Keep
9818         track of substitutions and insertions for statistics gathering similar
9819         to PRE.
9820         (bypass_jumps): Remove, fold interesting bits into ...
9821         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
9822         from the pass_rtl_cprop execute function.
9823         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
9824         pass_jump_bypass): Remove.
9825         (gate_handle_gcse, rest_of_handle_gcse): Remove.
9826         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
9827         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
9828         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
9829         (gate_rtl_store_motion, execute_rtl_store_motion,
9830         pass_rtl_store_motion): New.
9831         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
9832         make it clear that -fcse-skip-blocks is a no-op for backward compat.
9833         * passes.c (init_optimization_passes): Remove pass_gcse and
9834         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
9835         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
9836         instead of pass_jump_bypass.
9837
9838 2009-04-27  Richard Guenther  <rguenther@suse.de>
9839
9840         PR middle-end/39928
9841         * gimplify.c (gimplify_expr): If we are required to create
9842         a temporary make sure it ends up as register.
9843
9844 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9845
9846         PR target/39903
9847         * config/i386/i386.c (construct_container): Don't call
9848         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
9849         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
9850
9851 2009-04-27  Michael Matz  <matz@suse.de>
9852
9853         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
9854         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
9855         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
9856         (dump_replaceable_exprs): Take a bitmap.
9857         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
9858         array.
9859         (expand_gimple_basic_block): Likewise.
9860         * tree-ssa-ter.c (struct temp_expr_table_d): Make
9861         replaceable_expressions member a bitmap.
9862         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
9863         (mark_replaceable): Likewise.
9864         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
9865         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
9866
9867 2009-04-27  Richard Guenther  <rguenther@suse.de>
9868
9869         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
9870         (verify_stmts): Dispatch to gimple/type verification code.
9871         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
9872         issue with call argument types.
9873
9874 2009-04-27  Michael Matz  <matz@suse.de>
9875
9876         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
9877         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
9878         to above.
9879
9880 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
9881             Eric Botcazou  <ebotcazou@adacore.com>
9882
9883         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
9884         a label's basic block.
9885         (mark_target_live_regs): Tidy and rework obsolete comments.
9886         Change back DF problem to LIVE.  If a label starts a basic block,
9887         assume that all registers that used to be live then still are.
9888         (init_resource_info): If a label starts a basic block, set its
9889         BLOCK_FOR_INSN accordingly.
9890         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
9891
9892 2009-04-27  Richard Guenther  <rguenther@suse.de>
9893
9894         * tree-flow-inline.h (function_ann): Remove.
9895         (get_function_ann): Likewise.
9896         * tree-dfa.c (create_function_ann): Remove.
9897         * tree-flow.h (struct static_var_ann_d): Remove.
9898         (struct function_ann_d): Likewise.
9899         (union tree_ann_d): Remove fdecl member.
9900         (function_ann_t): Remove.
9901         (function_ann, get_function_ann, create_function_ann): Remove
9902         declarations.
9903
9904 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
9905
9906         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
9907
9908 2009-04-27  Jan Hubicka  <jh@suse.cz>
9909
9910         * ipa-pure-const.c (struct funct_state_d): New fields
9911         state_previously_known, looping_previously_known; remove
9912         state_set_in_source.
9913         (analyze_function): Use new fields.
9914         (propagate): Avoid assumption that state_set_in_source imply
9915         nonlooping.
9916
9917         * tree-ssa-loop-niter.c (finite_loop_p): New function.
9918         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
9919         * cfgloop.h (finite_loop_p): Declare.
9920
9921 2009-04-26  Michael Matz  <matz@suse.de>
9922
9923         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
9924
9925 2009-04-26  Michael Matz  <matz@suse.de>
9926
9927         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
9928         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
9929         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
9930         pass_mark_used_blocks): Remove.
9931         * tree-optimize.c (pass_free_datastructures,
9932         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
9933         * passes.c (init_optimization_passes): Don't call
9934         pass_mark_used_blocks, remove dead code.
9935
9936 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
9937
9938         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
9939         * tree-ssa-live.h (register_ssa_partition): Likewise.
9940
9941 2009-04-26  Michael Matz  <matz@suse.de>
9942
9943         Expand from SSA.
9944         * builtins.c (fold_builtin_next_arg): Handle SSA names.
9945         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
9946         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
9947         SSA names. 
9948         (compare_pairs): Swap cost comparison.
9949         (coalesce_ssa_name): Don't use change_partition_var.
9950         * tree-nrv.c (struct nrv_data): Add modified member.
9951         (finalize_nrv_r): Set it.
9952         (tree_nrv): Use it to update statements.
9953         (pass_nrv): Require PROP_ssa.
9954         * tree-mudflap.c (mf_decl_cache_locals,
9955         mf_build_check_statement_for): Use make_rename_temp.
9956         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
9957         * alias.c (find_base_decl): Handle SSA names.
9958         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
9959         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
9960         * rtl.h (set_reg_attrs_for_parm): Declare.
9961         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
9962         to "optimized", remove unused locals at finish.
9963         (execute_free_datastructures): Make global, call
9964         delete_tree_cfg_annotations.
9965         (execute_free_cfg_annotations): Don't call
9966         delete_tree_cfg_annotations.
9967
9968         * ssaexpand.h: New file.
9969         * expr.c (toplevel): Include ssaexpand.h.
9970         (expand_assignment): Handle SSA names the same as register variables.
9971         (expand_expr_real_1): Expand SSA names.
9972         * cfgexpand.c (toplevel): Include ssaexpand.h.
9973         (SA): New global variable.
9974         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
9975         (SSAVAR): New macro.
9976         (set_rtl): New helper function.
9977         (add_stack_var): Deal with SSA names, use set_rtl.
9978         (expand_one_stack_var_at): Likewise.
9979         (expand_one_stack_var): Deal with SSA names.
9980         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
9981         before unique numbers.
9982         (expand_stack_vars): Use set_rtl.
9983         (expand_one_var): Accept SSA names, add asserts for them, feed them
9984         to above subroutines.
9985         (expand_used_vars): Expand all partitions (without default defs),
9986         then only the local decls (ignoring those expanded already).
9987         (expand_gimple_cond): Remove edges when jumpif() expands an
9988         unconditional jump.
9989         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
9990         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
9991         SSA name.
9992         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
9993         members of SA; deal with PARM_DECL partitions here; expand
9994         all PHI nodes, free tree datastructures and SA.  Commit instructions
9995         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
9996         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
9997         info and statements at start, collect garbage at finish.
9998         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
9999         (VAR_ANN_PARTITION) Remove.
10000         (change_partition_var): Don't declare.
10001         (partition_to_var): Always return SSA names.
10002         (var_to_partition): Only accept SSA names.
10003         (register_ssa_partition): Only check argument.
10004         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
10005         member.
10006         (delete_var_map): Don't free it.
10007         (var_union): Only accept SSA names, simplify.
10008         (partition_view_init): Mark only useful SSA names as used.
10009         (partition_view_fini): Only deal with SSA names.
10010         (change_partition_var): Remove.
10011         (dump_var_map): Use ssa_name instead of partition_to_var member.
10012         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
10013         basic blocks.
10014         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
10015         (struct _elim_graph): New member const_dests; nodes member vector of
10016         ints.
10017         (set_location_for_edge): New static helper.
10018         (create_temp): Remove.
10019         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
10020         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
10021         (new_elim_graph): Allocate const_dests member.
10022         (clean_elim_graph): Truncate const_dests member.
10023         (delete_elim_graph): Free const_dests member.
10024         (elim_graph_size): Adapt to new type of nodes member.
10025         (elim_graph_add_node): Likewise.
10026         (eliminate_name): Likewise.
10027         (eliminate_build): Don't take basic block argument, deal only with
10028         partition numbers, not variables.
10029         (get_temp_reg): New static helper.
10030         (elim_create): Use it, deal with RTL temporaries instead of trees.
10031         (eliminate_phi): Adjust all calls to new signature.
10032         (assign_vars, replace_use_variable, replace_def_variable): Remove.
10033         (rewrite_trees): Only do checking.
10034         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
10035         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
10036         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
10037         contains_tree_r, MAX_STMTS_IN_LATCH,
10038         process_single_block_loop_latch, analyze_edges_for_bb,
10039         perform_edge_inserts): Remove.
10040         (expand_phi_nodes): New global function.
10041         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
10042         functions, initialize new parameter, remember partitions having a
10043         default def.
10044         (finish_out_of_ssa): New global function.
10045         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
10046         don't reset in_ssa_p here, don't disable TER when mudflap.
10047         (pass_del_ssa): Remove.
10048         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
10049         partition members.
10050         (execute_free_datastructures): Declare.
10051         * Makefile.in (SSAEXPAND_H): New variable.
10052         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
10053         * basic-block.h (commit_one_edge_insertion): Declare.
10054         * passes.c (init_optimization_passes): Move pass_nrv and
10055         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
10056         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
10057         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
10058         (redirect_branch_edge): Deal with super block when expanding, split
10059         out jump patching itself into ...
10060         (patch_jump_insn): ... here, new static helper.
10061
10062 2009-04-26  Michael Matz  <matz@suse.de>
10063
10064         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
10065         beyond num_ssa_names.
10066         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
10067         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
10068
10069 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
10070
10071         PR inline-asm/39543
10072         * fwprop.c (forward_propagate_asm): New function.
10073         (forward_propagate_and_simplify): Propagate also into __asm, if it
10074         doesn't increase the number of referenced registers.
10075
10076         PR c/39889
10077         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
10078
10079 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
10080
10081         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
10082         note_nonlocal_vla_type for nonlocal VLAs.
10083         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
10084         contains_remapped_vars, remap_vla_decls): New functions.
10085         (convert_nonlocal_reference_stmt): If not optimizing, call
10086         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
10087         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
10088         if it wasn't found in var_map.
10089         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
10090         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
10091         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
10092         declare_vars.
10093         * gimplify.c (nonlocal_vlas): New variable.
10094         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
10095         referenced VLAs.
10096         (gimplify_body): Create and destroy nonlocal_vlas.
10097
10098         * dwarf2out.c (loc_descr_plus_const): New function.
10099         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
10100         mem_loc_descriptor, loc_descriptor_from_tree_1,
10101         descr_info_loc, gen_variable_die): Use it.
10102
10103         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
10104         !TREE_STATIC VAR_DECLs.
10105         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
10106         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
10107         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
10108         DECL_BY_REFERENCE is valid.
10109         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
10110         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
10111         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
10112         Copy DECL_BY_REFERENCE.
10113         (struct nesting_copy_body_data): New type.
10114         (nesting_copy_decl): New function.
10115         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
10116         if they have variable length.
10117
10118 2009-04-26  Michael Matz  <matz@suse.de>
10119
10120         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
10121         mark new temporaries for renaming.
10122
10123 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
10124
10125         PR c/39581
10126         * c-decl.c (global_bindings_p): Return negative value.
10127         (c_variable_size): New.  Based on variable_size from
10128         stor-layout.c.
10129         (grokdeclarator): Call c_variable_size not variable_size.
10130
10131 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
10132
10133         * config/i386/i386.c (print_operand) ['z']: Fix typo.
10134
10135 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
10136
10137         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
10138         Redefine it to just use mingw/include.
10139         (ASM_SPEC): Rules for -m32 and -m64.
10140         (LINK_SPEC): Use Likewise.
10141         (SPEC_32): New define.
10142         (SPEC_64): Likewise.
10143         (SUB_LINK_SPEC): Likewise.
10144         (MULTILIB_DEFAULTS): New define.
10145         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
10146         Add multilib options.
10147         (MULTILIB_DIRNAMES): Likewise.
10148         (MULTILIB_OSDIRNAMES): Likewise.
10149         (LIBGCC): Likewise.
10150         (INSTALL_LIBGCC): Likewise.
10151
10152 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
10153
10154         PR c/39556
10155         * c-tree.h (enum c_inline_static_type): New.
10156         (record_inline_static): Declare.
10157         * c-decl.c (struct c_inline_static, c_inline_statics,
10158         record_inline_static, check_inline_statics): New.
10159         (pop_file_scope): Call check_inline_statics.
10160         (start_decl): Call record_inline_static instead of pedwarning
10161         directly for static in inline function.
10162         * c-typeck.c (build_external_ref): Call record_inline_static
10163         instead of pedwarning directly for static referenced in inline
10164         function.
10165
10166 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
10167
10168         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
10169         not new but only being rescanned.
10170         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
10171         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
10172         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
10173         record_set_info, compute_set, grealloc): Remove.
10174         (recompute_all_luids): New function.
10175         (gcse_main): Don't compute sets, and don't do related memory
10176         allocations/free-ing.  If something changed before the end of the
10177         pass, update LUIDs using recompute_all_luids.
10178         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
10179         (free_gcse_mem): Don't free it either.
10180         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
10181         Use the df insn LUIDs.
10182         (load_killed_in_block): Likewise.
10183         (compute_hash_table_work): Don't compute reg_set_in_block.
10184         (compute_transp): Use DF_REG_DEF_CHAINs.
10185         (local_cprop_pass): Don't use compute_sets and related functions.
10186         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
10187         Use get_max_uid() instead of max_cuid.
10188         (insert_insn_end_basic_block, pre_insert_copy_insn,
10189         update_ld_motion_stores): Don't try to
10190         keep reg_set tables up to date.
10191         (pre_insert_copies): Use df insn LUIDs.
10192         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
10193         (reg_set_info): Don't use extra bitmap argument.
10194         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
10195         information to compute regs_set_in_block.
10196         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
10197         (bypass_jumps): Don't use compute_sets and friends.
10198
10199 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10200
10201         PR testsuite/39710
10202         * opts.c (undocumented_msg): Do not leave blank even with
10203         ENABLE_CHECKING.
10204
10205 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
10206
10207         * c-decl.c (build_enumerator): Allow values folding to integer
10208         constants but not integer constant expressions with a pedwarn if
10209         pedantic.
10210
10211 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
10212
10213         PR c/39582
10214         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
10215         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
10216         type is an integer constant.
10217
10218 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
10219
10220         PR target/39897
10221         * config/i386/i386.c (print_operand) ['z']: Revert handling of
10222         HImode operands.
10223
10224 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
10225
10226         PR c/39564
10227         * c-decl.c (grokdeclarator): Diagnose declarations of functions
10228         with variably modified return type and no storage class
10229         specifiers, except for the case of nested functions.  Distinguish
10230         extern declarations of functions with variably modified return
10231         types from those of objects with variably modified types.
10232
10233 2009-04-25  Jan Hubicka  <jh@suse.cz>
10234
10235         * tree.c (list_equal_p): New function.
10236         * tree.h (list_equal_p): Declare.
10237         * coretypes.h (edge_def, edge, const_edge, basic_block_def
10238         basic_block_def, basic_block, const_basic_block): New.
10239         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
10240         (redirect_eh_edge): New function.
10241         (make_eh_edge_update_phi): EH edges are not abnormal.
10242         * except.c: Include tree-flow.h.
10243         (list_match): New function.
10244         (eh_region_replaceable_by_p): New function.
10245         (replace_region): New function.
10246         (hash_type_list): New function.
10247         (hash_eh_region): New function.
10248         (eh_regions_equal_p): New function.
10249         (merge_peers): New function.
10250         (remove_unreachable_regions): Verify EH tree when checking;
10251         merge peers.
10252         (copy_eh_region_1): New function.
10253         (copy_eh_region): New function.
10254         (push_reachable_handler): New function.
10255         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
10256         regions without label but with live RESX.
10257         * except.h (redirect_eh_edge_to_label): New.
10258         * tree-flow.h (redirect_eh_edge): New.
10259         * coretypes.h (edge_def, edge, const_edge, basic_block_def
10260         basic_block_def, basic_block, const_basic_block): Remove.
10261         * Makefile.in (except.o): Add dependency on tree-flow.h
10262         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
10263         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
10264         Remove.
10265
10266 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
10267
10268         PR bootstrap/39645
10269         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
10270         on the destination of memcpy.
10271
10272 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
10273
10274         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
10275         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
10276         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
10277
10278 2009-04-25  Jan Hubicka  <jh@suse.cz>
10279
10280         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
10281         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
10282         to be reached by different label than left.
10283         (update_eh_edges): Update comment; remove edge_to_remove if possible
10284         and return true if suceeded.
10285         (cleanup_empty_eh): Accept sharing map; handle shared regions.
10286         (cleanup_eh): Compute sharing map.
10287         * except.c (remove_eh_handler_and_replace): Add argument if we should
10288         update regions.
10289         (remove_unreachable_regions): Update for label sharing.
10290         (label_to_region_map): Likewise.
10291         (get_next_region_sharing_label): New function.
10292         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
10293         prev_try pointers.
10294         (remove_eh_handler): Update.
10295         (remove_eh_region_and_replace_by_outer_of): New function.
10296         * except.h (struct eh_region): Add next_region_sharing_label.
10297         (remove_eh_region_and_replace_by_outer_of,
10298         get_next_region_sharing_label): Declare.
10299         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
10300
10301 2009-04-25  Jan Hubicka  <jh@suse.cz>
10302
10303         * tree-cfg.c (split_critical_edges): Split also edges where we can't
10304         insert code even if they are not critical.
10305
10306 2009-04-25  Jan Hubicka  <jh@suse.cz>
10307
10308         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10309         (gimple_can_remove_branch_p): EH edges won't remove branch by
10310         redirection.
10311         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
10312         updating of non-abnormal EH edges.
10313         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10314         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
10315         (split_critical_edges): Split also edges where emitting code on them
10316         will lead to splitting later.
10317
10318 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
10319             H.J. Lu  <hongjiu.lu@intel.com>
10320
10321         PR target/39590
10322         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
10323         the configured assembler supports fildq and fistpq mnemonics.
10324         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
10325         * configure: Regenerated.
10326         * config.in: Ditto.
10327
10328         * config/i386/i386.c (print_operand): Handle 'Z'.
10329         ['z']: Remove handling of special fild/fist suffixes.
10330         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
10331         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
10332         suffix of fild insn.
10333         (*floatsi<mode>2_vector_mixed): Ditto.
10334         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
10335         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
10336         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
10337         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
10338         * config/i386/gas.h (GAS_MNEMONICS): Remove.
10339
10340 2009-04-25  Ben Elliston  <bje@au.ibm.com>
10341  
10342         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
10343         the source of a set operation.
10344
10345 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
10346
10347         * target.h (struct gcc_target): Add case_values_threshold field.
10348         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
10349         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
10350         * targhooks.c (default_case_values_threshold): New function.
10351         * targhooks.h (default_case_values_threshold): Declare function.
10352         * stmt.c (expand_case): Use case_values_threshold target hook.
10353         * expr.h (case_values_threshold): Remove declartation.
10354         * expr.c (case_values_threshold): Remove function.
10355         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
10356
10357         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
10358         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10359         (avr_case_values_threshold): Declare as static.
10360         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
10361
10362         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
10363         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10364         (mn10300_case_values_threshold): New function.
10365
10366 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10367
10368         * ira.c (setup_cover_and_important_classes): Add enum cast.
10369
10370 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
10371
10372         * genpreds.c (write_enum_constraint_num): Output definition of
10373         CONSTRAINT_NUM_DEFINED_P macro.
10374         * ira.c (setup_cover_and_important_classes): Use
10375         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
10376         
10377 2009-04-24  DJ Delorie  <dj@redhat.com>
10378
10379         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
10380         __SH2A_SINGLE_ONLY__ also.
10381
10382 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
10383
10384         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
10385         (movdf_internal): Ditto.
10386         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
10387         SFmode and DFmode constants.
10388         (ia64_print_operand): Add 'G' format for printing
10389         floating point constants.
10390
10391 2009-04-24  Richard Guenther  <rguenther@suse.de>
10392
10393         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
10394         from unsigned additions.
10395
10396 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
10397
10398         * c-typeck.c (set_init_index): Allow array designators that are
10399         not integer constant expressions with a pedwarn if pedantic.
10400
10401 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10402
10403         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
10404         zero if no overlap in nonzero bits between the operands.
10405
10406 2009-04-24  Ian Lance Taylor  <iant@google.com>
10407
10408         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
10409         (record_dead_and_set_regs): Likewise.
10410         * df.h (struct df_mw_hardreg): Change flags field to int.
10411         (struct df_base_ref): Likewise.
10412         (struct df): Change changeable_flags field to int.
10413         * df-scan.c (df_defs_record): Change clobber_flags to int.
10414         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
10415         constants rather than #define macros.
10416         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
10417         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
10418         (enum dwarf_calling_convention): Likewise.
10419         (enum dwarf_line_number_x_ops): Likewise.
10420         (enum dwarf_call_frame_info): Likewise.
10421         (enum dwarf_source_language): Likewise.
10422         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
10423         (add_calling_convention_attribute): Likewise.
10424         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
10425         (combine_comparisons): Change compcode to int.  Add cast to enum type.
10426         * genrecog.c (maybe_both_true_2): Change c to int.
10427         (write_switch): Likewise.  Add cast to enum type.
10428         * gimplify.c (gimplify_omp_for): Handle return values from
10429         gimplify_expr using MIN rather than bitwise or.
10430         (gimplify_expr): Add cast to enum type.
10431         * ipa-prop.c (update_jump_functions_after_inlining): Change
10432         IPA_BOTTOM to IPA_JF_UNKNOWN.
10433         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
10434         Add casts to enum type.
10435         (setup_cover_and_important_classes): Change cl to int.  Add casts
10436         to enum type.
10437         (setup_class_translate): Change cl and mode to int.
10438         (ira_init_once): Change mode to int.
10439         (free_register_move_costs): Likewise.
10440         (setup_prohibited_mode_move_regs): Add casts to enum type.
10441         * langhooks.c (add_builtin_function_common): Rework assertion that
10442         value fits bitfield.
10443         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
10444         * omega.c (omega_do_elimination): Avoid math on enum types.
10445         * optabs.c (expand_vec_shift_expr): Remove casts to int.
10446         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
10447         int local to handle integral_argment value.
10448         * regmove.c (try_auto_increment): Change PUT_MODE to
10449         PUT_REG_NOTE_KIND.
10450         * reload.c (push_secondary_reload): Add casts to enum type.
10451         (secondary_reload_class, find_valid_class): Likewise.
10452         * reload1.c (emit_input_reload_insns): Likewise.
10453         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
10454         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
10455         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
10456         constant.
10457         * tree.c (build_common_builtin_nodes): Add casts to enum type.
10458         * tree-complex.c (complex_lattice_t): Typedef to int rather than
10459         enum type.
10460         (expand_complex_libcall): Add casts to enum type.
10461         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
10462         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
10463         with ERROR_MARK, not NUM_TREE_CODES.
10464         (vect_create_epilog_for_reduction): Likewise.
10465         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
10466         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
10467         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
10468         enum machine_mode.
10469         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
10470         vect_unused_in_loop.  Change 0 to loop_vect.
10471         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
10472         * var-tracking.c (get_init_value): Change return type to enum
10473         var_init_status.
10474         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
10475         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
10476         arm_fp_model.
10477         (arm_override_options): Add casts to enum type.
10478         (arm_emit_tls_decoration): Likewise.
10479         * config/i386/i386.c (ix86_function_specific_restore): Add casts
10480         to enum type.
10481         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
10482         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
10483         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
10484         enum type.
10485         * config/s390/s390.c (code_for_builtin_64): Change to array of
10486         enum insn_code.
10487         (code_for_builtin_31): Likewise.
10488         (s390_expand_builtin): Change code_for_builtin to enum insn_code
10489         const *.
10490         * config/sparc/sparc.c (sparc_override_options): Change value
10491         field in struct code_model to enum cmodel.  In initializer change
10492         0 to NULL and add cast to enum type.
10493
10494         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
10495         Change all callers.  Issue a -Wc++-compat warning using
10496         lhs_origtype if necessary.
10497         (convert_for_assignment): Issue -Wc++-compat warnings about
10498         invalid conversions to enum type on assignment.
10499         * c-common.h (build_modify_expr): Update declaration.
10500
10501 2009-04-24  Nick Clifton  <nickc@redhat.com>
10502
10503         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
10504         (function_arg_advance): Likewise.
10505         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
10506         5th alternative.
10507
10508 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10509
10510         * config/s390/constraints.md ('I', 'J'): Fix condition.
10511
10512 2009-04-24  Diego Novillo  <dnovillo@google.com>
10513
10514         * gengtype-parse.c (parse_error): Add newline after message.
10515
10516 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10517
10518         * config/i386/sse.md (avxmodesuffixs): Removed.
10519         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
10520         (*avx_pinsr<ssevecsize>): This.
10521
10522 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10523
10524         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10525         follow chains of regs with a single definition, and allow expressions
10526         that are function_invariant_p.
10527         (simple_rhs_p): Allow expressions that are function_invariant_p.
10528
10529 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
10530
10531         PR middle-end/39867
10532         * fold-const.c (fold_cond_expr_with_comparison): When folding
10533         > and >= to MAX, make sure the MAX uses the same type as the
10534         comparison's operands.
10535
10536 2009-04-24  Nick Clifton  <nickc@redhat.com>
10537
10538         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
10539         addressing for DImode accesses.
10540         (frv_print_operand_address): Handle PLUS case.
10541         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
10542
10543 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
10544
10545         PR rtl-optimization/39794
10546         * alias.c (canon_true_dependence): Add x_addr argument.
10547         * rtl.h (canon_true_dependence): Adjust prototype.
10548         * cse.c (check_dependence): Adjust canon_true_dependence callers.
10549         * cselib.c (cselib_invalidate_mem): Likewise.
10550         * gcse.c (compute_transp): Likewise.
10551         * dse.c (scan_reads_nospill): Likewise.
10552         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
10553         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
10554         canon_base_addr of the group, plus optional offset.
10555         (struct group_info): Rename canon_base_mem to
10556         canon_base_addr.
10557         (get_group_info): Set canon_base_addr to canon_rtx of base, not
10558         canon_rtx of base_mem.
10559
10560 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
10561
10562         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10563         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
10564
10565 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10566
10567         * config/spu/spu-builtins.h: Delete file.
10568
10569         * config/spu/spu.h (enum spu_builtin_type): Move here from
10570         spu-builtins.h.
10571         (struct spu_builtin_description): Likewise.  Add GTY marker.
10572         Do not use enum spu_function_code or enum insn_code.
10573         (spu_builtins): Add extern declaration.
10574
10575         * config/spu/spu.c: Do not include "spu-builtins.h".
10576         (enum spu_function_code, enum spu_builtin_type_index,
10577         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
10578         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
10579         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
10580         unsigned_V2DI_type_node): Move here from spu-builtins.h.
10581         (spu_builtin_types): Make static.  Add GTY marker.
10582         (spu_builtins): Add extern declaration with GTY marker.
10583         Include "gt-spu.h".
10584
10585         * config/spu/spu-c.c: Do not include "spu-builtins.h".
10586         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
10587         Check programmatically whether all parameters are scalar.
10588
10589         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
10590
10591 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10592
10593         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
10594         assignment from the constructor either if the target is volatile.
10595
10596 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
10597
10598         * config/arm/arm.md (insv): Do not share operands[0].
10599
10600 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
10601
10602         * config/vxlib-tls.c (active_tls_threads): Delete.
10603         (delete_hook_installed): New.
10604         (tls_delete_hook): Don't delete the delete hook.
10605         (tls_destructor): Delete it here.
10606         (__gthread_set_specific): Adjust installing the delete hook.
10607         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
10608         __gthread_leave_tsd_dtor_context.
10609
10610 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
10611
10612         * c-format.c (gcc_tdiag_char_table): Add support for %E.
10613
10614 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
10615
10616         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
10617         enum type.
10618         (alpha_rtx_costs): Ditto.
10619         (emit_unlikely_jump): Use add_reg_note.
10620         (emit_frame_store_1): Ditto.
10621         (alpha_expand_prologue): Ditto.
10622         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10623         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
10624
10625 2009-04-23  Nick Clifton  <nickc@redhat.com>
10626
10627         * config/v850/v850.md (epilogue): Remove suppressed code.
10628         (return): Rename to return_simple and remove test of frame size.
10629         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
10630         to gen_return_simple.
10631
10632 2009-04-22  Jing Yu  <jingyu@google.com>
10633
10634         PR testsuite/39781
10635         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10636
10637 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10638
10639         PR C/31499
10640         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
10641         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
10642         value is a VECTOR_CST, the element type is the element type of the
10643         vector.
10644
10645 2009-04-22  DJ Delorie  <dj@redhat.com>
10646
10647         * config/m32c/m32c.h: Update GTY annotations to new syntax.
10648
10649 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
10650
10651         * alias.c (find_base_term): Move around LO_SUM case, so that
10652         CONST falls through into PLUS/MINUS handling.
10653
10654         PR c/39855
10655         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
10656         into 0, use omit_one_operand.
10657
10658 2009-04-23  Ben Elliston  <bje@au.ibm.com>
10659
10660         * config/rs6000/linux-unwind.h (get_regs): Remove type
10661         puns. Change the type of `pc' to an array of unsigned ints and
10662         update all users.  Constify frame24.
10663
10664 2009-04-22  DJ Delorie  <dj@redhat.com>
10665
10666         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
10667         declarations before code.
10668         (current_function_special_page_vector): Likewise.
10669         (m32c_expand_insv): Silence a warning.
10670
10671 2009-04-21  Taras Glek  <tglek@mozilla.com>
10672
10673         * alias.c: Update GTY annotations to new syntax.
10674         * basic-block.h: Likewise.
10675         * bitmap.h: Likewise.
10676         * c-common.h: Likewise.
10677         * c-decl.c: Likewise.
10678         * c-parser.c: Likewise.
10679         * c-pragma.c: Likewise.
10680         * c-tree.h: Likewise.
10681         * cfgloop.h: Likewise.
10682         * cgraph.h: Likewise.
10683         * config/alpha/alpha.c: Likewise.
10684         * config/arm/arm.h: Likewise.
10685         * config/avr/avr.h: Likewise.
10686         * config/bfin/bfin.c: Likewise.
10687         * config/cris/cris.c: Likewise.
10688         * config/darwin.c: Likewise.
10689         * config/frv/frv.c: Likewise.
10690         * config/i386/i386.c: Likewise.
10691         * config/i386/i386.h: Likewise.
10692         * config/i386/winnt.c: Likewise.
10693         * config/ia64/ia64.h: Likewise.
10694         * config/iq2000/iq2000.c: Likewise.
10695         * config/mips/mips.c: Likewise.
10696         * config/mmix/mmix.h: Likewise.
10697         * config/pa/pa.c: Likewise.
10698         * config/pa/pa.h: Likewise.
10699         * config/rs6000/rs6000.c: Likewise.
10700         * config/s390/s390.c: Likewise.
10701         * config/sparc/sparc.c: Likewise.
10702         * config/xtensa/xtensa.c: Likewise.
10703         * cselib.h: Likewise.
10704         * dbxout.c: Likewise.
10705         * dwarf2out.c: Likewise.
10706         * except.c: Likewise.
10707         * except.h: Likewise.
10708         * fixed-value.h: Likewise.
10709         * function.c: Likewise.
10710         * function.h: Likewise.
10711         * gimple.h: Likewise.
10712         * integrate.c: Likewise.
10713         * optabs.c: Likewise.
10714         * output.h: Likewise.
10715         * real.h: Likewise.
10716         * rtl.h: Likewise.
10717         * stringpool.c: Likewise.
10718         * tree-data-ref.c: Likewise.
10719         * tree-flow.h: Likewise.
10720         * tree-scalar-evolution.c: Likewise.
10721         * tree-ssa-address.c: Likewise.
10722         * tree-ssa-alias.h: Likewise.
10723         * tree-ssa-operands.h: Likewise.
10724         * tree.c: Likewise.
10725         * tree.h: Likewise.
10726         * varasm.c: Likewise.
10727         * varray.h: Likewise.
10728         * vec.h: Likewise.
10729         * coretypes.h: Do not define GTY macro if it is already defined.
10730         * doc/gty.texi: Update GTY documentation to new syntax.
10731         * gengtype-lex.l: Enforce attribute-like syntax for GTY
10732         annotations on structs.
10733         * gengtype-parse.c: Likewise.
10734
10735 2009-04-22  Mark Heffernan  <meheff@google.com>
10736
10737         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
10738
10739 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10740
10741         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
10742         where appropriate.
10743
10744 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10745
10746         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
10747         the same as a PLUS without a shift.  Increase the cost of a
10748         CONST_INT in MULT.
10749
10750 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10751
10752         * Makefile.in: Update dependencies.
10753         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
10754         * errors.h: Remove bogus comment about compatibility.
10755         (warning): Update declaration.
10756         * genautomata.c: Update all calls to warning.
10757         * gimple.c: Do not include errors.h. Include toplev.h.
10758         * tree-ssa-structalias.c: Do not include errors.h.
10759         * omega.c: Likewise.
10760         * tree-ssa-reassoc.c: Likewise.
10761         * config/spu/spu-c.c: Likewise.
10762         * config/spu/t-spu-elf: Update dependencies.
10763
10764 2009-04-22  Richard Guenther  <rguenther@suse.de>
10765
10766         PR tree-optimization/39824
10767         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
10768         make sure the types are compatible.
10769
10770 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10771
10772         PR c++/14875
10773         * c-common.c (c_parse_error): Take a token_flags parameter.
10774         Use token_type for the token type instead.
10775         Pass token_flags to cpp_type2name.
10776         * c-common.h (c_parse_error): Update declaration.
10777         * c-parser.c (c_parser_error): Pass 0 as token flags.
10778
10779 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
10780
10781         PR rtl-optimization/39580
10782         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
10783         
10784 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10785
10786         * function.c (expand_function_end): Do not emit a jump to the "naked"
10787         return label for fall-through returns.
10788         * except.c (sjlj_emit_function_exit): Always place the call to the
10789         unregister function at the location installed by expand_function_end.
10790
10791 2009-04-22  Richard Guenther  <rguenther@suse.de>
10792
10793         PR tree-optimization/39845
10794         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
10795         (gen_inbound_check): Likewise.
10796
10797 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
10798
10799         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
10800         padding for PPC.
10801         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
10802         * config/vxlib.c (__gthread_once): Add race guard for PPC.
10803
10804 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10805
10806         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
10807         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
10808         shift counts to avoid out-of-bounds array accesses.
10809
10810 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10811
10812         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
10813         (Pmode): Move above.
10814
10815 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
10816
10817         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
10818         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
10819         GET_CODE macro.  Use IN_RANGE macro where appropriate.
10820         * config/alpha/alpha.h: Ditto.
10821         * config/alpha/alpha.md: Ditto.
10822         * config/alpha/constraints.md: Ditto.
10823         * config/alpha/predicates.md: Ditto.
10824         
10825 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10826
10827         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
10828         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10829         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10830         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10831         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10832         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10833         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10834         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10835         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10836         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10837         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10838         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10839         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10840         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10841         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10842         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10843         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10844         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10845         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10846         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10847         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10848         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10849         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10850         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10851         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10852         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10853         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10854
10855 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10856
10857         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
10858         references from comments.
10859         * cfgbuild.c: (count_basic_blocks): Delete.
10860         (find_basic_blocks_1): Delete.
10861         (find_basic_blocks): Delete.
10862         * except.c (finish_eh_generation): Make static.  Move comment from
10863         except.h here.  Remove find_basic_blocks references from comments.
10864         * except.h (finish_eh_generation): Delete.
10865         * basic-block.h (find_basic_blocks): Delete.
10866         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
10867
10868 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
10869
10870         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
10871         (sdbout_parms):  Likewise.
10872
10873 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
10874
10875         * config/sh/sh.c (prepare_cbranch_operands): Use
10876         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
10877         (expand_cbranchdi4): Likewise.
10878         (from_compare): Add cast to enum type.
10879         (expand_cbranchsi4): Use add_reg_note.
10880         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
10881         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
10882         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
10883         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10884         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
10885         instead of CODE_FOR_nothing.
10886         (cbranchdi4): Likewise.  Fix the order of arguments for
10887         gen_rtx_fmt_ee.
10888         (push_fpscr): Use add_reg_note.
10889         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
10890         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
10891         
10892 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
10893
10894         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
10895         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10896         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10897         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
10898         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
10899         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
10900         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
10901         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
10902         config/alpha/x-vms, config/arc/t-arc,
10903         config/arm/README-interworking, config/arm/arm-c.c,
10904         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
10905         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
10906         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
10907         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
10908         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
10909         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
10910         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
10911         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
10912         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
10913         config/cris/t-elfmulti, config/crx/t-crx,
10914         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
10915         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
10916         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
10917         config/h8300/t-h8300, config/i386/athlon.md,
10918         config/i386/darwin-libgcc.10.4.ver,
10919         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
10920         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
10921         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
10922         config/i386/t-linux64, config/i386/t-nwld,
10923         config/i386/t-rtems-i386, config/i386/t-sol2-10,
10924         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
10925         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
10926         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
10927         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
10928         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
10929         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
10930         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
10931         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
10932         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
10933         config/m68k/t-uclinux, config/mcore/t-mcore,
10934         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
10935         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
10936         config/mips/crtn.asm, config/mips/irix-crti.asm,
10937         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
10938         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
10939         config/mips/mips-fixed.md, config/mips/sb1.md,
10940         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
10941         config/mips/t-iris6, config/mips/t-isa3264,
10942         config/mips/t-libgcc-mips16, config/mips/t-linux64,
10943         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
10944         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
10945         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
10946         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
10947         config/mn10300/t-linux, config/mn10300/t-mn10300,
10948         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
10949         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
10950         config/picochip/libgccExtras/clzsi2.asm,
10951         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
10952         config/rs6000/darwin-libgcc.10.4.ver,
10953         config/rs6000/darwin-libgcc.10.5.ver,
10954         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
10955         config/rs6000/t-aix43, config/rs6000/t-aix52,
10956         config/rs6000/t-darwin, config/rs6000/t-fprules,
10957         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
10958         config/rs6000/t-lynx, config/rs6000/t-netbsd,
10959         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
10960         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
10961         config/rs6000/t-rtems, config/rs6000/t-spe,
10962         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
10963         config/score/t-score-elf, config/sh/divcost-analysis,
10964         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
10965         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
10966         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
10967         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
10968         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
10969         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
10970         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
10971         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
10972         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
10973         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
10974         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
10975         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
10976         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
10977         limitx.h, version.c, xcoff.h: Add copyright and license notices.
10978         * config/h8300/genmova.sh: Include copyright and license notices
10979         in generated output.
10980         * config/h8300/mova.md: Regenerate.
10981         * doc/install.texi2html: Include word "Copyright" in copyright
10982         notice and use name "Free Software Foundation, Inc.".
10983         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10984         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10985         ChangeLog-2007, ChangeLog-2008: Correct dates.
10986
10987 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
10988
10989         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
10990         NE_EXPR operations as well.
10991         * c-parser.c (c_parser_condition): Do not set location information on
10992         the condition.
10993         (c_parser_conditional_expression): Likewise.
10994         (c_parser_binary_expression): Set location information on operators.
10995         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
10996         TRUTH_NOT_EXPR has been folded.
10997         * fold-const.c (fold_truth_not_expr): Copy location information from
10998         the incoming expression to the outgoing one.
10999         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
11000         recursive calls on the LHS of the operator but pass that of the
11001         operator to recursive calls on the RHS of the operator.  Set it
11002         on the COND_EXPR.
11003         (shortcut_cond_expr): Set the locus of the operator on the second
11004         COND_EXPR and that of the expression on the first in degenerate cases.
11005         Pass the locus of the expression to calls to shortcut_cond_r.
11006         Set the locus of the 'then' block on the associated jump, if any.
11007         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
11008         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
11009         expression to call to gimplify_boolean_expr.
11010
11011 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
11012
11013         * config.gcc: Add additional configuration for
11014         i686-w64-mingw* and x86_64-w64-mingw* triplet.
11015         * config/i386/mingw-w64.h: New mingw-w64 specific header.
11016         (CPP_SPEC): Redefine for allowing -municode option.
11017         (STARTFILE_SPEC): Likewise.
11018         * config/i386/t-mingw-w64: New.
11019         * config/i386/mingw-w64.opt: New.
11020         (municode): Add new target option.
11021         * doc/invoke.texi (municode): Add documentation for new option.
11022
11023 2009-04-21  Ian Lance Taylor  <iant@google.com>
11024
11025         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11026         Correct test for number of arguments.
11027         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
11028
11029 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
11030
11031         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
11032         argument of emit_library_call.
11033
11034 2009-04-21  Richard Guenther  <rguenther@suse.de>
11035
11036         PR middle-end/39829
11037         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
11038         inside VIEW_CONVERT_EXPRs.
11039
11040 2009-04-21  Martin Jambor  <mjambor@suse.cz>
11041
11042         * tree-switch-conversion.c (build_constructors): Split a long line.
11043         (constructor_contains_same_values_p): New function.
11044         (build_one_array): Create assigns of constants if possible, do not
11045         call mark_sym_for_renaming, call update_stmt.
11046         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
11047         make_rename_temp.  Do not call mark_symbols_for_renaming, call
11048         update_stmt.
11049         (gen_def_assigns): Do not call mark_symbols_for_renaming or
11050         find_new_referenced_vars, call update_stmt.
11051         (gen_inbound_check): Use create_tmp_var and create ssa names manually
11052         instead of calling make_rename_temp.  Do not call
11053         find_new_referenced_vars or mark_symbols_for_renaming, call
11054         update_stmt.
11055
11056 2009-04-21  Richard Guenther  <rguenther@suse.de>
11057
11058         PR tree-optimization/39827
11059         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
11060         (tree_ssa_phiprop): Pass the correct array size.
11061
11062 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
11063
11064         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
11065
11066 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11067
11068         PR 16202
11069         * c-typeck.c (lvalue_p): Move declaration ...
11070         * c-common.h (lvalue_p): ... to here.
11071         * c-common.c (candidate_equal_p): New.
11072         (add_tlist): Use it.
11073         (merge_tlist): Use it.
11074         (warn_for_collisions_1): Likewise.
11075         (warning_candidate_p): Accept more candidates.
11076         (verify_tree): A warning candidate can be an expression. Use
11077         candidate_equal_p.
11078
11079 2009-04-21  Ben Elliston  <bje@au.ibm.com>
11080
11081         PR target/5267
11082         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
11083         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
11084         options.  Remove -mcall-solaris documentation.
11085
11086 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11087
11088         PR c++/13358
11089         * doc/invoke.texi (-Wlong-long): Update description.
11090         * c-lex (interpret_integer): Only warn if there was no previous
11091         overflow and -Wlong-long is enabled.
11092         * c-decl.c (declspecs_add_type): Drop redundant flags.
11093         * c.opt (Wlong-long): Init to -1.
11094         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
11095         and front-end warn_long_long. Wlong-long only depends on other
11096         flags if it is uninitialized.
11097         * c-parser.c (disable_extension_diagnostics): warn_long_long is
11098         the same for CPP and FE.
11099         (restore_extension_diagnostics): Likewise.
11100
11101 2009-04-20  Ian Lance Taylor  <iant@google.com>
11102
11103         Fix enum conversions which are invalid in C++:
11104         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
11105         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
11106         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
11107         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
11108         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
11109         (dbxout_parms): Likewise.
11110         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
11111         (df_clear_flags): Likewise.
11112         * df-problems.c (df_rd_bb_local_compute_process_def): Change
11113         top_flag parameter to int.
11114         (df_chain_create_bb_process_use): Likewise.
11115         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
11116         Remove cast.
11117         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
11118         (df_ref_create_structure, df_def_record_1): Likewise.
11119         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
11120         (df_notes_rescan): Change 0 to VOIDmode in function call.
11121         (df_get_call_refs, df_insn_refs_collect): Likewise.
11122         (df_bb_regs_collect): Likewise.
11123         (df_entry_block_defs_collect): Likewise.
11124         (df_exit_block_uses_collect): Likewise.
11125         * df.h: Update declarations.
11126         * double-int.c (double_int_divmod): Add cast to enum type.
11127         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
11128         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
11129         (based_loc_descr): Likewise.
11130         (loc_descriptor_from_tree_1): Change first_op and second_op to
11131         enum dwarf_location_atom.  Add cast to enum type.
11132         * expmed.c (init_expmed): Change 0 to SET in function call.
11133         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
11134         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
11135         (do_store_flag): Likewise.
11136         * fixed-value.h (struct fixed_value): Change mode to enum
11137         machine_mode.
11138         * function.c (assign_parms): Change 0 to VOIDmode in function call.
11139         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
11140         function call.
11141         (insert_insn_decl, insert_decl, insert_state): Likewise.
11142         (automata_list_finish): Likewise.
11143         * genrecog.c (process_define_predicate): Add cast to enum type.
11144         * gensupport.c (init_predicate_table): Add cast to enum type.
11145         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
11146         function call.
11147         (gimple_build_call_1, gimple_build_label): Likewise.
11148         (gimple_build_goto, gimple_build_asm_1): Likewise.
11149         (gimple_build_switch_1, gimple_build_cdt): Likewise.
11150         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
11151         (enum fallback): Rename from enum fallback_t.
11152         (fallback_t): Typedef as int.
11153         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
11154         GSI_SAME_STMT in function call.
11155         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
11156         enum type.
11157         (setup_reg_class_relations): Likewise.
11158         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
11159         (setup_prohibited_class_mode_regs): Add cast to enum type.
11160         (setup_prohibited_mode_move_regs): Likewise.
11161         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
11162         (record_address_regs): Change i to enum reg_class.
11163         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
11164         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
11165         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
11166         (GET_MODE_2XWIDER_MODE): Likewise.
11167         (GET_CLASS_NARROWEST_MODE): Likewise.
11168         * omp-low.c (expand_omp_for): Add cast to enum type.
11169         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
11170         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
11171         * postreload.c (reload_cse_simplify_operands): Change rclass local
11172         to enum reg_class.
11173         * predict.c (combine_predictions_for_insn): Change best_predictor
11174         and predictor to enum br_predictor.
11175         (combine_predictions_for_bb): Likewise.
11176         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
11177         use SET_PREDICT_EXPR_OUTCOME.
11178         * real.c (real_arithmetic): Change icode to code in function call.
11179         * reginfo.c (init_move_cost): Add casts to enum type.
11180         (init_reg_sets_1, init_fake_stack_mems): Likewise.
11181         * regmove.c (regclass_compatible_p): Change class0 and class1 to
11182         enum reg_class.
11183         * reload.c (find_valid_class): Add casts to enum type.
11184         (push_reload): Change 0 to NO_REGS in function call.
11185         (find_reloads): Change this_alternative to array of enum
11186         reg_class.  Remove some now-unnecessary casts.
11187         (make_memloc): Change 0 to VOIDmode in function call.
11188         * reload1.c (reload): Change 0 to VOIDmode in function call.
11189         (eliminate_regs_1, elimination_effects): Likewise.
11190         (eliminate_regs_in_insn): Likewise.
11191         (emit_input_reload_insns): Add cast to enum type.
11192         (delete_output_reload): Change 0 to VOIDmode in function call.
11193         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
11194         to enum type in function call.
11195         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
11196         (SET_PREDICT_EXPR_OUTCOME): Define.
11197         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
11198         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
11199         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
11200         (dump_function): Likewise.
11201         * tree-dump.h: Update declarations.
11202         * tree-pass.h: Update declarations.
11203         * varasm.c (assemble_integer): Change mclass to enum mode_class.
11204         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
11205         enum type.
11206         (arm_rtx_costs_1): Correct parenthesization.
11207         (arm_rtx_costs): Add casts to enum type.
11208         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
11209         (vfp_emit_fstmd): Use add_rg_note.
11210         (emit_multi_reg_push, emit_sfm): Likewise.
11211         (thumb_set_frame_pointer): Likewise.
11212         (arm_expand_prologue): Likewise.
11213         (arm_regno_class): Change return type to enum reg_class.
11214         (thumb1_expand_prologue): Use add_reg_note.
11215         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
11216         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
11217         in function call.
11218         * config/arm/gentune.sh: Add cast to enum type.
11219         * config/arm/arm-tune.md: Rebuild.
11220         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
11221         (ix86_split_fp_branch, predict_jump): Likewise.
11222         (ix86_expand_multi_arg_builtin): Change sub_code from enum
11223         insn_code to enum rtx_code.
11224         (ix86_builtin_vectorized_function): Add cast to enum type.
11225         * config/i386/i386.md (truncdfsf2): Change slot to enum
11226         ix86_stack_slot.
11227         (truncxf<mode>2, isinf<mode>2): Likewise.
11228         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
11229         enum type.
11230         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
11231         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
11232         (insert_bundle_state): Change 1 to INSERT in function call.
11233         (ia64_add_bundle_selector_before): Likewise.
11234         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
11235         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
11236         (restore_stack_nonlocal): Likewise.
11237         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
11238         function call.
11239         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
11240         function call.
11241         (mips_rtx_costs): Likewise.
11242         (mips_override_options): Add casts to enum type.
11243         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
11244         in function call.
11245         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
11246         (store_reg, set_reg_plus_d): Likewise.
11247         (hppa_expand_prologue, hppa_profile_hook): Likewise.
11248         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11249         cast to enum type.
11250         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
11251         function call.
11252         (emit_unlikely_jump): Use add_reg_note.
11253         (rs6000_emit_allocate_stack): Likewise.
11254         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
11255         (output_toc): Change 1 to INSERT in function call.
11256         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
11257         (rs6000_initialize_trampoline): Likewise.
11258         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
11259         function call.
11260         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
11261         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
11262         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
11263         (save_gprs): Use add_reg_note.
11264         (s390_emit_prologue): Likewise.
11265         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
11266         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
11267         (sparc_fold_builtin): Add cast to enum type.
11268         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
11269         enum insn_code.
11270         (spu_expand_prologue): Use add_reg_note.
11271         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
11272
11273 2009-04-20  Ian Lance Taylor  <iant@google.com>
11274
11275         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
11276         (c_parser_postfix_expression_after_primary): Get VEC for list of
11277         arguments.  Get original types of arguments.  Call
11278         build_function_call_vec.
11279         (cached_expr_list_1, cached_expr_list_2): New static variables.
11280         (c_parser_expr_list): Change return type to VEC *.  Add
11281         p_orig_types parameter.  Change all callers.
11282         (c_parser_release_expr): New static function.
11283         (c_parser_vec_to_tree_list): New static function.
11284         * c-typeck.c (build_function_call): Rewrite to build a VEC and
11285         call build_function_call_vec.
11286         (build_function_call_vec): New function, based on old
11287         build_function_call.
11288         (convert_arguments): Remove nargs and argarray parameters.  Change
11289         values to a VEC.  Add origtypes parameter.
11290         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
11291         (convert_for_assignment): Add origtype parameter.  Change all
11292         callers.  If warn_cxx_compat, check for conversion to an enum
11293         type when calling a function.
11294         (store_init_value): Add origtype parameter.  Change all callers.
11295         (digest_init): Likewise.
11296         (struct init_node): Add origtype field.
11297         (add_pending_init): Add origtype parameter.  Change all callers.
11298         (output_init_element): Likewise.
11299         (output_pending_init_elements): Pass origtype from init_node to
11300         output_init_element.
11301         (process_init_element): Pass origtype from c_expr to
11302         output_init_element.
11303         (c_finish_return): Add origtype parameter.  Change all callers.
11304         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
11305         caller.
11306         (sync_resolve_params): Likewise.
11307         (sync_resolve_return): Change params to first_param.  Change caller.
11308         (resolve_overloaded_builtins): Change params to VEC *.  Change
11309         callers.  Save first parameter around call to build_function_call_vec.
11310         * c-decl.c (finish_decl): Add origtype parameter.  Change all
11311         callers.  Call build_function_call_vec rather than
11312         build_function_call for cleanup.
11313         * c-tree.h: Update declarations.
11314         * c-common.h: Update declarations.
11315         * stub-objc.c (objc_rewrite_function_call): Change parameter from
11316         params to first_param.
11317         * target.h (struct gcc_target): Change resolve_overloaded_builtin
11318         params parameter from tree to void *.
11319         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11320         Change arglist parameter to have type void *, and to be a pointer
11321         to a VEC.
11322         * config/rs6000/rs6000-protos.h
11323         (altivec_resolve_overloaded_builtin): Update declaration.
11324         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
11325         fnargs parameter to have type void *, and to be a pointer to a
11326         VEC.  Call build_function_call_vec instead of
11327         build_function_call.
11328         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
11329
11330 2009-04-20  Joey Ye  <joey.ye@intel.com>
11331             Xuepeng Guo  <xuepeng.guo@intel.com>
11332             H.J. Lu  <hongjiu.lu@intel.com>
11333
11334         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
11335
11336         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
11337         (IX86_LEA_PRIORITY): Likewise.
11338         (distance_non_agu_define): New function.
11339         (distance_agu_use): Likewise.
11340         (ix86_lea_for_add_ok): Likewise.
11341         (ix86_dep_by_shift_count): Likewise.
11342
11343         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
11344         should split for LEA.
11345
11346         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
11347         function.
11348         (ix86_dep_by_shift_count): Likewise.
11349
11350 2009-04-20  Richard Guenther  <rguenther@suse.de>
11351
11352         * expr.c (handled_component_p): Move ...
11353         * tree.h (handled_component_p): ... here.
11354         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
11355         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
11356         and REALPART_EXPR to be in one group.
11357
11358 2009-04-20  Richard Guenther  <rguenther@suse.de>
11359
11360         * basic-block.h (get_all_dominated_blocks): Declare.
11361         * dominance.c (get_all_dominated_blocks): New function.
11362         * tree-cfg.c (get_all_dominated_blocks): Remove.
11363         (remove_edge_and_dominated_blocks): Adjust.
11364         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
11365         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
11366         instead of recursing.
11367
11368 2009-04-20  Doug Kwan  <dougkwan@google.com>
11369
11370         * cgraph.h (cgraph_node_ptr): New type for vector functions.
11371         (struct cgraph_node_set_def): New type.
11372         (cgraph_node_set) New type. Also declare vector functions.
11373         (struct cgraph_node_set_element_def): New type.
11374         (cgraph_node_set_element): Ditto.
11375         (cgraph_node_set_iterator): New iterator type.
11376         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
11377         cgraph_node_set_remove, dump_cgraph_node_set,
11378         debug_cgraph_node_set): New prototypes.
11379         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
11380         cgraph_node_set_size): New inlines.
11381         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
11382         including cgraph.h.
11383         (struct ipa_opt_pass): Add struct cgraph_node_set_def
11384         argument to function 'write_summary'.
11385         * ipa.c: Include ggc.h.
11386         (hash_cgraph_node_set_element,
11387         eq_cgraph_node_set_element, cgraph_node_set_new,
11388         cgraph_node_set_add, cgraph_node_set_remove,
11389         cgraph_node_set_find, dump_cgraph_node_set,
11390         debug_cgraph_node_set): New functions.
11391         * Makefile.in (ipa.o): Add dependency on GGC_H.
11392
11393 2009-04-20  Ira Rosen  <irar@il.ibm.com>
11394
11395         PR tree-optimization/39675
11396         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
11397         check of the return code of vect_schedule_slp. Check that
11398         stmt_vec_info still exists for the statement, before checking its
11399         vectorization type.
11400
11401 2009-04-20  Michael Matz  <matz@suse.de>
11402
11403         * Makefile.in (generated_files): Take out $(simple_generated_c).
11404
11405 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
11406
11407         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
11408         (UINTPTR_TYPE):  Likewise.
11409
11410 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11411
11412         PR c/37481
11413         * c-typeck.c (digest_init): Check for initializing an array with a
11414         string literal.
11415
11416 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11417
11418         PR c/19771
11419         * c-semantics.c (pop_stmt_list): Propagate
11420         STATEMENT_LIST_HAS_LABEL to parent statement list.
11421
11422 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
11423
11424         * config/mips/mips.h (mips_tune_attr): New macro.
11425         * config/mips/mips.md (cpu): Use it.
11426
11427 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11428
11429         PR c/38243
11430         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
11431         declaring a tag.
11432
11433 2009-04-19  Diego Novillo  <dnovillo@google.com>
11434
11435         * toplev.c (compile_file): Move call to coverage_finish ...
11436         * cgraphunit.c (ipa_passes): ... here.
11437         Call cgraph_process_new_functions.
11438         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
11439         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
11440
11441 2009-04-19  Jan Hubicka  <jh@suse.cz>
11442
11443         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
11444         cfun.
11445         (dump_cgraph_node): Dump can throw external flag.
11446         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
11447
11448 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11449
11450         PR c/32061
11451         PR c++/36954
11452         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
11453         * common.opt (Wlogical-op): Move from here...
11454         * c.opt (Wlogical-op): ... to here.
11455         * c-typeck.c (parser_build_binary_op): Update call to
11456         warn_logical_operator.
11457         * c-opts.c (c_common_post_options): Enable warn_logical_op with
11458         extra_warnings.
11459         * c-common.c (warn_logical_op): Update.
11460         * c-common.h (warn_logical_op): Update declaration.
11461
11462 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11463
11464         * tree.c (protected_set_expr_location): Fix formatting.
11465
11466 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11467
11468         PR c/27676
11469         * c-typeck.c (readonly_warning): new.
11470         (build_unary_op, build_modify_expr): Use readonly_warning for
11471         storing into something readonly but not const-qualified.
11472
11473 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11474
11475         PR c/22367
11476         * c-typeck.c (build_unary_op): Check for taking address of
11477         expression of type void.
11478
11479 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11480
11481         PR c/35210
11482         * c-typeck.c (build_function_call): Check for calling a function
11483         with qualified void return types.  Call require_complete_type when
11484         generating a trap.
11485
11486 2009-04-18  Jan Hubicka  <jh@suse.cz>
11487
11488         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
11489         Set nothrow flag.
11490         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
11491         can_throw_external flag.
11492         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
11493         * ipa-pure-const.c (ignore_edge): New function.
11494         (propagate): Compute order for NOTHROW computation; set NOTHROWs
11495         only over can_throw_external edges.
11496         (local_pure_const): Add nothrow flag.
11497         * ipa-utils.c (searchc): Add ignore_edge callback.
11498         (ipa_utils_reduced_inorder): Add ignore_edge callback.
11499         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
11500         (set_nothrow_function_flags): Update cgraph.
11501         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
11502
11503 2009-04-18  Richard Guenther  <rguenther@suse.de>
11504
11505         PR middle-end/39804
11506         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
11507         (fold_stmt): ... this and ...
11508         (fold_stmt_inplace): ... this.
11509         (fold_stmt_1): Fold references in calls and asms.
11510         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
11511
11512 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11513
11514         * tree-vrp.c (ssa_name_nonzero_p): Remove.
11515         * tree.h: Remove the prototype for ssa_name_nonzero_p.
11516
11517 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11518
11519         * tree.c (function_args_count): Remove.
11520         * tree.h: Remove the prototype for function_args_count.
11521
11522 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11523
11524         * tree-iterator.c (expr_only): Remove.
11525         * tree.h: Remove the prototype for expr_only.
11526
11527 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11528
11529         * reginfo.c (cannot_change_mode_set_regs): Remove.
11530         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
11531
11532 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
11533
11534         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
11535         whether operands 0 and 1 overlaps.
11536
11537 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11538
11539         PR middle-end/36902
11540         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
11541         pointer. Use warning_at instead of warning.
11542         (search_for_addr_array): Likewise.
11543         (check_array_bounds): Likewise.
11544         (check_all_array_refs): Check that the incoming edge is not in the
11545         list of edges to be removed.
11546         (check_all_array_refs): Avoid the temporal pointer.
11547         (vrp_visit_cond_stmt): Fix typo.
11548         (simplify_switch_using_ranges): Handle the case where the switch
11549         index is an integer constant.
11550
11551 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
11552
11553         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
11554
11555 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11556
11557         * doc/extend.texi, doc/invoke.texi: Fix typos.
11558
11559 2009-04-17  Cary Coutant  <ccoutant@google.com>
11560
11561         * tree-flow-inline.h (get_lineno): Fix inverted test.
11562
11563 2009-04-17  Diego Novillo  <dnovillo@google.com>
11564
11565         * tree-ssa-pre.c (create_expression_by_pieces): Remove
11566         assertion for AVAIL_OUT.
11567
11568 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
11569
11570         PR target/38627
11571         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
11572         * config/sh/linux-atomic.asm: Likewise.
11573
11574 2009-04-17  Diego Novillo  <dnovillo@google.com>
11575
11576         * except.c (debug_eh_tree): New.
11577         (struct eh_region, struct eh_status): Move ...
11578         * except.h: ... here.
11579         (add_type_for_runtime): Declare extern.
11580         (lookup_type_for_runtime): Likewise.
11581         (debug_eh_tree): Declare.
11582         * Makefile.in (GTFILES): List except.h before except.c
11583
11584 2009-04-17  Diego Novillo  <dnovillo@google.com>
11585
11586         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
11587         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11588         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
11589         (find_vars_r): ... here.
11590         * tree-flow.h (find_referenced_vars_in): Declare.
11591         * tree-ssa-pre.c (create_expression_by_pieces): Assert
11592         that AVAIL_OUT exists for BLOCK.
11593         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
11594         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
11595         (tree-parloops.o): Likewise.
11596
11597 2009-04-17  Simon Baldwin  <simonb@google.com>
11598
11599         * toplev.c (default_tree_printer): Add handling for %E format.
11600
11601 2009-04-17  Diego Novillo  <dnovillo@google.com>
11602
11603         * tree-pretty-print.c (dump_generic_node): Add break after
11604         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
11605         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
11606         FUNCTION_TYPE together.  Call print_struct_decl when printing
11607         structures and TDF_SLIM is not given.
11608         (print_struct_decl): Fix logic for detecting recursion.
11609
11610 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11611
11612         PR 31567
11613         * gcc.c (create_at_file): New.
11614         (compile_input_file_p): New.
11615         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
11616         * main.c (main): Update call to toplev_main.
11617         * toplev.c (toplev_main): Change signature. Call expandargv.
11618         * toplev.h (toplev_main): Change signature.
11619
11620 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11621
11622         * dwarf2out.c (field_byte_offset): Use the type size as the field size
11623         if the latter is not constant.
11624
11625 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
11626
11627         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
11628
11629 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11630
11631         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
11632         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
11633
11634 2009-04-17  Richard Guenther  <rguenther@suse.de>
11635
11636         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11637         Handle component references view-converting an invariant address.
11638
11639 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
11640
11641         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
11642         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
11643         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
11644         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
11645         Use @deftypevr rather than @deftypevar.
11646
11647 2009-04-17  Richard Guenther  <rguenther@suse.de>
11648
11649         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
11650         (get_prop_source_stmt): Likewise.
11651         (can_propagate_from): Likewise.
11652
11653 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
11654
11655         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
11656         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
11657         (--with-multilib-list): Add default value.
11658         * configure: Regenerate.
11659         * Makefile.in (TM_ENDIAN_CONFIG): Define.
11660         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
11661         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
11662         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
11663         Don't add default cpu to multilib list unnecessarily, but do enable
11664         the relevant compiler option..
11665         Add support for --with-multilib-list=<blank> and
11666         --with-multilib-list=!<somelib> to supress unwanted multilibs.
11667         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
11668         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
11669         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
11670         TM_MULTILIB_CONFIG.
11671         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
11672         (MULTILIB_OSDIRNAMES): New variable.
11673         * config/sh/t-1e: Delete file.
11674         * config/sh/t-mlib-sh1: Delete file.
11675         * config/sh/t-mlib-sh2: Delete file.
11676         * config/sh/t-mlib-sh2a: Delete file.
11677         * config/sh/t-mlib-sh2a-nofpu: Delete file.
11678         * config/sh/t-mlib-sh2a-single: Delete file.
11679         * config/sh/t-mlib-sh2a-single-only: Delete file.
11680         * config/sh/t-mlib-sh2e: Delete file.
11681         * config/sh/t-mlib-sh3e: Delete file.
11682         * config/sh/t-mlib-sh4: Delete file.
11683         * config/sh/t-mlib-sh4-nofpu: Delete file.
11684         * config/sh/t-mlib-sh4-single: Delete file.
11685         * config/sh/t-mlib-sh4-single-only: Delete file.
11686         * config/sh/t-mlib-sh4a: Delete file.
11687         * config/sh/t-mlib-sh4a-nofpu: Delete file.
11688         * config/sh/t-mlib-sh4a-single: Delete file.
11689         * config/sh/t-mlib-sh4a-single-only: Delete file.
11690         * config/sh/t-mlib-sh4al: Delete file.
11691         * config/sh/t-mlib-sh5-32media: Delete file.
11692         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
11693         * config/sh/t-mlib-sh5-64media: Delete file.
11694         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
11695         * config/sh/t-mlib-sh5-compact: Delete file.
11696         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
11697         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
11698         * doc/install.texi (Options specification): Add
11699         --with-multilib-list and --with-endian.
11700
11701 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11702
11703         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
11704         REVISION_c.
11705         (OBJS-common): Add plugin-version.o.
11706         (plugin-version.o): New.
11707         * gcc-plugin.h (plugin_gcc_version): New.
11708         (plugin_default_version_check): New.
11709         (plugin_init_func, plugin_init): Add version argument.
11710         * plugin-version.c: New.
11711         * plugin.c (str_plugin_gcc_version_name): New.
11712         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
11713         pass it to the init function.
11714         (plugin_default_version_check): New.
11715
11716 2009-04-17  Richard Guenther  <rguenther@suse.de>
11717
11718         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
11719         for decl-vs-decl disambiguation.
11720
11721 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11722
11723         * config/s390/s390.h (s390_tune_attr): New macro definition.
11724         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
11725
11726 2009-04-17  Richard Guenther  <rguenther@suse.de>
11727
11728         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
11729         (fold_stmt_r): Likewise.
11730         (maybe_fold_reference): New function.
11731         (fold_gimple_assign): Handle cases fold_stmt_r did.
11732         (fold_stmt): Do not use fold_stmt_r.
11733         (fold_stmt_inplace): Likewise.
11734
11735 2009-04-17  Richard Guenther  <rguenther@suse.de>
11736
11737         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
11738         (record_equivalences_from_stmt): Remove useless checks and
11739         simplifications.
11740         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
11741         the type is already suitable.
11742
11743 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
11744
11745         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
11746
11747 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
11748
11749         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
11750         (CMPtype): Define as __gcc_CMPtype.
11751
11752 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
11753
11754         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
11755         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
11756
11757 2009-04-17  Richard Guenther  <rguenther@suse.de>
11758
11759         PR tree-optimization/39746
11760         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
11761         special-casing for builtins and static variable use/def.
11762         (call_may_clobber_ref_p_1): Likewise.
11763
11764 2009-04-16  Ian Lance Taylor  <iant@google.com>
11765
11766         * df.h: Include "timevar.h".
11767         (struct df_problem): Change tv_id field to timevar_id_t.
11768         * tree-pass.h: Include "timevar.h".
11769         (struct opt_pass): Change tv_id field to timevar_id_t.
11770         * timevar.h (timevar_id_t): Define TV_NONE.
11771         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
11772         TV_NONE rather than tv_id != 0.
11773         (execute_one_pass): Likewise.
11774         * Makefile.in (DF_H): Add $(TIMEVAR_H).
11775         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
11776         dependencies to $(TREE_PASS_H).
11777         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
11778         to TV_NONE.
11779         (pass_branch_target_load_optimize2): Likewise.
11780         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
11781         (pass_outof_cfg_layout_mode): Likewise.
11782         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
11783         (pass_rebuild_cgraph_edges): Likewise.
11784         (pass_remove_cgraph_callee_edges): Likewise.
11785         * df-core.c (pass_df_initialize_opt): Likewise.
11786         (pass_df_initialize_no_opt): Likewise.
11787         (pass_df_finish): Likewise.
11788         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
11789         * except.c (pass_set_nothrow_function_flags): Likewise.
11790         (pass_convert_to_eh_region_ranges): Likewise.
11791         * final.c (pass_compute_alignments): Likewise.
11792         * function.c (pass_instantiate_virtual_regs): Likewise.
11793         (pass_init_function): Likewise.
11794         (pass_leaf_regs): Likewise.
11795         (pass_match_asm_constraints): Likewise.
11796         * gimple-low.c (pass_lower_cf): Likewise.
11797         (pass_mark_used_blocks): Likewise.
11798         * init-regs.c (pass_initialize_regs): Likewise.
11799         * integrate.c (pass_initial_value_sets): Likewise.
11800         * ira.c (pass_ira): Likewise.
11801         * jump.c (pass_cleanup_barriers): Likewise.
11802         * omp-low.c (pass_expand_omp): Likewise.
11803         (pass_lower_omp): Likewise.
11804         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
11805         * recog.c (pass_split_all_insns): Likewise.
11806         (pass_split_after_reload): Likewise.
11807         (pass_split_before_regstack): Likewise.
11808         (pass_split_before_sched2): Likewise.
11809         (pass_split_for_shorten_branches): Likewise.
11810         * reginfo.c (pass_reginfo_init): Likewise.
11811         (pass_subregs_of_mode_init): Likewise.
11812         (pass_subregs_of_mode_finish): Likewise.
11813         * passes.c (pass_postreload): Likewise.
11814         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
11815         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
11816         (pass_warn_function_return): Likewise.
11817         (pass_warn_function_noreturn): Likewise.
11818         * tree-complex.c (pass_lower_complex): Likewise.
11819         (pass_lower_complex_O0): Likewise.
11820         * tree-if-conv.c (pass_if_conversion): Likewise.
11821         * tree-into-ssa.c (pass_build_ssa): Likewise.
11822         * tree-mudflap.c (pass_mudflap_1): Likewise.
11823         (pass_mudflap_2): Likewise.
11824         * tree-nomudflap.c (pass_mudflap_1): Likewise.
11825         (pass_mudflap_2): Likewise.
11826         * tree-nrv.c (pass_return_slot): Likewise.
11827         * tree-object-size.c (pass_object_sizes): Likewise.
11828         * tree-optimize.c (pass_all_optimizations): Likewise.
11829         (pass_early_local_passes): Likewise.
11830         (pass_all_early_optimizations): Likewise.
11831         (pass_cleanup_cfg): Likewise.
11832         (pass_cleanup_cfg_post_optimizing): Likewise.
11833         (pass_free_datastructures): Likewise.
11834         (pass_free_cfg_annotations): Likewise.
11835         (pass_fixup_cfg): Likewise.
11836         (pass_init_datastructures): Likewise.
11837         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
11838         (pass_late_warn_uninitialized): Likewise.
11839         (pass_update_address_taken): Likewise.
11840         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
11841         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
11842         (pass_cse_sincos): Likewise.
11843         (pass_convert_to_rsqrt): Likewise.
11844         * tree-ssa-structalias.c (pass_build_alias): Likewise.
11845         * tree-stdarg.c (pass_stdarg): Likewise.
11846         * tree-tailcall.c (pass_tail_recursion): Likewise.
11847         (pass_tail_calls): Likewise.
11848         * tree-vect-generic.c (pass_lower_vector): Likewise.
11849         (pass_lower_vector_ssa): Likewise.
11850         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
11851
11852 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
11853
11854         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
11855         XLR entry.
11856         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
11857         Handle -march=xlr.
11858         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
11859         logical and signext.
11860
11861 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11862
11863         PR target/39767
11864         * config/sh/predicates.md (arith_operand): Check if the operand
11865         of TRUNCATE is a REG.
11866
11867 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11868
11869         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
11870         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
11871
11872 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11873
11874         * tree-iterator.c (tsi_split_statement_list_after,
11875         tsi_split_statement_list_before): Remove.
11876         * tree-iterator.h: Remove the prototypes for
11877         tsi_split_statement_list_after and tsi_split_statement_list_before.
11878
11879 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11880
11881         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
11882         * tree-ssa-propagate.h: Remove the prototype for
11883         stmt_makes_single_load.
11884
11885 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11886
11887         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
11888         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
11889
11890 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11891
11892         * tree-iterator.c (EXPR_LAST_BODY): Remove.
11893
11894 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11895
11896         * except.c (eh_region_outer_p): Remove.
11897         * except.h: Remove the prototype for eh_region_outer_p.
11898
11899 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11900
11901         * function.c (current_function_assembler_name): Remove.
11902         * function.h: Remove the prototype for
11903         current_function_assembler_name.
11904
11905 2009-04-16  Ian Lance Taylor  <iant@google.com>
11906
11907         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
11908         (add_reg_note): Call alloc_reg_note.
11909         * rtl.h (alloc_reg_note): Declare.
11910         * combine.c (try_combine): Use alloc_reg_note.
11911         (recog_for_combine, move_deaths): Likewise.
11912         (distribute_notes): Use alloc_reg_note and add_reg_note.
11913         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
11914         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
11915         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
11916
11917 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
11918
11919         PR rtl-optimization/39762
11920         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
11921         ira_may_move_out_cost): Add comments about way of their usage.
11922         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
11923
11924         * ira-conflicts.c (process_regs_for_copy): Use function
11925         ira_get_register_move_cost instead of global
11926         ira_register_move_cost.
11927
11928         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
11929         color_pass, move_spill_restore, update_curr_costs): Ditto.
11930
11931         * ira-lives.c (process_single_reg_class_operands): Ditto.
11932
11933         * ira-emit.c (emit_move_list): Ditto.
11934
11935         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
11936         (record_reg_classes): Ditto.  Use functions
11937         ira_get_register_move_cost and ira_get_may_move_cost instead of
11938         global vars ira_register_move_cost, ira_may_move_out_cost and
11939         ira_may_move_in_cost.
11940         (record_address_regs): Don't call ira_init_register_move_cost.
11941         Use function ira_get_may_move_cost instead of global
11942         ira_may_move_in_cost.
11943         (process_bb_node_for_hard_reg_moves): Use function
11944         ira_get_register_move_cost instead of global ira_register_move_cost.
11945         (ira_costs): Don't call ira_init_register_move_cost.
11946
11947 2009-04-16  Richard Guenther  <rguenther@suse.de>
11948
11949         * tree-cfg.c (verify_gimple_assign_binary):
11950         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
11951         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
11952         (create_general_new_stmt): Note that this function is broken.
11953
11954 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11955
11956         * common.opt (fhelp): Add Var(help_flag).
11957         * gcc-plugin.h (plugin_info): Add help.
11958         * plugin.c (plugin_name_args): Add help.
11959         (register_plugin_info): Set plugin->help.
11960         (print_help_one_plugin): New.
11961         (print_plugins_help): New.
11962         * plugin.h (print_plugins_help): New.
11963         * toplev.c (toplev_main): Call print_plugins_help if needed.
11964
11965 2009-04-16  Richard Guenther  <rguenther@suse.de>
11966
11967         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
11968         (gimple_ior_addresses_taken_1): New function.
11969         (gimple_ior_addresses_taken): Likewise.
11970         * gimple.h (struct gimple_statement_with_ops_base): Remove
11971         addresses_taken member.
11972         (gimple_ior_addresses_taken): Declare.
11973         (gimple_addresses_taken, gimple_addresses_taken_ptr,
11974         gimple_set_addresses_taken): Remove.
11975         * ipa-reference.c (mark_address): New function.
11976         (scan_stmt_for_static_refs): Use it for marking addresses taken.
11977         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
11978         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
11979         (gimple_add_to_addresses_taken): Remove.
11980         (get_tmr_operands): Call mark_address_taken.
11981         (get_asm_expr_operands): Likewise.
11982         (get_expr_operands): Likewise.
11983         (build_ssa_operands): Do not clear the addresses_taken bitmap.
11984         (free_stmt_operands): Do not free it.
11985         * tree-ssa.c (delete_tree_ssa): Likewise.
11986         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
11987
11988 2009-04-16  Richard Guenther  <rguenther@suse.de>
11989
11990         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
11991         (walk_stmt_load_store_ops): Likewise.
11992         * gimple.c (get_base_loadstore): New function.
11993         (walk_stmt_load_store_addr_ops): Likewise.
11994         (walk_stmt_load_store_ops): Likewise.
11995         * ipa-pure-const.c (check_op): Simplify.
11996         (check_load, check_store): New functions.
11997         (check_stmt): Use walk_stmt_load_store_ops.
11998         * ipa-reference.c (mark_load): Adjust signature.
11999         (mark_store): Likewise.
12000         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
12001
12002 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
12003
12004         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
12005         (plugin_info): New.
12006         * opts.c (common_handle_option): Don't call print_version.
12007         * plugin.c (plugin_name_args): Add version.
12008         (register_plugin_info): New.
12009         (register_callback): Handle PLUGIN_INFO.
12010         (try_init_one_plugin): New.
12011         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
12012         if failed to init.
12013         (finalize_one_plugin): New.
12014         (finalize_plugins): New.
12015         (print_one_plugin): New.
12016         (print_plugins_versions): New.
12017         * plugin.h (print_plugins_versions): New.
12018         (finalize_plugins): New.
12019         * toplev.c (compile_file): Don't call initialize_plugins.
12020         (print_version): Call print_plugins_versions.
12021         (toplev_main): Call initialize_plugins. Print version if needed.
12022         Call finalize_plugins.
12023
12024 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
12025
12026         * common.opt (fversion): New.
12027         * gcc.c (print_version): New.
12028         (process_command): Don't print the version. Just set print_version.
12029         (main): Print version. Call subprocesses if print_version and
12030         verbose_flag are set.
12031         * opts.c (common_handle_option): Handle OPT_fversion.
12032
12033 2009-04-16  Richard Guenther  <rguenther@suse.de>
12034             Ira Rosen  <irar@il.ibm.com>
12035
12036         PR tree-optimization/39698
12037         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
12038         type of the reduction variable.  Only generate the def if
12039         it is needed.
12040
12041         * omp-low.c (expand_omp_for_generic): When converting to a pointer
12042         make sure to first convert to an integer of the same precision.
12043         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
12044         the type of the evolution correctly in computing the new
12045         induction variable base.
12046
12047 2009-04-16  Richard Guenther  <rguenther@suse.de>
12048
12049         PR middle-end/39625
12050         * tree-cfg.c (make_blocks): Split statements with to-be
12051         abnormal SSA names on the lhs.
12052
12053 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
12054
12055         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
12056         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
12057         * c-typeck.c (really_start_incremental_init): Likewise.
12058         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
12059         (TARGET_INITIALIZER): Remove it.
12060         * target.h (struct target): Remove vector_opaque_p.
12061         * tree.c (build_opaque_vector_type): New.
12062         * tree.h (TYPE_VECTOR_OPAQUE): New.
12063         (build_opaque_vector_type): Declare.
12064         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
12065         * config/rs6000/rs6000.c (build_opaque_vector_type,
12066         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
12067         (rs6000_init_builtins): Use build_opaque_vector_type for
12068         opaque_V4SI_type_node.
12069
12070 2009-04-15  Catherine Moore  <clm@codesourcery.com>
12071
12072         * debug.h (set_name):  Declare.
12073         * dwarf2out.c (dwarf2out_set_name): Declare.
12074         (dwarf2_debug_hooks): Add set_name.
12075         (find_AT_string): New.
12076         (add_AT_string): Call find_AT_string.
12077         (dwarf2out_set_name): New.
12078         * cp/decl.c (grokdeclarator): Call set_name.
12079         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
12080         * debug.c (do_nothing_debug_hooks):  Likewise.
12081         * dbxout.c (dbx_debug_hooks): Likewise.
12082         * sdbout.c (sdb_debug_hooks): Likewise.
12083
12084 2009-04-15  Michael Eager  <eager@eagercon.com>
12085
12086         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
12087         reg for single-precision FPU.
12088         * config/rs6000/rs6000.md (movsi_internal1): Only for
12089         !TARGET_SINGLE_FPU.
12090         (movsi_internal1_single): New. Add pattern to move SI values to/from
12091         single-precision FP regs.
12092
12093 2009-04-15  Richard Guenther  <rguenther@suse.de>
12094
12095         * omp-low.c (lower_rec_input_clauses): Build correct address
12096         expressions.
12097         (expand_omp_for_generic): Fix multiplication type.
12098         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
12099         (generate_memset_zero): Fix types.
12100         * tree-profile.c (prepare_instrumented_value): Correctly
12101         widen a pointer.
12102
12103 2009-04-15  Ian Lance Taylor  <iant@google.com>
12104
12105         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
12106         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
12107         for -Wall and for -Wc++-compat.
12108         (c_common_post_options): For C++, set warn_enum_compare if not
12109         already set.
12110         * c-tree.h (struct c_expr): Add field original_type.
12111         (build_external_ref): Update declaration.
12112         * c-parser.c (c_parser_braced_init): Set original_type.
12113         (c_parser_initelt): Likewise.
12114         (c_parser_expr_no_commas): Likewise.
12115         (c_parser_conditional_expression): Likewise.
12116         (c_parser_cast_expression): Likewise.
12117         (c_parser_unary_expression): Likewise.  Pull setting of
12118         original_code to top of function.
12119         (c_parser_sizeof_expression): Set original_type.
12120         (c_parser_alignof_expression): Likewise.
12121         (c_parser_postfix_expression): Likewise.  Pull setting of
12122         original_code to top of function.
12123         (c_parser_postfix_expression_after_paren_type): Set original_type.
12124         (c_parser_postfix_expression_after_primary): Likewise.
12125         (c_parser_expression): Likewise.
12126         * c-typeck.c (build_external_ref): Add type parameter.  Change all
12127         callers.
12128         (c_expr_sizeof_expr): Set original_type field.
12129         (parser_build_unary_op): Likewise.
12130         (parser_build_binary_op): Likewise.  Optionally warn about
12131         comparisons of enums of different types.
12132         (digest_init): Set original_type field.
12133         (really_start_incremental_init): Likewise.
12134         (push_init_level, pop_init_level): Likewise.
12135         * doc/invoke.texi (Warning Options): -Wenum-compare now
12136         supported in C.
12137
12138 2009-04-15  Richard Guenther  <rguenther@suse.de>
12139
12140         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
12141         out a necessary conversion.
12142         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
12143         names we didn't value number.
12144         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
12145
12146 2009-04-15  Richard Guenther  <rguenther@suse.de>
12147
12148         PR tree-optimization/39764
12149         * tree-ssa-ccp.c (get_value): Canonicalize value with
12150         canonicalize_float_value.
12151
12152 2009-04-15  Jan Hubicka  <jh@suse.cz>
12153
12154         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
12155         Wrong version of patch.
12156
12157 2009-04-15  Jan Hubicka  <jh@suse.cz>
12158
12159         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
12160
12161 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
12162
12163         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
12164         our distinct integral and vector types.
12165
12166 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
12167
12168         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
12169         * init.c (build_vtbl_address): Remove call to assemble_external.
12170
12171 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
12172
12173         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
12174         output for other floating point modes.
12175
12176 2009-04-14  Diego Novillo  <dnovillo@google.com>
12177
12178         * diagnostic.c (diagnostic_report_diagnostic): Do not
12179         warn about loaded plugins for DK_ERROR and DK_WARNING.
12180         * c-decl.c (declspecs_add_type): Move call to
12181         invoke_plugin_callbacks ...
12182         * c-parser.c (c_parser_declspecs): ... here.
12183         * plugin.c (dump_active_plugins): Tidy output.
12184
12185 2009-04-14  Diego Novillo  <dnovillo@google.com>
12186             Le-Chun Wu  <lcwu@google.com>
12187
12188         * configure.ac: Add --enable-plugin support.
12189         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
12190         * Makefile.in (PLUGIN_H): Define.
12191         Export ENABLE_PLUGIN and GMPINC to site.exp.
12192         Add PLUGINLIBS to link command.
12193         Add/modify dependencies for plugin.o and files including plugin.h.
12194         (plugin.o): New.
12195         * config.in: Regenerate.
12196
12197         * opts.c (common_handle_option): Handle OPT_fplugin_ and
12198         OPT_fplugin_arg_.
12199
12200 2009-04-14  Le-Chun Wu  <lcwu@google.com>
12201
12202         * tree-pass.h (register_one_dump_file): Add a prototype for
12203         register_one_dump_file.
12204         * toplev.c (compile_file): Call initialize_plugins.
12205         (do_compile): Call invoke_plugin_callbacks.
12206         (toplev_main): Call invoke_plugin_callbacks.
12207         * common.opt: Add -fplugin= and -fplugin-arg-.
12208         * gcc-plugin.h: New public header file for plugins to include.
12209         * plugin.c: New source file.
12210         * plugin.h: New internal header file.
12211         * passes.c (register_one_dump_file): Make it external.
12212
12213         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
12214
12215 2009-04-14  Diego Novillo  <dnovillo@google.com>
12216
12217         * doc/plugins.texi: New.
12218         * doc/gccint.texi: Add reference to Plugins chapter.
12219         * doc/invoke.texi: Document -fplugin and -fplugin-arg
12220         * diagnostic.c (diagnostic_report_diagnostic): Warn about
12221         loaded plugins, if any.
12222         * timevar.def (TV_PLUGIN_INIT): Define.
12223         (TV_PLUGIN_RUN): Define.
12224         * plugin.c: Include timevar.h
12225         (plugins_active_p): New.
12226         (dump_active_plugins): New.
12227         (debug_active_plugins): New.
12228
12229 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
12230
12231         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
12232         library paths.
12233         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
12234
12235 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
12236
12237         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
12238         the same as a minus without a shift.
12239
12240 2009-04-14  Nick Clifton  <nickc@redhat.com>
12241
12242         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
12243         comparisons with small integers will always produce a short
12244         branch.
12245
12246 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
12247
12248         Merge:
12249         2008-12-19  Diego Novillo  <dnovillo@google.com>
12250
12251         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
12252
12253 2009-04-14  Richard Guenther  <rguenther@suse.de>
12254
12255         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
12256         verification.
12257         (verify_gimple_assign_binary): Likewise.  Handle shifts and
12258         rotates correctly.
12259         (verify_gimple_phi): Print the mismatched argument position.
12260         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12261         Fix types.
12262         (vect_update_init_of_dr): Likewise.
12263         * matrix-reorg.c (transform_access_sites): Do what the
12264         comment suggests.
12265         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
12266
12267 2009-04-13  Michael Eager  <eager@eagercon.com>
12268
12269         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
12270         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
12271         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
12272         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
12273         remove duplicate config
12274
12275 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
12276
12277         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
12278         file_name:line_number type locator of the call site.
12279
12280 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
12281
12282         * genautomata.c: Put blank after comma.
12283         (automaton_decls): New.
12284         (struct unit_usage): Add comments to member next.
12285         (store_alt_unit_usage): Keep the list ordered.
12286         (unit_present_on_list_p, equal_alternatives_p): New.
12287         (check_regexp_units_distribution): Check units distribution
12288         correctness correctly.
12289         (main): Don't write automata if error is found.  Return correct
12290         exit code.
12291
12292         * config/m68k/cf.md (cfv4_ds): Remove.
12293         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
12294         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
12295
12296         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
12297         power4-load-ext, power4-store, power4-store-update,
12298         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
12299         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
12300         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
12301         power4-sqrt, power4-isync): Modify reservation to make correct
12302         unit distribution to automata.
12303
12304         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
12305         power5-store-update, power5-two, power5-three, power5-lmul,
12306         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
12307
12308 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
12309
12310         * except.c (pass_set_nothrow_function_flags): Set name and add
12311         TODO_dump_func.
12312         (set_nothrow_function_flags): Mention in the dump file when
12313         changing a function to nothrow.
12314
12315 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
12316
12317         PR/39066
12318         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
12319         instead of unsigned long.
12320
12321 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12322
12323         * config/arm/arm.c (return_used_this_function): Remove.
12324         (arm_output_function_prologue): Remove use of
12325         return_used_this_function.
12326         (output_return_instruction): Replace use of
12327         return_used_this_function
12328         by cfun->machine->return_used_this_function.
12329         (arm_output_epilogue): Likewise.
12330         (arm_output_function_epilogue): Likewise.
12331         (thumb_unexpanded_epilogue): Likewise.
12332         * config/arm/arm.h (struct machine_function):
12333         New member return_used_this_function.
12334
12335 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
12336
12337         * doc/install.texi: Correct description of default directory for
12338         --with-gxx-include-dir.
12339
12340 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
12341
12342         * fold-const.c (build_range_check): Properly deal with enumeral and
12343         boolean base types.
12344
12345 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
12346
12347         * doc/invoke.texi (max_gcse_passes): Remove documentation.
12348         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
12349         * params.h (MAX_GCSE_PASSES): Remove.
12350         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
12351         in sequence.  Remove ability to run multiple passes.
12352         (bypass_jumps): Report run as third CPROP pass.
12353
12354 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
12355
12356         PR middle-end/39651
12357         * except.c (can_throw_external): Look at each insn in a SEQUENCE
12358         when deciding whether the whole SEQUENCE can throw.
12359
12360 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
12361
12362         PR target/39740
12363         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
12364         offseted label references.
12365
12366 2009-04-11  Jan Hubicka  <jh@suse.cz>
12367
12368         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
12369
12370 2009-04-11  Richard Guenther  <rguenther@suse.de>
12371
12372         PR middle-end/39732
12373         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
12374         return variables as TREE_ADDRESSABLE.
12375
12376 2009-04-11  Richard Guenther  <rguenther@suse.de>
12377
12378         PR tree-optimization/39713
12379         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
12380         reference trees have SSA_NAME operands.
12381
12382 2009-04-11  Richard Guenther  <rguenther@suse.de>
12383
12384         PR c/39712
12385         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
12386         address expressions.
12387
12388 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
12389
12390         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
12391         match changes in Cygwin 1.7
12392         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
12393         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
12394
12395 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12396
12397         PR tree-optimization/39701
12398         * doc/invoke.texi (Optimization Options): Document change in
12399         meaning and initialization of -fdelete-null-pointer-checks.
12400
12401 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12402
12403         PR middle-end/39701
12404         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
12405
12406         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
12407         here.
12408
12409         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
12410
12411 2009-04-10  Chao-ying Fu  <fu@mips.com>
12412
12413         * doc/tm.texi (Instruction Output): Document
12414         TARGET_ASM_FINAL_POSTSCAN_INSN.
12415         * target.h (final_postscan_insn): New field in asm_out.
12416         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12417         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
12418         * final.c (final_scan_insn): Call
12419         targetm.asm_out.final_postscan_insn after outputting
12420         an asm macro and a normal instruction.
12421
12422         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
12423         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
12424         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
12425         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
12426         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12427
12428 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12429
12430         PR middle-end/39701
12431         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
12432         variables as non-NULL even with -fdelete-null-pointer-checks.
12433
12434 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12435
12436         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
12437
12438 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
12439
12440         PR target/39678
12441         * config/i386/i386.c (classify_argument): Handle SCmode with
12442         (bit_offset % 64) != 0.
12443
12444 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
12445
12446         * doc/invoke.texi (Optimize Options): Add cross-reference to
12447         -Q --help=optimizers examples.
12448
12449 2009-04-10  Ben Elliston  <bje@au.ibm.com>
12450
12451         PR target/36800
12452         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
12453         regalign for the reg == fpr and TDmode case.
12454
12455 2009-04-09  David Ayers  <ayers@fsfe.org>
12456
12457         PR objc/29200
12458         * objc/objc-act.c (warn_with_method): Remove helper function.
12459         (check_duplicates): Call warning and inform directly.
12460         (really_start_method): Likewise.
12461
12462 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12463
12464         * expmed.c (expand_divmod): Always use a comparison for a division
12465         by a large unsigned integer.
12466
12467         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
12468         for things others than variables or functions as nonzero.
12469
12470 2009-04-09  Nick Clifton  <nickc@redhat.com>
12471
12472         * unwind-compat.c: Change copyright header to refer to version
12473         3 of the GNU General Public License with version 3.1 of the
12474         GCC Runtime Library Exception and to point readers at the
12475         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
12476         * config/alpha/crtfastmath.c: Likewise.
12477         * config/alpha/linux-unwind.h: Likewise.
12478         * config/alpha/qrnnd.asm: Likewise.
12479         * config/alpha/vms-crt0-64.c: Likewise.
12480         * config/alpha/vms-crt0.c: Likewise.
12481         * config/alpha/vms-dwarf2.asm: Likewise.
12482         * config/alpha/vms-dwarf2eh.asm: Likewise.
12483         * config/alpha/vms-psxcrt0-64.c: Likewise.
12484         * config/alpha/vms-psxcrt0.c: Likewise.
12485         * config/alpha/vms_tramp.asm: Likewise.
12486         * config/arc/initfini.c: Likewise.
12487         * config/arc/lib1funcs.asm: Likewise.
12488         * config/arm/bpabi-v6m.S: Likewise.
12489         * config/arm/bpabi.S: Likewise.
12490         * config/arm/bpabi.c: Likewise.
12491         * config/arm/crti.asm: Likewise.
12492         * config/arm/crtn.asm: Likewise.
12493         * config/arm/ieee754-df.S: Likewise.
12494         * config/arm/ieee754-sf.S: Likewise.
12495         * config/arm/lib1funcs.asm: Likewise.
12496         * config/arm/libunwind.S: Likewise.
12497         * config/arm/linux-atomic.c: Likewise.
12498         * config/arm/mmintrin.h: Likewise.
12499         * config/arm/pr-support.c: Likewise.
12500         * config/arm/unaligned-funcs.c: Likewise.
12501         * config/arm/unwind-arm.c: Likewise.
12502         * config/arm/unwind-arm.h: Likewise.
12503         * config/avr/libgcc.S: Likewise.
12504         * config/bfin/crti.s: Likewise.
12505         * config/bfin/crtlibid.s: Likewise.
12506         * config/bfin/crtn.s: Likewise.
12507         * config/bfin/lib1funcs.asm: Likewise.
12508         * config/bfin/linux-unwind.h: Likewise.
12509         * config/cris/arit.c: Likewise.
12510         * config/cris/cris_abi_symbol.c: Likewise.
12511         * config/darwin-64.c: Likewise.
12512         * config/darwin-crt2.c: Likewise.
12513         * config/darwin-crt3.c: Likewise.
12514         * config/darwin.h: Likewise.
12515         * config/dbxelf.h: Likewise.
12516         * config/dfp-bit.c: Likewise.
12517         * config/dfp-bit.h: Likewise.
12518         * config/elfos.h: Likewise.
12519         * config/fixed-bit.c: Likewise.
12520         * config/fixed-bit.h: Likewise.
12521         * config/fp-bit.c: Likewise.
12522         * config/fp-bit.h: Likewise.
12523         * config/fr30/crti.asm: Likewise.
12524         * config/fr30/crtn.asm: Likewise.
12525         * config/fr30/lib1funcs.asm: Likewise.
12526         * config/freebsd-spec.h: Likewise.
12527         * config/frv/cmovd.c: Likewise.
12528         * config/frv/cmovh.c: Likewise.
12529         * config/frv/cmovw.c: Likewise.
12530         * config/frv/frvbegin.c: Likewise.
12531         * config/frv/frvend.c: Likewise.
12532         * config/frv/lib1funcs.asm: Likewise.
12533         * config/glibc-stdint.h: Likewise.
12534         * config/h8300/clzhi2.c: Likewise.
12535         * config/h8300/crti.asm: Likewise.
12536         * config/h8300/crtn.asm: Likewise.
12537         * config/h8300/ctzhi2.c: Likewise.
12538         * config/h8300/fixunssfsi.c: Likewise.
12539         * config/h8300/lib1funcs.asm: Likewise.
12540         * config/h8300/parityhi2.c: Likewise.
12541         * config/h8300/popcounthi2.c: Likewise.
12542         * config/i386/ammintrin.h: Likewise.
12543         * config/i386/att.h: Likewise.
12544         * config/i386/avxintrin.h: Likewise.
12545         * config/i386/biarch64.h: Likewise.
12546         * config/i386/bmmintrin.h: Likewise.
12547         * config/i386/cpuid.h: Likewise.
12548         * config/i386/cross-stdarg.h: Likewise.
12549         * config/i386/crtfastmath.c: Likewise.
12550         * config/i386/crtprec.c: Likewise.
12551         * config/i386/cygming-crtbegin.c: Likewise.
12552         * config/i386/cygming-crtend.c: Likewise.
12553         * config/i386/cygwin.asm: Likewise.
12554         * config/i386/emmintrin.h: Likewise.
12555         * config/i386/gmm_malloc.h: Likewise.
12556         * config/i386/gthr-win32.c: Likewise.
12557         * config/i386/i386.h: Likewise.
12558         * config/i386/immintrin.h: Likewise.
12559         * config/i386/linux-unwind.h: Likewise.
12560         * config/i386/linux64.h: Likewise.
12561         * config/i386/mm3dnow.h: Likewise.
12562         * config/i386/mmintrin-common.h: Likewise.
12563         * config/i386/mmintrin.h: Likewise.
12564         * config/i386/nmmintrin.h: Likewise.
12565         * config/i386/pmm_malloc.h: Likewise.
12566         * config/i386/pmmintrin.h: Likewise.
12567         * config/i386/smmintrin.h: Likewise.
12568         * config/i386/sol2-c1.asm: Likewise.
12569         * config/i386/sol2-ci.asm: Likewise.
12570         * config/i386/sol2-cn.asm: Likewise.
12571         * config/i386/sol2-gc1.asm: Likewise.
12572         * config/i386/tmmintrin.h: Likewise.
12573         * config/i386/unix.h: Likewise.
12574         * config/i386/w32-unwind.h: Likewise.
12575         * config/i386/wmmintrin.h: Likewise.
12576         * config/i386/x86-64.h: Likewise.
12577         * config/i386/x86intrin.h: Likewise.
12578         * config/i386/xmmintrin.h: Likewise.
12579         * config/ia64/crtbegin.asm: Likewise.
12580         * config/ia64/crtend.asm: Likewise.
12581         * config/ia64/crtfastmath.c: Likewise.
12582         * config/ia64/crti.asm: Likewise.
12583         * config/ia64/crtn.asm: Likewise.
12584         * config/ia64/fde-glibc.c: Likewise.
12585         * config/ia64/lib1funcs.asm: Likewise.
12586         * config/ia64/linux-unwind.h: Likewise.
12587         * config/ia64/quadlib.c: Likewise.
12588         * config/ia64/unwind-ia64.c: Likewise.
12589         * config/linux.h: Likewise.
12590         * config/m32c/m32c-lib1.S: Likewise.
12591         * config/m32c/m32c-lib2-trapv.c: Likewise.
12592         * config/m32c/m32c-lib2.c: Likewise.
12593         * config/m32r/initfini.c: Likewise.
12594         * config/m68hc11/larith.asm: Likewise.
12595         * config/m68hc11/m68hc11-crt0.S: Likewise.
12596         * config/m68k/cf.md: Likewise.
12597         * config/m68k/crti.s: Likewise.
12598         * config/m68k/crtn.s: Likewise.
12599         * config/m68k/lb1sf68.asm: Likewise.
12600         * config/m68k/linux-unwind.h: Likewise.
12601         * config/mcore/crti.asm: Likewise.
12602         * config/mcore/crtn.asm: Likewise.
12603         * config/mcore/lib1.asm: Likewise.
12604         * config/mips/linux-unwind.h: Likewise.
12605         * config/mips/loongson.h: Likewise.
12606         * config/mips/mips16.S: Likewise.
12607         * config/mmix/crti.asm: Likewise.
12608         * config/mmix/crtn.asm: Likewise.
12609         * config/pa/fptr.c: Likewise.
12610         * config/pa/hpux-unwind.h: Likewise.
12611         * config/pa/lib2funcs.asm: Likewise.
12612         * config/pa/linux-atomic.c: Likewise.
12613         * config/pa/linux-unwind.h: Likewise.
12614         * config/pa/milli64.S: Likewise.
12615         * config/pa/quadlib.c: Likewise.
12616         * config/pa/stublib.c: Likewise.
12617         * config/picochip/libgccExtras/adddi3.asm: Likewise.
12618         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
12619         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
12620         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
12621         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
12622         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
12623         * config/picochip/libgccExtras/divmod15.asm: Likewise.
12624         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
12625         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
12626         * config/picochip/libgccExtras/longjmp.asm: Likewise.
12627         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
12628         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
12629         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
12630         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
12631         * config/picochip/libgccExtras/setjmp.asm: Likewise.
12632         * config/picochip/libgccExtras/subdi3.asm: Likewise.
12633         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
12634         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
12635         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
12636         * config/rs6000/750cl.h: Likewise.
12637         * config/rs6000/altivec.h: Likewise.
12638         * config/rs6000/biarch64.h: Likewise.
12639         * config/rs6000/crtresfpr.asm: Likewise.
12640         * config/rs6000/crtresgpr.asm: Likewise.
12641         * config/rs6000/crtresxfpr.asm: Likewise.
12642         * config/rs6000/crtresxgpr.asm: Likewise.
12643         * config/rs6000/crtsavfpr.asm: Likewise.
12644         * config/rs6000/crtsavgpr.asm: Likewise.
12645         * config/rs6000/darwin-asm.h: Likewise.
12646         * config/rs6000/darwin-fallback.c: Likewise.
12647         * config/rs6000/darwin-fpsave.asm: Likewise.
12648         * config/rs6000/darwin-ldouble.c: Likewise.
12649         * config/rs6000/darwin-tramp.asm: Likewise.
12650         * config/rs6000/darwin-unwind.h: Likewise.
12651         * config/rs6000/darwin-vecsave.asm: Likewise.
12652         * config/rs6000/darwin-world.asm: Likewise.
12653         * config/rs6000/e500crtres32gpr.asm: Likewise.
12654         * config/rs6000/e500crtres64gpr.asm: Likewise.
12655         * config/rs6000/e500crtres64gprctr.asm: Likewise.
12656         * config/rs6000/e500crtrest32gpr.asm: Likewise.
12657         * config/rs6000/e500crtrest64gpr.asm: Likewise.
12658         * config/rs6000/e500crtresx32gpr.asm: Likewise.
12659         * config/rs6000/e500crtresx64gpr.asm: Likewise.
12660         * config/rs6000/e500crtsav32gpr.asm: Likewise.
12661         * config/rs6000/e500crtsav64gpr.asm: Likewise.
12662         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
12663         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
12664         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
12665         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
12666         * config/rs6000/eabi-ci.asm: Likewise.
12667         * config/rs6000/eabi-cn.asm: Likewise.
12668         * config/rs6000/eabi.asm: Likewise.
12669         * config/rs6000/linux-unwind.h: Likewise.
12670         * config/rs6000/linux64.h: Likewise.
12671         * config/rs6000/paired.h: Likewise.
12672         * config/rs6000/paired.md: Likewise.
12673         * config/rs6000/ppc64-fp.c: Likewise.
12674         * config/rs6000/ppu_intrinsics.h: Likewise.
12675         * config/rs6000/rs6000.h: Likewise.
12676         * config/rs6000/si2vmx.h: Likewise.
12677         * config/rs6000/sol-ci.asm: Likewise.
12678         * config/rs6000/sol-cn.asm: Likewise.
12679         * config/rs6000/spe.h: Likewise.
12680         * config/rs6000/spu2vmx.h: Likewise.
12681         * config/rs6000/sysv4.h: Likewise.
12682         * config/rs6000/tramp.asm: Likewise.
12683         * config/rs6000/vec_types.h: Likewise.
12684         * config/s390/linux-unwind.h: Likewise.
12685         * config/s390/tpf-unwind.h: Likewise.
12686         * config/score/crti.asm: Likewise.
12687         * config/score/crtn.asm: Likewise.
12688         * config/sh/crt1.asm: Likewise.
12689         * config/sh/crti.asm: Likewise.
12690         * config/sh/crtn.asm: Likewise.
12691         * config/sh/divtab-sh4-300.c: Likewise.
12692         * config/sh/divtab-sh4.c: Likewise.
12693         * config/sh/divtab.c: Likewise.
12694         * config/sh/lib1funcs-4-300.asm: Likewise.
12695         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
12696         * config/sh/lib1funcs.asm: Likewise.
12697         * config/sh/lib1funcs.h: Likewise.
12698         * config/sh/linux-atomic.asm: Likewise.
12699         * config/sh/linux-unwind.h: Likewise.
12700         * config/sh/shmedia.h: Likewise.
12701         * config/sh/sshmedia.h: Likewise.
12702         * config/sh/ushmedia.h: Likewise.
12703         * config/sparc/crtfastmath.c: Likewise.
12704         * config/sparc/linux-unwind.h: Likewise.
12705         * config/sparc/sol2-c1.asm: Likewise.
12706         * config/sparc/sol2-ci.asm: Likewise.
12707         * config/sparc/sol2-cn.asm: Likewise.
12708         * config/spu/divmodti4.c: Likewise.
12709         * config/spu/divv2df3.c: Likewise.
12710         * config/spu/float_disf.c: Likewise.
12711         * config/spu/float_unsdidf.c: Likewise.
12712         * config/spu/float_unsdisf.c: Likewise.
12713         * config/spu/float_unssidf.c: Likewise.
12714         * config/spu/mfc_multi_tag_release.c: Likewise.
12715         * config/spu/mfc_multi_tag_reserve.c: Likewise.
12716         * config/spu/mfc_tag_release.c: Likewise.
12717         * config/spu/mfc_tag_reserve.c: Likewise.
12718         * config/spu/mfc_tag_table.c: Likewise.
12719         * config/spu/multi3.c: Likewise.
12720         * config/spu/spu_internals.h: Likewise.
12721         * config/spu/spu_intrinsics.h: Likewise.
12722         * config/spu/spu_mfcio.h: Likewise.
12723         * config/spu/vec_types.h: Likewise.
12724         * config/spu/vmx2spu.h: Likewise.
12725         * config/stormy16/stormy16-lib2.c: Likewise.
12726         * config/svr4.h: Likewise.
12727         * config/sync.c: Likewise.
12728         * config/v850/lib1funcs.asm: Likewise.
12729         * config/vxlib-tls.c: Likewise.
12730         * config/vxlib.c: Likewise.
12731         * config/vxworks-dummy.h: Likewise.
12732         * config/xtensa/crti.asm: Likewise.
12733         * config/xtensa/crtn.asm: Likewise.
12734         * config/xtensa/ieee754-df.S: Likewise.
12735         * config/xtensa/ieee754-sf.S: Likewise.
12736         * config/xtensa/lib1funcs.asm: Likewise.
12737         * config/xtensa/lib2funcs.S: Likewise.
12738         * config/xtensa/linux-unwind.h: Likewise.
12739         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
12740         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
12741         * coretypes.h: Likewise.
12742         * crtstuff.c: Likewise.
12743         * defaults.h: Likewise.
12744         * dwarf2.h: Likewise.
12745         * emutls.c: Likewise.
12746         * gbl-ctors.h: Likewise.
12747         * gcov-io.h: Likewise.
12748         * ginclude/float.h: Likewise.
12749         * ginclude/iso646.h: Likewise.
12750         * ginclude/stdarg.h: Likewise.
12751         * ginclude/stdbool.h: Likewise.
12752         * ginclude/stddef.h: Likewise.
12753         * ginclude/stdfix.h: Likewise.
12754         * ginclude/stdint-gcc.h: Likewise.
12755         * ginclude/tgmath.h: Likewise.
12756         * gthr-aix.h: Likewise.
12757         * gthr-dce.h: Likewise.
12758         * gthr-gnat.c: Likewise.
12759         * gthr-gnat.h: Likewise.
12760         * gthr-lynx.h: Likewise.
12761         * gthr-mipssde.h: Likewise.
12762         * gthr-nks.h: Likewise.
12763         * gthr-posix.c: Likewise.
12764         * gthr-posix.h: Likewise.
12765         * gthr-posix95.h: Likewise.
12766         * gthr-rtems.h: Likewise.
12767         * gthr-single.h: Likewise.
12768         * gthr-solaris.h: Likewise.
12769         * gthr-tpf.h: Likewise.
12770         * gthr-vxworks.h: Likewise.
12771         * gthr-win32.h: Likewise.
12772         * gthr.h: Likewise.
12773         * libgcc2.c: Likewise.
12774         * libgcc2.h: Likewise.
12775         * libgcov.c: Likewise.
12776         * tsystem.h: Likewise.
12777         * typeclass.h: Likewise.
12778         * unwind-c.c: Likewise.
12779         * unwind-compat.h: Likewise.
12780         * unwind-dw2-fde-compat.c: Likewise.
12781         * unwind-dw2-fde-darwin.c: Likewise.
12782         * unwind-dw2-fde-glibc.c: Likewise.
12783         * unwind-dw2-fde.c: Likewise.
12784         * unwind-dw2-fde.h: Likewise.
12785         * unwind-dw2.c: Likewise.
12786         * unwind-dw2.h: Likewise.
12787         * unwind-generic.h: Likewise.
12788         * unwind-pe.h: Likewise.
12789         * unwind-sjlj.c: Likewise.
12790         * unwind.inc: Likewise.
12791         * config/arm/neon-gen.ml: Change generated copyright header to
12792         refer to version 3 of the GNU General Public License with
12793         version 3.1 of the GCC Runtime Library Exception and to point
12794         readers at the COPYING3 and COPYING3.RUNTIME files and the
12795         FSF's license web page.
12796         * config/arm/arm_neon.h: Regenerate.
12797
12798 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
12799
12800         * config/cris/cris.md: Change copyright header to refer to version
12801         3 of the GNU General Public License.
12802         * doc/install.texi2html: Change copyright header to refer to version
12803         3 of the GNU General Public License and to point readers at the
12804         COPYING3 file and the FSF's license web page.
12805         * config/vax/linux.h: Likewise.
12806
12807 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12808
12809         * config/i386/i386.md (cmpcc): New.
12810         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
12811         (sync_compare_and_swap_cc*): Delete.
12812
12813         * config/s390/s390.c (s390_compare_emitted): Remove.
12814         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
12815         s390_compare_emitted used to be handled.  Assert that modes match.
12816         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
12817         refer to sync_compare_and_swap_ccsi.
12818         * config/s390/s390.h (s390_compare_emitted): Remove.
12819         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
12820         instead of s390_compare_emitted.
12821         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
12822         instead of s390_compare_emitted.
12823         * config/s390/s390.md (cmpcc): New.
12824         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
12825         CC_REGNUM, do not pretend it's set.
12826         (sync_compare_and_swap_cc*): Delete.
12827         * config/s390/predicates.md (cc_reg_operand): New.
12828
12829         * expr.c (sync_compare_and_swap_cc): Delete.
12830         * optabs.h (sync_compare_and_swap_cc): Delete.
12831         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
12832         is being used with can_compare_p.
12833         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
12834         (find_cc_set): New.
12835         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
12836         look for a MODE_CC set instead.  Use emit_store_flag.
12837         (expand_compare_and_swap_loop): Likewise, with some additional
12838         complication to avoid a force_reg when useless.  Use
12839         emit_cmp_and_jump_insns.
12840         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
12841         * doc/md.texi (sync_compare_and_swap_cc): Merge with
12842         sync_compare_and_swap documentation.
12843
12844 2009-04-09  Jan Hubicka  <jh@suse.cz>
12845
12846         * except.c (find_prev_try): Break out from ....
12847         (duplicate_eh_regions): ... here; properly update prev_try pointers
12848         when duplication part of tree.
12849         (dump_eh_tree): Improve dumping.
12850         (verify_eh_region): New.
12851         (verify_eh_tree): Use it.
12852
12853 2009-04-06  Richard Guenther  <rguenther@suse.de>
12854
12855         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
12856         &ARRAY addresses by adjusting their types and prepending
12857         a conversion.
12858         * tree-cfg.c (verify_gimple_assign_single): Verify that
12859         addresses are correct.
12860
12861 2009-04-09  Richard Guenther  <rguenther@suse.de>
12862
12863         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
12864         indices into an array reference if possible.
12865         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12866         Fold POINTER_PLUS_EXPR statements with invariant address.
12867
12868 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
12869
12870         PR target/39634
12871         * config.gcc (powerpc64-*-linux*): Always build biarch.
12872
12873 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
12874
12875         PR c/39613
12876         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
12877         it and pedwarn if this results in an INTEGER_CST.
12878
12879 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12880
12881         * doc/install.texi: Update minimum GMP version.  Remove obsolete
12882         text in MPFR section.
12883
12884 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
12885
12886         * dwarf2out.c (class_scope_p): New static inline.
12887         (class_or_namespace_scope_p): Use it.
12888         (gen_variable_die): Use DW_TAG_member tag for static data member
12889         declarations instead of DW_TAG_variable.
12890
12891         PR middle-end/39573
12892         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
12893         variables.
12894
12895 2009-04-08  Richard Guenther  <rguenther@suse.de>
12896
12897         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
12898         valueize random data.
12899
12900 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
12901
12902         * config.gcc (aix tm_file):  Add aix-stdint.h.
12903         (aix tm clause use_gcc_stdint):  Set to wrap.
12904         * config/rs6000/aix-stdint.h:  New file.
12905
12906 2009-04-08  Richard Guenther  <rguenther@suse.de>
12907
12908         PR middle-end/36291
12909         * tree-dfa.c (add_referenced_var): Do not recurse into
12910         global initializers.
12911         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
12912         exposed variables.
12913         (fold_const_aggregate_ref): Likewise.
12914
12915 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12916
12917         * recog.c (ordered_comparison_operator): New.
12918         * gensupport.c (std_preds): Add it.
12919         * doc/md.texi (Machine-Independent Predicates): Document it.
12920
12921 2009-04-08  Jan Hubicka  <jh@suse.cz>
12922
12923         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
12924         * function.h (rtl_eh): Remove exception_handler_label_map.
12925         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
12926         remove_exception_handler_label, for_each_eh_label_1): Remove.
12927         (rtl_remove_unreachable_regions): Remove.
12928         (convert_from_eh_region_ranges): Do not remove unreachable regions.
12929         (find_exception_handler_labels): Don't build the hashtable.
12930         (maybe_remove_eh_handler): Remove.
12931         (for_each_eh_label): Rewrite to walk the tree.
12932         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
12933         * except.h (maybe_remove_eh_handler): Remove.
12934         * passes.c (init_optimization_passes): Schedule second EH cleanup
12935         before out-of-ssa.
12936         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
12937         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
12938
12939 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12940
12941         * genoutput.c (validate_optab_operands): New.
12942         (gen_insn, gen_expand): Call it.
12943
12944         * genflags.c (gen_insn): Detect misused iterators.
12945         (main): Pass line_no to gen_insn, exit with status 1 on error.
12946
12947         * genextract.c (line_no): Make global.
12948         (VEC_safe_set_locstr): Change assertion to error message.
12949         (main): Exit with status 1 on error.
12950
12951 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
12952
12953         PR c/39614
12954         PR c/39673
12955         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12956         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12957         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
12958         * c-convert.c (convert): Do not call fold on results of conversion
12959         functions when the result is a C_MAYBE_CONST_EXPR.
12960         * c-parser.c (c_parser_postfix_expression): Do not fold condition
12961         of __builtin_choose_expr.
12962         * c-typeck.c (remove_c_maybe_const_expr): New.
12963         (build_unary_op, build_conditional_expr, build_compound_expr,
12964         build_binary_op, c_objc_common_truthvalue_conversion): Call
12965         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
12966         integer operands.
12967
12968 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
12969
12970         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
12971         CODE to produce a new one. Add a prototype to use fold_convert_const
12972
12973 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
12974
12975         PR bootstrap/39660
12976         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
12977         mix declarations and code.
12978
12979 2009-04-08  Ben Elliston  <bje@au.ibm.com>
12980
12981         * gcc.c: Replace `CC' with `GCC' throughout.
12982
12983 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
12984
12985         * doc/invoke.texi: Document Atom support.
12986
12987 2009-04-07  Jason Merrill  <jason@redhat.com>
12988
12989         PR c++/25185
12990         * c-common.h, c-common.c: Add flag_pretty_templates.
12991         * c-opts.c (c_common_handle_option): Set it.
12992         * c.opt: Add -fno-pretty-templates.
12993         * doc/invoke.texi (C++ Dialect Options): Likewise.
12994
12995 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
12996
12997         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
12998         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
12999         (ia64_expand_builtin): Likewise.
13000
13001 2009-04-07  Martin Jambor  <mjambor@suse.cz>
13002
13003         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
13004         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
13005         ADDR_EXPRS are include too.
13006
13007 2009-04-07  Richard Guenther  <rguenther@suse.de>
13008
13009         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
13010         decls are only used if passes as parameters or if they are
13011         local statics and the call is not to a builtin.
13012         (call_may_clobber_ref_p_1): Likewise.
13013
13014 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
13015
13016         * expr.c (do_store_flag): Remove last argument.  Simplify code
13017         to avoid duplication of tests already done by can_compare_p.
13018         (expand_expr_real_1): Adjust caller.
13019
13020 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
13021
13022         * optabs.c (can_compare_p): Test the predicate of a
13023         cbranch and cstore pattern.
13024
13025 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
13026
13027         * expr.c (convert_move): Use emit_store_flag instead of
13028         "emulating" it.
13029
13030 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
13031
13032         * config/i386/i386.c (ix86_compare_emitted): Remove.
13033         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
13034         ix86_compare_op0 like ix86_compare_emitted used to be handled.
13035         * config/i386/i386.h (ix86_compare_emitted): Remove.
13036         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
13037         instead of ix86_compare_emitted.
13038         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
13039
13040 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
13041
13042         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
13043         Add t-sysroot-suffix to tmake_file.
13044         * config/print-sysroot-suffix.sh: New file.
13045         * config/t-sysroot-suffix: New file.
13046
13047 2009-04-07  Ben Elliston  <bje@au.ibm.com>
13048
13049         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
13050         as the latter produces a warning when the target does not support
13051         infinity.
13052
13053 2009-04-07  Ben Elliston  <bje@au.ibm.com>
13054
13055         * dfp.c: Replace type punning assignments with memcpy throughout.
13056         * Makefile.in (dfp.o-warn): Remove.
13057
13058 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
13059
13060         PR target/39634
13061         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
13062         Include soft-fp/t-softfp after rs6000/t-linux64.
13063
13064 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
13065
13066         * stor-layout.c (set_sizetype): Use the full precision of their
13067         machine mode for bitsize types.
13068
13069 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
13070
13071         * config/i386/i386.md: Revert 2 accidental checkins.
13072
13073 2009-04-06  Joey Ye  <joey.ye@intel.com>
13074             Xuepeng Guo  <xuepeng.guo@intel.com>
13075             H.J. Lu  <hongjiu.lu@intel.com>
13076
13077         Atom pipeline model, tuning and insn selection.
13078         * config.gcc (atom): Add atom config options and target.
13079
13080         * config/i386/atom.md: New.
13081
13082         * config/i386/i386.c (atom_cost): New cost.
13083         (m_ATOM): New macro flag.
13084         (initial_ix86_tune_features): Set m_ATOM.
13085         (x86_accumulate_outgoing_args): Likewise.
13086         (x86_arch_always_fancy_math_387): Likewise.
13087         (processor_target): Add Atom cost.
13088         (cpu_names): Add Atom cpu name.
13089         (override_options): Set Atom ISA.
13090         (ix86_issue_rate): New case PROCESSOR_ATOM.
13091         (ix86_adjust_cost): Likewise.
13092
13093         * config/i386/i386.h (TARGET_ATOM): New target macro.
13094         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
13095         (TARGET_OPT_AGU): New target option.
13096         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
13097         (processor_type): Add PROCESSOR_ATOM.
13098
13099         * config/i386/i386.md (cpu): Add new value "atom".
13100         (use_carry, movu): New attr.
13101         (atom.md): Include atom.md.
13102         (adddi3_carry_rex64): Set attr "use_carry".
13103         (addqi3_carry): Likewise.
13104         (addhi3_carry): Likewise.
13105         (addsi3_carry): Likewise.
13106         (*addsi3_carry_zext): Likewise.
13107         (subdi3_carry_rex64): Likewise.
13108         (subqi3_carry): Likewise.
13109         (subhi3_carry): Likewise.
13110         (subsi3_carry): Likewise.
13111         (x86_movdicc_0_m1_rex64): Likewise.
13112         (*x86_movdicc_0_m1_se): Likewise.
13113         (x86_movsicc_0_m1): Likewise.
13114         (*x86_movsicc_0_m1_se): Likewise.
13115         (*adddi_1_rex64): Emit add insn as much as possible.
13116         (*addsi_1): Likewise.
13117         (return_internal): Set atom_unit.
13118         (return_internal_long): Likewise.
13119         (return_pop_internal): Likewise.
13120         (*rcpsf2_sse): Set atom_sse_attr attr.
13121         (*qrt<mode>2_sse): Likewise.
13122         (*prefetch_sse): Likewise.
13123
13124         * config/i386/i386-c.c (ix86_target_macros_internal): New case
13125         PROCESSOR_ATOM.
13126         (ix86_target_macros_internal): Likewise.
13127
13128         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
13129         (*prefetch_sse_rex): Likewise.
13130         (sse_rcpv4sf2): Likewise.
13131         (sse_vmrcpv4sf2): Likewise.
13132         (sse_sqrtv4sf2): Likewise.
13133         (<sse>_vmsqrt<mode>2): Likewise.
13134         (sse_ldmxcsr): Likewise.
13135         (sse_stmxcsr): Likewise.
13136         (*sse_sfence): Likewise.
13137         (sse2_clflush): Likewise.
13138         (*sse2_mfence): Likewise.
13139         (*sse2_lfence): Likewise.
13140         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
13141         (<sse>_movup<ssemodesuffixf2c>): Likewise.
13142         (avx_movdqu<avxmodesuffix>): Likewise.
13143         (avx_lddqu<avxmodesuffix>): Likewise.
13144         (sse2_movntv2di): Change attr "type" to "ssemov".
13145         (sse2_movntsi): Likewise.
13146         (rsqrtv8sf2): Change attr "type" to "sseadd".
13147         (sse3_addsubv2df3): Set attr "atom_unit".
13148         (sse3_h<plusminus_insn>v4sf3): Likewise.
13149         (*sse2_pmaddwd): Likewise.
13150         (*vec_extractv2di_1_rex64): Likewise.
13151         (*vec_extractv2di_1_avx): Likewise.
13152         (sse2_psadbw): Likewise.
13153         (ssse3_phaddwv8hi3): Likewise.
13154         (ssse3_phaddwv4hi3): Likewise.
13155         (ssse3_phadddv4si3): Likewise.
13156         (ssse3_phadddv2si3): Likewise.
13157         (ssse3_phaddswv8hi3): Likewise.
13158         (ssse3_phaddswv4hi3): Likewise.
13159         (ssse3_phsubwv8hi3): Likewise.
13160         (ssse3_phsubwv4hi3): Likewise.
13161         (ssse3_phsubdv4si3): Likewise.
13162         (ssse3_phsubdv2si3): Likewise.
13163         (ssse3_phsubswv8hi3): Likewise.
13164         (ssse3_phsubswv4hi3): Likewise.
13165         (ssse3_pmaddubsw128): Likewise.
13166         (sse3_pmaddubsw: Likewise.
13167         (ssse3_palignrti): Likewise.
13168         (ssse3_palignrdi): Likewise.
13169
13170 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
13171
13172         * doc/install.texi (Specific): Fix two cross-references to MinGW.
13173
13174 2009-04-06  Richard Guenther  <rguenther@suse.de>
13175
13176         PR tree-optimization/28868
13177         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
13178         of which PHI results we inserted.
13179         (insert_into_preds_of_block): Record inserted PHIs.
13180         (eliminate): Eliminate redundant PHI nodes.
13181         (init_pre): Init inserted_phi_names.
13182
13183 2009-04-06  Richard Guenther  <rguenther@suse.de>
13184
13185         PR tree-optimization/39643
13186         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
13187         IMAGPART_EXPRs of complex constants.
13188         (execute_fold_all_builtins): If we folded a call queue
13189         TODO_update_address_taken.
13190
13191 2009-04-06  Jan Hubicka  <jh@suse.cz>
13192
13193         PR middle-end/39659
13194         * except.c (remove_unreachable_regions): Propagate may_contain_throw
13195         flag.
13196
13197 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
13198
13199         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
13200         delay slot.
13201         (ic_invalidate_array): Likewise.
13202
13203 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
13204
13205         * calls.c (emit_library_call_value_1): Fix a problem with parameter
13206         alignment for library calls.
13207
13208 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
13209
13210         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
13211         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
13212         * config/i386/mingw-stdint.h:  New file.
13213
13214 2009-04-05  Richard Guenther  <rguenther@suse.de>
13215
13216         PR tree-optimization/39648
13217         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
13218         our &A vs. &A[0] IL deficiencies.
13219
13220 2009-04-04  Jan Hubicka  <jh@suse.cz>
13221
13222         * except.c (sjlj_find_directly_reachable_regions): Be ready for
13223         removed toplevel regions.
13224         (sjlj_mark_call_sites): Likewise.
13225
13226 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
13227
13228         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
13229         (cygwin tm clause use_gcc_stdint):  Set to wrap.
13230         * config/i386/cygwin-stdint.h:  New file.
13231
13232 2009-04-04  Richard Guenther  <rguenther@suse.de>
13233
13234         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
13235         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
13236         single-argument PHIs if we are in loop-closed SSA form.
13237         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
13238         for the pre-condition.
13239         (slpeel_tree_peel_loop_to_edge): Likewise.
13240         (vect_build_loop_niters): Take an optional sequence to append stmts.
13241         (vect_generate_tmps_on_preheader): Likewise.
13242         (vect_do_peeling_for_loop_bound): Take extra guards for the
13243         pre-condition.
13244         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
13245         the cost model check.
13246         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
13247         guards if we are going to peel.  Do not apply versioning in that case.
13248         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
13249         (vect_do_peeling_for_loop_bound): Likewise.
13250         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
13251         loop bound only record extra pre-conditions, do not apply loop
13252         versioning.
13253
13254 2009-04-04  Richard Guenther  <rguenther@suse.de>
13255
13256         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
13257         renaming code.
13258
13259 2009-04-04  Jan Hubicka  <jh@suse.cz>
13260
13261         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
13262         last_basic_block for size of bb->index indexed array.
13263         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
13264         compute_out, link_btr_uses, build_btr_def_use_webs,
13265         build_btr_def_use_webs, migrate_btr_defs): Likewise.
13266
13267 2009-04-04  Jan Hubicka  <jh@suse.cz>
13268
13269         * except.c (remove_eh_handler_and_replace): Break out from ...
13270         (remove_eh_handler): ... here.
13271         (bring_to_root): New function.
13272         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
13273         handled ones, bring others to root of tree.
13274
13275 2009-04-04  Jan Hubicka  <jh@suse.cz>
13276
13277         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
13278         (all_phis_safe_to_merge): New function.
13279         (update_info): New structure.
13280         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
13281         (cleanup_empty_eh): Update SSA if possible.
13282
13283 2009-04-04  Richard Guenther  <rguenther@suse.de>
13284
13285         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
13286         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
13287         (append_vuse): Likewise.
13288
13289 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
13290
13291         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
13292         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
13293         instead of REG_UNSAVED for DW_CFA_undefined.
13294         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
13295         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
13296         outermost frame.
13297
13298 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
13299
13300         PR target/39501
13301         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
13302         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
13303         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
13304
13305 2009-04-04  Richard Guenther  <rguenther@suse.de>
13306
13307         PR tree-optimization/8781
13308         PR tree-optimization/37892
13309         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
13310         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
13311         (valueize_refs): Call it for *& valueizations.
13312         (shared_reference_ops_from_ref): Rename to ...
13313         (valueize_shared_reference_ops_from_ref): ... this and valueize.
13314         (shared_reference_ops_from_call): Rename to ...
13315         (valueize_shared_reference_ops_from_call): ... this and valueize.
13316         (vn_reference_lookup): Update.
13317         (visit_reference_op_call): Likewise.
13318         * tree-ssa-pre.c (phi_translate_1): Fold *&.
13319         (eliminate): Value-replace the call address in call statements.
13320
13321 2009-04-04  Richard Guenther  <rguenther@suse.de>
13322
13323         PR tree-optimization/39636
13324         * tree-ssa-forwprop.c
13325         (forward_propagate_addr_into_variable_array_index): Check for
13326         GIMPLE_ASSIGN before accessing the rhs code.
13327
13328 2009-04-03  Jason Merrill  <jason@redhat.com>
13329
13330         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
13331
13332 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
13333
13334         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
13335         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
13336         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
13337         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
13338         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
13339         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
13340         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
13341         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
13342         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
13343         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
13344         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
13345         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
13346         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
13347         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
13348         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
13349         Use fr_reg_or_fp01_operand instead of fr_register_operand
13350
13351         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
13352         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
13353         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
13354
13355 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
13356
13357         PR rtl-optimization/39607
13358         PR rtl-optimization/39631
13359
13360         Revert:
13361
13362         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13363         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
13364         instead of DF_LR_OUT.
13365         * ira-lives.c (process_bb_node_lives): Ditto.
13366         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
13367         instead of DF_LR_{OUT,IN}.
13368         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
13369         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
13370
13371 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
13372
13373         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
13374         (execute_lower_omp): Always run but take the short way out if -fopenmp
13375         is not given.
13376         (gate_lower_omp): Remove, forcing the pass manager to always run the
13377         pass and always set PROP_gimple_lomp.
13378         (pass_lower_omp): Remove gate function.
13379         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
13380         PROP_trees.  Instead, require it.
13381         * ipa-cp.c (pass_ipa_cp): Likewise.
13382         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
13383         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
13384         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
13385         and PROP_gimple_leh.
13386
13387 2009-04-03  Richard Guenther  <rguenther@suse.de>
13388
13389         PR middle-end/13146
13390         PR tree-optimization/23940
13391         PR tree-optimization/33237
13392         PR middle-end/33974
13393         PR middle-end/34093
13394         PR tree-optimization/36201
13395         PR tree-optimization/36230
13396         PR tree-optimization/38049
13397         PR tree-optimization/38207
13398         PR tree-optimization/38230
13399         PR tree-optimization/38301
13400         PR tree-optimization/38585
13401         PR middle-end/38895
13402         PR tree-optimization/38985
13403         PR tree-optimization/39299
13404         * tree-ssa-structalias.h: Remove.
13405         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
13406         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
13407         (struct vuse_element_d): Remove.
13408         (struct vuse_vec_d): Likewise.
13409         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
13410         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
13411         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
13412         VUSE_ELEMENT_VAR): Likewise.
13413         (struct voptype_d): Likewise.
13414         (NUM_VOP_FREE_BUCKETS): Likewise.
13415         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
13416         (struct stmt_operands_d): Remove.
13417         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
13418         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
13419         VDEF_NUM, VDEF_VECT): Likewise.
13420         (copy_virtual_operands): Remove.
13421         (operand_build_cmp): Likewise.
13422         (create_ssa_artificial_load_stmt): Likewise.
13423         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
13424         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
13425         vuse_index and mayuse_index members.  Pack and move done and iter_type
13426         members to the front.
13427         (SSA_OP_VMAYUSE): Remove.
13428         (SSA_OP_VIRTUAL_USES): Adjust.
13429         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
13430         (unlink_stmt_vdef): Declare.
13431         (add_to_addressable_set): Remove.
13432         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
13433         (vrp_visit_stmt): Likewise.
13434         * doc/tree-ssa.texi (Alias analysis): Update.
13435         * doc/invoke.texi (max-aliased-vops): Remove docs.
13436         (avg-aliased-vops): Likewise.
13437         * tree-into-ssa.c (syms_to_rename): Remove.
13438         (need_to_update_vops_p): Likewise.
13439         (need_to_initialize_update_ssa_p): Rename to ...
13440         (update_ssa_initialized_fn): ... this.  Track function we are
13441         initialized for.
13442         (symbol_marked_for_renaming): Simplify.
13443         (add_new_name_mapping): Do not set need_to_update_vops_p.
13444         (dump_currdefs): Use SYMS_TO_RENAME.
13445         (rewrite_update_stmt): Always walk all uses/defs.
13446         (dump_update_ssa): Adjust.
13447         (init_update_ssa): Take function argument.  Track what we are
13448         initialized for.
13449         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
13450         (create_new_def_for): Initialize for cfun, assert we are initialized
13451         for cfun.
13452         (mark_sym_for_renaming): Simplify.
13453         (mark_set_for_renaming): Do not initialize update-ssa.
13454         (need_ssa_update_p): Simplify.  Take function argument.
13455         (name_mappings_registered_p): Assert we ask for the correct function.
13456         (name_registered_for_update_p): Likewise.
13457         (ssa_names_to_replace): Likewise.
13458         (release_ssa_name_after_update_ssa): Likewise.
13459         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
13460         (dump_decl_set): Do not print a newline.
13461         (debug_decl_set): Do it here.
13462         (dump_update_ssa): And here.
13463         * tree-ssa-loop-im.c (move_computations): Adjust.
13464         (movement_possibility): Likewise.
13465         (determine_max_movement): Likewise.
13466         (gather_mem_refs_stmt): Likewise.
13467         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
13468         or NAME_MEMORY_TAG.
13469         * tree-complex.c (update_all_vops): Remove.
13470         (expand_complex_move): Adjust.
13471         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
13472         Simplify test for memory referencing statement.  Exclude
13473         non-invariant ADDR_EXPRs.
13474         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
13475         * tree-loop-distribution.c (generate_memset_zero): Adjust.
13476         (rdg_flag_uses): Likewise.
13477         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
13478         related code.
13479         (tree_optimize_tail_calls_1): Also split the
13480         edge from the entry block if we have degenerate PHI nodes in
13481         the first basic block.
13482         * tree.c (init_ttree): Remove memory-tag related code.
13483         (tree_code_size): Likewise.
13484         (tree_node_structure): Likewise.
13485         (build7_stat): Re-write to be build6_stat.
13486         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
13487         (SSA_VAR_P): Adjust.
13488         (struct tree_memory_tag): Remove.
13489         (struct tree_memory_partition_tag): Likewise.
13490         (union tree_node): Adjust.
13491         (build7): Re-write to be build6.
13492         * tree-pass.h (pass_reset_cc_flags): Remove.
13493         (TODO_update_address_taken): New flag.
13494         (pass_simple_dse): Remove.
13495         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
13496         * params.h (MAX_ALIASED_VOPS): Remove.
13497         (AVG_ALIASED_VOPS): Likewise.
13498         * omp-low.c (expand_omp_taskreg): Update SSA form.
13499         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
13500         aliases the lhs in a copy stmt.
13501         * tree-ssa-dse.c (struct address_walk_data): Remove.
13502         (memory_ssa_name_same): Likewise.
13503         (memory_address_same): Likewise.
13504         (get_kill_of_stmt_lhs): Likewise.
13505         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
13506         unused stores.  Look through PHI nodes into post-dominated regions.
13507         (dse_optimize_stmt): Simplify.  Properly remove stores.
13508         (tree_ssa_dse): Compute dominators.
13509         (execute_simple_dse): Remove.
13510         (pass_simple_dse): Likewise.
13511         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
13512         gimple_loaded_syms and gimple_stored_syms computation.
13513         * toplev.c (dump_memory_report): Dump alias and pta stats.
13514         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
13515         (vn_reference_eq): Likewise.
13516         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
13517         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
13518         valueize_vuses): Remove.
13519         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
13520         (get_def_ref_stmt_vuse): ... this.
13521         (vn_reference_lookup_2): New function.
13522         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
13523         walking equivalent vuses.  Simplify.
13524         (vn_reference_lookup): Likewise.
13525         (vn_reference_insert): Likewise.
13526         (vn_reference_insert_pieces): Likewise.
13527         (visit_reference_op_call): Simplify.
13528         (visit_reference_op_load): Likewise.
13529         (visit_reference_op_store): Likewise.
13530         (init_scc_vn): Remove shared_lookup_vuses initialization.
13531         (free_scc_vn): Remove shared_lookup_vuses freeing.
13532         (sort_vuses, sort_vuses_heap): Remove.
13533         (get_ref_from_reference_ops): Export.
13534         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
13535         vector with single vuse pointer.
13536         (vn_reference_lookup_pieces, vn_reference_lookup,
13537         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
13538         (shared_vuses_from_stmt): Remove.
13539         (get_ref_from_reference_ops): Declare.
13540         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
13541         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
13542         memory-tag related code.
13543         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
13544         (likely_value): Add comment, skip static-chain of call statements.
13545         (surely_varying_stmt_p): Adjust.
13546         (gimplify_and_update_call_from_tree): Likewise.
13547         (execute_fold_all_builtins): Do not rebuild alias info.
13548         (gimplify_and_update_call_from_tree): Properly update VOPs.
13549         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
13550         (copy_ref_info): Remove memory-tag related code.
13551         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
13552         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
13553         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
13554         computation.
13555         * tree-ssa-dom.c (gimple_p): Remove typedef.
13556         (eliminate_redundant_computations): Adjust.
13557         (record_equivalences_from_stmt): Likewise.
13558         (avail_expr_hash): Likewise.
13559         (avail_expr_eq): Likewise.
13560         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
13561         (stmt_makes_single_load): Likewise.
13562         (stmt_makes_single_store): Likewise.
13563         * tree-ssa-alias.c: Rewrite completely.
13564         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
13565         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
13566         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
13567         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
13568         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
13569         Remove public functions.
13570         (pass_reset_cc_flags): Remove.
13571         (pass_build_alias): Move ...
13572         * tree-ssa-structalias.c (pass_build_alias): ... here.
13573         * tree-ssa-alias.c (may_be_aliased): Move ...
13574         * tree-flow-inline.h (may_be_aliased): ... here.
13575         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
13576         count_uses_and_derefs): Move ...
13577         * gimple.c: ... here.
13578         * gimple.h (count_uses_and_derefs): Declare.
13579         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
13580         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
13581         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
13582         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
13583         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
13584         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
13585         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
13586         New functions.
13587         * tree-dfa.c (refs_may_alias_p): Move ...
13588         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
13589         * tree-ssa-alias.h: New file.
13590         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
13591         (statement_sink_location): Likewise.
13592         * opts.c (decode_options): Do not adjust max-aliased-vops or
13593         avg-aliased-vops values.
13594         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
13595         (TV_CALL_CLOBBER): Likewise.
13596         (TV_FLOW_SENSITIVE): Likewise.
13597         (TV_FLOW_INSENSITIVE): Likewise.
13598         (TV_MEMORY_PARTITIONING): Likewise.
13599         (TV_ALIAS_STMT_WALK): New timevar.
13600         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
13601         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
13602         (get_address_description): Remove memory-tag related code.
13603         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
13604         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
13605         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
13606         and immediate uses in statements.  Document.
13607         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
13608         (dump_symbols): Remove.
13609         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
13610         * alias.c (get_deref_alias_set): New function split out from ...
13611         (get_alias_set): ... here.
13612         * alias.h (get_deref_alias_set): Declare.
13613         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
13614         type parameter.  Remove restrict pointer handling.  Create a
13615         ref-all pointer in case type-based alias sets do not conflict.
13616         (vect_analyze_data_refs): Remove SMT related code.
13617         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
13618         (vectorizable_load): Likewise.
13619         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
13620         (DR_SYMBOL_TAG, DR_VOPS): Remove.
13621         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
13622         Ignore vops and SMTs.
13623         (dr_analyze_alias): Likewise..
13624         (free_data_ref): Likewise.
13625         (create_data_ref): Likewise.
13626         (analyze_all_data_dependences): Likewise.
13627         (get_references_in_stmt): Adjust.
13628         * tree-flow-inline.h (gimple_aliases_computed_p,
13629         gimple_addressable_vars, gimple_call_clobbered_vars,
13630         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
13631         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
13632         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
13633         gimple_mem_ref_stats): Remove.
13634         (gimple_vop): New function.
13635         (op_iter_next_use): Remove vuses and mayuses cases.
13636         (op_iter_next_def): Remove vdefs case.
13637         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
13638         (clear_and_done_ssa_iter): Do not set removed fields.
13639         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
13640         Assert we are not iterating over vuses or vdefs if not also
13641         iterating over uses or defs.
13642         (op_iter_init_use): Likewise.
13643         (op_iter_init_def): Likewise.
13644         (op_iter_next_vdef): Remove.
13645         (op_iter_next_mustdef): Likewise.
13646         (op_iter_init_vdef): Likewise.
13647         (compare_ssa_operands_equal): Likewise.
13648         (link_use_stmts_after): Handle vuse operand.
13649         (is_call_used): Use is_call_clobbered.
13650         (is_call_clobbered): Global variables are always call clobbered,
13651         query the call-clobbers bitmap.
13652         (mark_call_clobbered): Ignore global variables.
13653         (clear_call_clobbered): Likewise.
13654         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
13655         virtual operands sanity check.
13656         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
13657         Remove.
13658         (TARGET_MEM_REF): Remove TMR_TAG operand.
13659         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
13660         Remove call-clobber related code.
13661         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
13662         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
13663         partitions or escape reason.
13664         (get_single_def_stmt, get_single_def_stmt_from_phi,
13665         get_single_def_stmt_with_phi): Remove.
13666         (dump_referenced_vars): Tidy.
13667         (get_ref_base_and_extent): Allow bare decls.
13668         (collect_dfa_stats): Adjust.
13669         * graphite.c (rename_variables_in_stmt): Adjust.
13670         (graphite_copy_stmts_from_block): Likewise.
13671         (translate_clast): Likewise.
13672         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
13673         (EXPR_DIES): New.
13674         (translate_vuse_through_block): Use the oracle.
13675         (phi_translate_1): Adjust.
13676         (value_dies_in_block_x): Use the oracle.  Cache the outcome
13677         in EXPR_DIES.
13678         (valid_in_sets): Check if the VUSE for
13679         a REFERENCE is available.
13680         (eliminate): Do not remove stmts during elimination,
13681         instead queue and remove them afterwards.
13682         (do_pre): Do not rebuild alias info.
13683         (pass_pre): Run TODO_rebuild_alias before PRE.
13684         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
13685         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
13686         (mark_all_v_defs_stmt): Remove.
13687         (mark_all_v_defs_seq): Adjust.
13688         (sra_replace): Likewise.
13689         (scalarize_use): Likewise.
13690         (scalarize_copy): Likewise.
13691         (scalarize_init): Likewise.
13692         (scalarize_ldst): Likewise.
13693         (todoflags): Remove.
13694         (tree_sra): Do not rebuild alias info.
13695         (tree_sra_early): Adjust.
13696         (pass_sra): Run TODO_update_address_taken before SRA.
13697         * tree-predcom.c (set_alias_info): Remove.
13698         (prepare_initializers_chain): Do not call it.
13699         (mark_virtual_ops_for_renaming): Adjust.
13700         (mark_virtual_ops_for_renaming_list): Remove.
13701         (initialize_root_vars): Adjust.
13702         (initialize_root_vars_lm): Likewise.
13703         (prepare_initializers_chain): Likewise.
13704         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
13705         (may_propagate_copy_into_stmt): Likewise.
13706         (merge_alias_info): Do nothing for now.
13707         (propagate_tree_value_into_stmt): Adjust.
13708         (stmt_may_generate_copy): Likewise.
13709         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
13710         not mark symbols for renaming.
13711         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
13712         with the same statement, make sure to update the new pointed-to one.
13713         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
13714         call statements, do not mark symbols for renaming.
13715         (mark_operand_necessary): Dump something.
13716         (ref_may_be_aliased): New function.
13717         (mark_aliased_reaching_defs_necessary_1): New helper function.
13718         (mark_aliased_reaching_defs_necessary): Likewise.
13719         (mark_all_reaching_defs_necessary_1): Likewise.
13720         (mark_all_reaching_defs_necessary): Likewise.
13721         (propagate_necessity): Do not process virtual PHIs.  For
13722         non-aliased loads mark all reaching definitions as necessary.
13723         For aliased loads and stores mark the immediate dominating
13724         aliased clobbers as necessary.
13725         (visited): New global static.
13726         (perform_tree_ssa_dce): Free visited bitmap after propagating
13727         necessity.
13728         (remove_dead_phis): Perform simple dead virtual PHI removal.
13729         (remove_dead_stmt): Properly unlink virtual operands when
13730         removing stores.
13731         (eliminate_unnecessary_stmts): Schedule PHI removal after
13732         stmt removal.
13733         * tree-ssa-ter.c (is_replaceable_p): Adjust.
13734         (process_replaceable): Likewise.
13735         (find_replaceable_in_bb): Likewise.
13736         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
13737         based on the single gimple vop.
13738         (verify_flow_insensitive_alias_info): Remove.
13739         (verify_flow_sensitive_alias_info): Likewise.
13740         (verify_call_clobbering): Likewise.
13741         (verify_memory_partitions): Likewise.
13742         (verify_alias_info): Likewise.
13743         (verify_ssa): Adjust..
13744         (execute_update_addresses_taken): Export.  Update SSA
13745         manually.  Optimize only when optimizing.  Use a local bitmap.
13746         (pass_update_address_taken): Remove TODO_update_ssa, add
13747         TODO_dump_func.
13748         (pass_update_address_taken): Just use TODO_update_address_taken.
13749         (init_tree_ssa): Do not initialize addressable_vars.
13750         (verify_ssa): Verify new VUSE / VDEF properties.
13751         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
13752         Do not call verify_alias_info.
13753         (delete_tree_ssa): Clear the VUSE, VDEF operands.
13754         Do not free the loaded and stored syms bitmaps.  Reset the escaped
13755         and callused solutions.  Do not free addressable_vars.
13756         Remove memory-tag related code.
13757         (warn_uninitialized_var): Aliases are always available.
13758         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
13759         * lambda-code.c (can_put_in_inner_loop): Adjust.
13760         (can_put_after_inner_loop): Likewise.
13761         (perfect_nestify): Likewise.
13762         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
13763         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
13764         (vectorizable_conversion): Do not mark symbols for renaming.
13765         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
13766         (expand_call_inline): Unlink the calls virtual operands before
13767         replacing it.
13768         (tree_function_versioning): Do not call update_ssa if we are not
13769         updating clones.  Simplify.
13770         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
13771         (propagate_with_phi): Likewise..
13772         * tree-outof-ssa.c (create_temp): Remove memory tag and call
13773         clobber code.  Assert we are not aliased or global.
13774         * tree-flow.h: Include tree-ssa-alias.h
13775         (enum escape_type): Remove.
13776         (struct mem_sym_stats_d): Likewise.
13777         (struct mem_ref_stats_d): Likewise.
13778         (struct gimple_df): Add vop member.  Remove global_var,
13779         call_clobbered_vars, call_used_vars, addressable_vars,
13780         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
13781         escaped and callused members.
13782         (struct ptr_info_def): Remove all members, add points-to solution
13783         member pt.
13784         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
13785         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
13786         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
13787         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
13788         (tree-ssa-alias.o): Likewise.
13789         (toplev.o): Add tree-ssa-alias.h
13790         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
13791         * gimple.c (gimple_set_bb): Fix off-by-one error.
13792         (is_gimple_reg): Do not handle memory tags.
13793         (gimple_copy): Also copy virtual operands.
13794         Delay updating the statement.  Do not reset loaded and stored syms.
13795         (gimple_set_stored_syms): Remove.
13796         (gimple_set_loaded_syms): Likewise.
13797         (gimple_call_copy_skip_args): Copy the virtual operands
13798         and mark the new statement modified.
13799         * tree-ssa-structalias.c (may_alias_p): Remove.
13800         (set_uids_in_ptset): Take the alias set to prune with as
13801         parameter.  Fold in the alias test of may_alias_p.
13802         (compute_points_to_sets): Compute whether a ptr is dereferenced
13803         in a local sbitmap.
13804         (process_constraint): Deal with &ANYTHING on the lhs, reject all
13805         other ADDRESSOF constraints on the lhs.
13806         (get_constraint_for_component_ref): Assert that we don't get
13807         ADDRESSOF constraints from the base of the reference.
13808         Properly generate UNKNOWN_OFFSET for DEREF if needed.
13809         (struct variable_info): Remove collapsed_to member.
13810         (get_varinfo_fc): Remove.
13811         (new_var_info): Do not set collapsed_to.
13812         (dump_constraint): Do not follow cycles.
13813         (dump_constraint_graph): Likewise.
13814         (build_pred_graph): Likewise.
13815         (build_succ_graph): Likewise.
13816         (rewrite_constraints): Likewise.
13817         (do_simple_structure_copy): Remove.
13818         (do_rhs_deref_structure_copy): Remove.
13819         (do_lhs_deref_structure_copy): Remove.
13820         (collapse_rest_of_var): Remove.
13821         (do_structure_copy): Re-implement.
13822         (pta_stats): New global variable.
13823         (dump_pta_stats): New function.
13824         (struct constraint_expr): Make offset signed.
13825         (UNKNOWN_OFFSET): Define special value.
13826         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
13827         (solution_set_expand): New helper function split out from ...
13828         (do_sd_constraint): ... here.
13829         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
13830         (do_ds_constraint): Likewise.
13831         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
13832         and CALLUSED = *CALLUSED.
13833         (set_union_with_increment): Make inc argument signed.
13834         (type_safe): Remove.
13835         (get_constraint_for_ptr_offset): Handle unknown and negative
13836         constant offsets.
13837         (first_vi_for_offset): Handle offsets before start.  Bail
13838         out early for offsets beyond the variable extent.
13839         (first_or_preceding_vi_for_offset): New function.
13840         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
13841         Together with ESCAPED = *ESCAPED this properly computes reachability.
13842         (find_what_var_points_to): New function.
13843         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
13844         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
13845         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
13846         pt_solutions_intersect): New functions.
13847         (compute_call_used_vars): Remove.
13848         (compute_may_aliases): New main entry into PTA computation.
13849         * gimple.h (gimple_p): New typedef.
13850         (struct gimple_statement_base): Remove references_memory_p.
13851         (struct gimple_statement_with_memory_ops_base): Remove
13852         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
13853         members.
13854         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
13855         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
13856         gimple_set_references_memory): Remove.
13857         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
13858         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
13859         New functions.
13860         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
13861         (verify_expr): Allow RESULT_DECL.
13862         (gimple_duplicate_bb): Do not copy virtual operands.
13863         (gimple_duplicate_sese_region): Adjust.
13864         (gimple_duplicate_sese_tail): Likewise.
13865         (mark_virtual_ops_in_region): Remove.
13866         (move_sese_region_to_fn): Do not call it.
13867         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
13868         and pass_simple_dse.
13869         (execute_function_todo): Handle TODO_update_address_taken,
13870         call execute_update_addresses_taken for TODO_rebuild_alias.
13871         (execute_todo): Adjust.
13872         (execute_one_pass): Init dump files early.
13873         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
13874         call-clobbered.
13875         (create_general_new_stmt): Clear vops.
13876         * tree-ssa-reassoc.c (get_rank): Adjust.
13877         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
13878         symbols for renaming.
13879         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
13880         (PARAM_AVG_ALIASED_VOPS): Likewise.
13881         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
13882         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
13883         * tree-ssa-operands.c: Simplify for new virtual operand representation.
13884         (operand_build_cmp, copy_virtual_operands,
13885         create_ssa_artificial_load_stmt, add_to_addressable_set,
13886         gimple_add_to_addresses_taken): Remove public functions.
13887         (unlink_stmt_vdef): New function.
13888
13889 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13890
13891         * config.gcc (powerpc-*-linux*): Merge variants.
13892
13893 2009-04-02  Chao-ying Fu  <fu@mips.com>
13894             James Grosbach  <james.grosbach@microchip.com>
13895
13896         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
13897         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
13898         cop0_sp_offset.
13899         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
13900         keep_interrupts_masked_p, use_debug_exception_return_p.
13901         (mips_attribute_table): Add interrupt, use_shadow_register_set,
13902         keep_interrupts_masked, use_debug_exception_return.
13903         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
13904         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
13905         New functions.
13906         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
13907         (mips_print_operand): Process COP0 registers to print $0 .. $31
13908         correctly for GAS to process.
13909         (mips_interrupt_extra_call_saved_reg_p): New function.
13910         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
13911         extra registers.
13912         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
13913         (mips_compute_frame_info): Add supports for interrupt context that
13914         includes doubleword accumulators and COP0 registers.
13915         (mips_for_each_saved_acc): New function.
13916         (mips_for_each_saved_gpr_and_fpr): Change the function name from
13917         mips_for_each_saved_reg.
13918         (mips_save_reg): Save accumulators.
13919         (mips_kernel_reg_p): A new for_each_rtx callback.
13920         (mips_expand_prologue): Support interrupt handlers.
13921         (mips_restore_reg): Restore accumulators.
13922         (mips_expand_epilogue): Support interrupt handlers.
13923         (mips_can_use_return_insn): Return false for interrupt handlers.
13924         (mips_epilogue_uses): New function.
13925         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
13926         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
13927         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
13928         cop0_move): New instructions.
13929         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
13930         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
13931         defines.
13932         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
13933         New defines.
13934         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
13935         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
13936         interrupt handlers, we use K0 as the temporary register.
13937         (EPILOGUE_USES): Change to a function call.
13938         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
13939         handlers, we use K0 as the temporary register.
13940
13941         * doc/extend.texi (Function Attributes): Document interrupt,
13942         use_shadow_register_set, keep_interrupts_masked,
13943         use_debug_exception_return for MIPS attributes.
13944
13945 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13946
13947         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
13948         Remove a number of t-files from tmake_file.
13949         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
13950         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
13951         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13952         target_prototype, not TARGET_PROTOTYPE.
13953         (LINK_OS_GNU_SPEC): Define.
13954         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
13955         and darwin-ldoubdle.c.
13956
13957 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13958
13959         PR driver/39293
13960         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
13961         (cpp_options): Ditto.
13962         (default_compilers): Ditto.
13963         (display_help): Ditto.
13964         (process_command): Ditto.
13965         (do_spec_1): Ditto.
13966         (set_input): Use lbasename instead of duplicate code.
13967         (save_temps_prefix): New static for -save-temps=obj.
13968         (save_temps_length): Ditto.
13969
13970         * doc/invoke.texi (-save-temps=obj): Document new variant to
13971         -save-temps switch.
13972
13973 2009-04-02  Jeff Law  <law@redhat.com>
13974
13975         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
13976         variable.
13977
13978 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13979
13980         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
13981         * configure: Regenerated.
13982
13983 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13984
13985         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
13986         share the argument list.
13987
13988 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13989
13990         Merge
13991
13992         2009-02-12  Diego Novillo  <dnovillo@google.com>
13993
13994         * varpool.c (debug_varpool): New.
13995         * cgraph.h (debug_varpool): Declare.
13996
13997 2009-04-02  Jan Hubicka  <jh@suse.cz>
13998
13999         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
14000         pass.
14001
14002 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14003
14004         * config/i386/i386.c (ix86_abi): Move initialization to ...
14005         (override_options): Here.
14006
14007 2009-04-02  Christian Bruel  <christian.bruel@st.com>
14008
14009         * config/sh/sh.c (sh_dwarf_register_span): New function.
14010         (TARGET_DWARF_REGISTER_SPAN): Define.
14011         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
14012
14013 2009-04-02  Ira Rosen  <irar@il.ibm.com>
14014
14015         PR tree-optimization/39595
14016         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
14017         interleaved loads group is not  greater than the SLP group size.
14018
14019 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
14020
14021         * builtins.c (is_builtin_name): New.
14022         (called_as_built_in): Use is_builtin_name.
14023         * tree.h (is_builtin_name): New.
14024         * varasm.c (incorporeal_function_p): Use is_builtin_name
14025
14026 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
14027
14028         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
14029
14030 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
14031
14032         PR c++/26693
14033         * c-decl.c (clone_underlying_type): Move this ...
14034         * c-common.c (set_underlying_type): ... here.
14035         Also, make sure the function properly sets TYPE_STUB_DECL() on
14036         the newly created typedef variant type.
14037         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
14038         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
14039         points.
14040
14041 2009-04-02  Richard Guenther  <rguenther@suse.de>
14042
14043         PR tree-optimization/37221
14044         * tree-flow.h (degenerate_phi_result): Declare.
14045         * tree-ssa-dom.c (degenerate_phi_result): Export.
14046         * tree-scalar-evolution.c (analyze_initial_condition): If
14047         the initial condition is defined by a degenerate PHI node
14048         use the degenerate value.
14049
14050 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
14051
14052         PR rtl-optimization/39588
14053         * combine.c (merge_outer_ops): Do not set the constant when this
14054         is not necessary.
14055         (simplify_shift_const_1): Do not modify it either in this case.
14056
14057 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
14058
14059         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
14060         tuning is deprecated if -mtune value is set to an Itanium1 variant.
14061
14062 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
14063
14064         PR c/29027
14065         * c-lex.c (interpret_float): Default (no suffix) is double.
14066
14067 2009-04-1  Xinliang David Li  <davidxl@google.com>
14068
14069         * config/i386/i386.c (legitimate_constant_p): Recognize
14070         all one vector constant.
14071
14072 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14073
14074         * config/vax/vax.c: Add #includes to silence warnings.
14075         Change #include order to silence two warnings.
14076
14077 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14078
14079         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
14080         (ASM_SPEC): Pass -k to the assembler for PIC code.
14081
14082 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14083
14084         * config.gcc: Add vax-*-linux* to the switch.
14085         * config/vax/linux.h: New file. (TARGET_VERSION,
14086         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
14087
14088 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14089
14090         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
14091         Use predicate macros instead of GET_CODE() == foo.
14092         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
14093         ashlsi3, rotrsi3, <unnamed>): Likewise.
14094
14095 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14096
14097         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
14098         jbbccihi, jbbccisi): Remova trailing whitespace.
14099         * config/vax/constraints.md: Likewise.
14100         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14101         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
14102         * config/vax/predicates.md: Likewise.
14103         * config/vax/vax.c (print_operand_address, vax_output_int_move,
14104         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
14105         * config/vax/vax.h: Likewise.
14106         * config/vax/vax.md (nonlocal_goto): Likewise.
14107
14108 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14109
14110         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
14111         (indirectable_address_p, adjacent_operands_p): Add spaces around
14112         braces.
14113         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
14114
14115 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14116
14117         * config/vax/vax.c (legitimate_constant_address_p,
14118         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
14119         index_term_p, reg_plus_index_p, legitimate_address_p,
14120         vax_mode_dependent_address_p): Update comments to match functions
14121         modified by the recent int->bool conversion.
14122
14123 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14124
14125         * config/vax/builtins.md: Update copyright message.
14126         * config/vax/constraints.md: Likewise.
14127         * config/vax/netbsd-elf.h: Likewise.
14128         * config/vax/predicates.md: Likewise.
14129         * config/vax/vax-protos.h: Likewise.
14130         * config/vax/vax.c: Likewise.
14131         * config/vax/vax.h: Likewise.
14132         * config/vax/vax.md: Likewise.
14133         * config/vax/vax.opt: Likewise.
14134
14135 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
14136
14137         * config/vax/builtins.md (ffssi2, ffssi2_internal,
14138         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
14139         * config/vax/constraints.md (B, R): Likewise.
14140         * config/vax/predicates.md (external_memory_operand,
14141         nonimmediate_addsub_di_operand): Likewise.
14142         * config/vax/vax.c (vax_output_int_add): Likewise.
14143         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
14144         untyped_call): Likewise.
14145
14146 2009-04-01  Matt Thomas  <matt@3am-software.com>
14147
14148         * config/vax/predicates.md: New file.
14149         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
14150         external_const_operand, nonsymbolic_operand, external_memory_operand,
14151         indirect_memory_operand, indexed_memory_operand,
14152         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
14153         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
14154         predicate.
14155         * config/vax/constraints.md: New file.
14156         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
14157         New constraint.
14158         * config/vax/builtins.md: New file.
14159         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
14160         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
14161         jbbccisi): Define.
14162         * config/vax/vax.opt (mqmath): Add option.
14163         * config/vax/vax.md (isfx): Extend with DI.
14164         (VAXintQH, VAXintQHSD): Define.
14165         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
14166         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
14167         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
14168         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
14169         (movdi): Update constraints and use vax_output_int_move().
14170         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
14171         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
14172         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
14173         nonlocal_goto): New.
14174         (mov<mode>): Extend accepted operand types.
14175         (subdi3_old): Rename from subdi3, change update constraints and use
14176         a new implementation.
14177         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
14178         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
14179         MOVE_RATIO, CLEAR_RATIO): Define.
14180         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
14181         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
14182         (PRINT_OPERAND): Redefine using a function instead of inlined code.
14183         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
14184         (split_quadword_operands): Make static and really allow variable
14185         splitting.
14186         (print_operand_address): Update for PIC generation.
14187         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
14188         indexable_address_p, fixup_mathdi_operand,
14189         vax_expand_addsub_di_operands, adjacent_operands_p): New.
14190         (vax_float_literal, legitimate_constant_p,
14191         indirectable_constant_address_p, index_term_p,
14192         reg_plus_index_p): Return bool instead of int.
14193         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
14194         where needed.
14195         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
14196         generation.
14197         (vax_output_conditional_branch): Indent.
14198         (legitimate_constant_address_p, indirectable_constant_address_p,
14199         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
14200         vax_mode_dependent_address_p): Return bool instead of int, update for
14201         PIC generation.
14202         * config/vax/vax-protos.h (legitimate_constant_address_p,
14203         legitimate_constant_p, legitimate_address_p,
14204         vax_mode_dependent_address_p): Change declaration to bool.
14205         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
14206         vax_expand_addsub_di_operands, vax_output_int_subtract,
14207         vax_output_movmemsi): Declare.
14208         (split_quadword_operands, vax_float_literal): Delete declaration.
14209         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
14210         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
14211         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
14212         ASM_OUTPUT_DWARF_PCREL): Define.
14213         (ASM_SPEC): Change definition to allow PIC generation.
14214
14215 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
14216
14217         * doc/sourcebuild.texi: Update front-end requirements.
14218
14219 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14220
14221         PR target/39226
14222         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
14223         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
14224         (booldi3_internal3): Use boolean_or_operator instead of
14225         boolean_operator.
14226
14227 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
14228
14229         PR c/39605
14230         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
14231         declarator whose size is not an integer constant expression but
14232         folds to an integer constant, then treat it as a constant
14233         subsequently.
14234
14235 2009-04-01  Richard Guenther  <rguenther@suse.de>
14236
14237         * fold-const.c (fold_plusminus_mult_expr): Do not fold
14238         i * 4 + 2 to (i * 2 + 1) * 2.
14239
14240 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14241
14242         PR c/37772
14243         * c-parser.c (c_parser_asm_statement): Skip until close paren and
14244         return if c_parser_asm_string_literal returned NULL.
14245
14246 2009-04-01  Nick Clifton  <nickc@redhat.com>
14247
14248         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
14249         already defined.
14250         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
14251         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
14252         other typedefs to avoid conflicts with libgcc2.c.  Define labels
14253         to gain 16-bit bit-manipulation functions from libgcc2.c and then
14254         include it.
14255         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
14256         to gain 16-bit trapping arithmetic functions from libgcc2.c and
14257         then include it.
14258
14259 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
14260
14261         * varasm.c (default_function_rodata_section): Declare DOT as
14262         const char*.
14263
14264 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
14265             Andrey Galkin  <agalkin@hypercom.com>
14266
14267         PR/39492
14268         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
14269         Make object_name unique for each process.
14270
14271 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14272
14273         PR other/39591
14274         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
14275         addressable variables in the parallel that could go out of scope while
14276         running queued tasks.
14277
14278 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
14279
14280         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
14281         (CASE_VALUES_THRESHOLD): Redefine.
14282         * config/avr/avr.c (avr_override_options): Remove initialization of
14283         avr_case_values_threshold variable.
14284         (avr_case_values_threshold): Remove variable. Add new function.
14285         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
14286         * config/avr/avr.opt (mno-tablejump): Remove option.
14287         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
14288
14289 2009-04-01  DJ Delorie  <dj@redhat.com>
14290
14291         * varasm.c (default_function_rodata_section): Don't assume
14292         anything about where the first '.' in the section name is.
14293
14294 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
14295
14296         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
14297         rs6000_emit_stack_tie.
14298
14299 2009-03-31  Ian Lance Taylor  <iant@google.com>
14300
14301         * tree-eh.c (tree_remove_unreachable_handlers): Compare
14302         gimple_code with GIMPLE_RESX, not RESX.
14303
14304 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14305
14306         * c-common.c (c_get_ident): New.
14307         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
14308
14309 2009-04-01  Ben Elliston  <bje@au.ibm.com>
14310
14311         * config/rs6000/sysv4.opt (msdata): Improve option description.
14312
14313 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
14314
14315         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
14316         (divdf3_internal_lat): Remove.
14317         (divxf3_internal_lat): Remove.
14318         (divxf3_internal_thr): Remove.
14319         (divxf): Use divxf3_internal.
14320         * config/ia64/div.md (divsf3_internal_lat): New.
14321         (divdf3_internal_lat): New.
14322         (divxf3_internal): New.
14323
14324 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14325
14326         PR c/448
14327         * Makefile.in (USE_GCC_STDINT): Define.
14328         (stmp-int-hdrs): Install stdint.h if applicable.
14329         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
14330         if known.
14331         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
14332         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
14333         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14334         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14335         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14336         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14337         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14338         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14339         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14340         (c_common_nodes_and_builtins): Initialize
14341         underlying_wchar_type_node.  Do not initialize
14342         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
14343         nodes for new types.
14344         (c_stddef_cpp_builtins): Define macros for new types.
14345         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
14346         Remove.
14347         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
14348         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
14349         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
14350         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
14351         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
14352         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
14353         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
14354         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
14355         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
14356         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
14357         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
14358         int16_type_node, int32_type_node, int64_type_node,
14359         uint8_type_node, uint16_type_node, c_uint32_type_node,
14360         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
14361         int_least32_type_node, int_least64_type_node,
14362         uint_least8_type_node, uint_least16_type_node,
14363         uint_least32_type_node, uint_least64_type_node,
14364         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
14365         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
14366         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
14367         uintptr_type_node): Define.
14368         * c-cppbuiltin.c (builtin_define_constants,
14369         builtin_define_type_minmax): New.
14370         (builtin_define_stdint_macros): Define more macros.
14371         (c_cpp_builtins): Define more limit macros.
14372         (type_suffix): New.
14373         (builtin_define_type_max): Define in terms of
14374         builtin_define_type_minmax.  Remove is_long parameter.  All
14375         callers changed.
14376         * config.gcc (use_gcc_stdint): Define.
14377         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
14378         Add newlib-stdint.h for generic targets.
14379         * config/glibc-stdint.h, config/newlib-stdint.h,
14380         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
14381         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
14382         * config/score/score.h (UINTPTR_TYPE): Define.
14383         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
14384         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
14385         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14386         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14387         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14388         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14389         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14390         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14391         * config/spu/spu.h (STDINT_LONG32): Define.
14392         * configure.ac (use_gcc_stdint): Substitute.
14393         * configure: Regenerate.
14394         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
14395         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
14396         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
14397         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
14398         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
14399         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
14400         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
14401         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
14402         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
14403         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
14404         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
14405         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
14406         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
14407         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
14408         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
14409         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
14410         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
14411         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
14412         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
14413         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
14414         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
14415         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
14416         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14417         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14418         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14419         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14420         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14421         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14422         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
14423
14424 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
14425
14426         * loop-iv.c (suitable_set_for_replacement): Renamed from
14427         simplify_using_assignment; changed to return bool and to accept new
14428         args DEST and SRC.  Return true iff we find a source/destination pair
14429         that can be used to make a replacement, and fill SRC and DEST if so.
14430         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
14431         changed.
14432         (simplify_using_initial_values): Deal with altered regs here and track
14433         more precisely the effect they have on the validity of our expression.
14434
14435         * loop-iv.c (simplify_using_condition): A condition of the form
14436         (EQ REG CONST) can be used to simply make a substitution.
14437         (simplify_using_initial_values): Keep track of conditions we have seen
14438         and keep using them to simplify new expressions, while applying the
14439         same substitutions to them as to the expression.
14440
14441         * simplify-rtx.c (simplify_relational_operation_1): Simplify
14442         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
14443         GEU/LTU reversed.
14444
14445         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
14446         changed.  Use this when trying to improve the upper bound.
14447         Generate the comparison by using simplify_gen_relational.
14448
14449         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
14450
14451         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
14452         functions.
14453         (simplify_using_assignment, simplify_using_initial_values): Call
14454         replace_in_expr to make replacements.  Call replace_single_def_regs
14455         once on the initial version of the expression.
14456
14457 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14458
14459         PR target/27237
14460         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
14461
14462 2009-03-31  Richard Guenther  <rguenther@suse.de>
14463
14464         PR middle-end/31029
14465         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
14466         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
14467
14468 2009-03-31  Richard Guenther  <rguenther@suse.de>
14469
14470         * tree.h (div_if_zero_remainder): Declare.
14471         * fold-const.c (div_if_zero_remainder): Export.
14472         * tree-ssa-forwprop.c
14473         (forward_propagate_addr_into_variable_array_index): Handle
14474         constant array index addition outside of the variable index.
14475
14476 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14477
14478         PR target/39592
14479         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
14480         define_splits, floatunssi<mode>2): Require x87 conversions from
14481         DImode to be permitted.
14482
14483 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14484
14485         PR preprocessor/15638
14486         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
14487
14488 2009-03-31  Richard Guenther  <rguenther@suse.de>
14489
14490         PR middle-end/23401
14491         PR middle-end/27810
14492         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
14493         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
14494         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
14495         a separate statement.
14496         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
14497         (lookup_tmp_var): Likewise.
14498         (is_gimple_formal_tmp_or_call_rhs): Remove.
14499         (is_gimple_reg_or_call_rhs): Rename to ...
14500         (is_gimple_reg_rhs_or_call): ... this.
14501         (is_gimple_mem_or_call_rhs): Rename to ...
14502         (is_gimple_mem_rhs_or_call): ... this.
14503         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
14504         DECL_GIMPLE_REG_P only if is_formal is true.
14505         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
14506         for non-proper post-modify expression gimplification.
14507         (gimplify_self_mod_expr): For post-modify expressions gimplify
14508         the lvalue to a minimal lvalue.
14509         (rhs_predicate_for): Remove formal temp case.
14510         (gimplify_modify_expr_rhs): Likewise.
14511         (gimplify_addr_expr): Use is_gimple_reg.
14512         (gimplify_expr): Remove formal temp cases.
14513         (gimple_regimplify_operands): Likewise.
14514         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
14515         and FILTER_EXPR like constants.
14516         * gimple.c (walk_gimple_op): Fix val_only initialization, use
14517         is_gimple_reg.
14518         (is_gimple_formal_tmp_rhs): Remove.
14519         (is_gimple_reg_rhs): Remove special casing.
14520         (is_gimple_mem_rhs): Fix.
14521         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
14522         (is_gimple_formal_tmp_var): Remove.
14523         (is_gimple_formal_tmp_reg): Likewise.
14524         (is_gimple_min_lval): Allow invariant component ref parts.
14525         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
14526         is_gimple_formal_tmp_reg): Remove declarations.
14527         * tree-cfg.c (verify_expr): Verify that variables with address
14528         taken do not have DECL_GIMPLE_REG_P set.
14529         * tree-mudflap.c (mf_build_check_statement_for): Use
14530         force_gimple_operand instead of gimplify_expr.
14531
14532 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
14533
14534         * modulo-sched.c (sms_schedule_by_order): Pass the actual
14535         schedulable rows to compute_split_row.
14536
14537 2009-03-31  Ben Elliston  <bje@au.ibm.com>
14538
14539         PR target/31635
14540         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
14541         OPT_mvrsave.
14542
14543 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14544
14545         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
14546         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
14547         * configure: Regenerate.
14548         * config.in: Regenerate.
14549         * config/rs6000/rs6000.opt (mtls-markers): Add.
14550         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
14551         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
14552         (tls_ld_aix, tls_ld_sysv): Likewise.
14553         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
14554         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
14555
14556 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14557
14558         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
14559
14560 2009-03-30  Jan Hubicka  <jh@suse.cz>
14561
14562         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
14563         out of RESX.
14564         (tree_remove_unreachable_handlers): Cleanup EH predecestor
14565         detection and label handling.
14566
14567 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14568
14569         * ira-int.h (ira_allocno): Rename left_conflicts_num to
14570         left_conflicts_size.
14571         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
14572         ALLOCNO_LEFT_CONFLICTS_SIZE.
14573
14574         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
14575         remove_allocno_from_bucket_and_push,
14576         allocno_spill_priority_compare, push_allocnos_to_stack,
14577         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14578         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
14579         (setup_allocno_left_conflicts_num): Ditto.  Rename to
14580         setup_allocno_left_conflicts_size.
14581         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14582         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
14583         setup_allocno_left_conflicts_size instead of
14584         setup_allocno_left_conflicts_num.
14585
14586         * ira-build.c (ira_create_allocno): Use
14587         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
14588         ALLOCNO_LEFT_CONFLICTS_NUM.
14589
14590 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14591
14592         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14593         instead of DF_LR_OUT.
14594
14595         * ira-lives.c (process_bb_node_lives): Ditto.
14596
14597         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14598         instead of DF_LR_{OUT,IN}.
14599
14600         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14601
14602         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14603
14604 2009-03-30  Jan Hubicka  <jh@suse.cz>
14605
14606         * except.c (label_to_region_map): Fix thinko.
14607
14608 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
14609
14610         PR middle-end/38237
14611         * tree.h (tree_find_value): New declaration.
14612         * tree.c (tree_find_value): New function.
14613         * varasm.c (assemble_external): Avoid duplicate entries on lists.
14614
14615 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
14616
14617         PR debug/39563
14618         * c-decl.c (struct c_binding): Add locus field.
14619         (bind): Add locus argument, set locus field from it.
14620         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
14621         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
14622         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
14623         implicitly_declare, undeclared_variable, lookup_label,
14624         declare_label, c_make_fname_decl, c_builtin_function,
14625         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
14626         bind callers.
14627
14628 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
14629
14630         PR target/38781
14631         * config/i386/i386.c (classify_argument): Check total size of
14632         structure.
14633
14634 2009-03-30  Martin Jambor  <mjambor@suse.cz>
14635
14636         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
14637         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
14638         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
14639         respectively.
14640
14641         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
14642         seen_variable_array_ref while also traversing a union.
14643
14644         * tree-inline.c (optimize_inline_calls): Do not call
14645         cgraph_node_remove_callees.
14646         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
14647         (pass_remove_cgraph_callee_edges): New variable.
14648         * passes.c (init_optimization_passes): Add
14649         pass_remove_cgraph_callee_edges after early inlining and before all
14650         late intraprocedural passes.
14651
14652         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
14653
14654 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14655
14656         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
14657         Fix typos in names.
14658
14659 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14660
14661         * combine.c (simplify_comparison): Use have_insn_for.
14662         * dojump.c (do_jump): Likewise.
14663
14664 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14665
14666         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
14667         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
14668         sparc_compare_op0 like sparc_compare_emitted used to be handled.
14669         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
14670         instead of sparc_compare_emitted.
14671         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
14672         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
14673         instead of sparc_compare_emitted.
14674
14675 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14676
14677         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
14678         enter/exit cfglayout mode.
14679         (pass_partition_block): Require it.
14680         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
14681         (combine_instructions): Track basic blocks instead of labels.
14682         (update_cfg_for_uncondjump): New.
14683         (try_combine): Use it.  Update jumps after rescanning.
14684         (pass_combine): Require PROP_cfglayout.
14685         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
14686
14687 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14688
14689         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
14690         Provide/destroy PROP_cfglayout respectively.
14691         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
14692         * tree-pass.h (PROP_cfglayout): New.
14693
14694 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14695
14696         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
14697         fold_convert_const_fixed_from_fixed,
14698         fold_convert_const_fixed_from_int,
14699         fold_convert_const_fixed_from_real, fold_negate_const): Do not
14700         set TREE_CONSTANT_OVERFLOW.
14701         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
14702         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
14703
14704 2009-03-30  Ira Rosen  <irar@il.ibm.com>
14705
14706         * tree-vect-loop-manip.c: New file.
14707         * tree-vectorizer.c: Update documentation and included files.
14708         (vect_loop_location): Make extern.
14709         (rename_use_op): Move to tree-vect-loop-manip.c
14710         (rename_variables_in_bb, rename_variables_in_loop,
14711         slpeel_update_phis_for_duplicate_loop,
14712         slpeel_update_phi_nodes_for_guard1,
14713         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
14714         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
14715         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
14716         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
14717         find_loop_location): Likewise.
14718         (new_stmt_vec_info): Move to tree-vect-stmts.c.
14719         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
14720         get_vectype_for_scalar_type, vect_is_simple_use,
14721         supportable_widening_operation, supportable_narrowing_operation):
14722         Likewise.
14723         (bb_in_loop_p): Move to tree-vect-loop.c.
14724         (new_loop_vec_info, destroy_loop_vec_info,
14725         reduction_code_for_scalar_code, report_vect_op,
14726         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
14727         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
14728         (vect_supportable_dr_alignment): Likewise.
14729         * tree-vectorizer.h (tree-data-ref.h): Include.
14730         (vect_loop_location): Declare.
14731         Reorganize function declarations according to the new file structure.
14732         * tree-vect-loop.c: New file.
14733         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
14734         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
14735         * tree-vect-data-refs.c: New file.
14736         * tree-vect-patterns.c (timevar.h): Don't include.
14737         * tree-vect-stmts.c: New file.
14738         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
14739         tree-vect-slp.c, tree-vect-loop.c.
14740         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
14741         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
14742         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
14743         (tree-vect-analyze.o): Remove.
14744         (tree-vect-transform.o): Likewise.
14745         (tree-vect-data-refs.o): Add rule.
14746         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
14747         tree-vect-slp.o): Likewise.
14748         (tree-vect-patterns.o): Remove redundant dependencies.
14749         (tree-vectorizer.o): Likewise.
14750         * tree-vect-slp.c: New file.
14751
14752 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14753
14754         * optc-gen.awk: Warn if an option flag has multiple different
14755         help strings.
14756
14757 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
14758
14759         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
14760         -floop-block): Document dependences on PPL, CLooG and Graphite.
14761
14762 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14763
14764         PR rtl-optimization/323
14765         * c-common.c (c_fully_fold, convert_and_check,
14766         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
14767         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
14768         * c-common.def (EXCESS_PRECISION_EXPR): New.
14769         * c-cppbuiltin.c (builtin_define_float_constants): Define
14770         constants with enough digits for long double.
14771         * c-lex.c (interpret_float): Interpret constant with excess
14772         precision where appropriate.
14773         * c-opts.c (c_common_post_options): Set
14774         flag_excess_precision_cmdline.  Give an error for
14775         -fexcess-precision=standard for C++ for processors where the
14776         option is significant.
14777         * c-parser.c (c_parser_conditional_expression): Handle excess
14778         precision in condition.
14779         * c-typeck.c (convert_arguments): Handle arguments with excess
14780         precision.
14781         (build_unary_op): Move excess precision outside operation.
14782         (build_conditional_expr): Likewise.
14783         (build_compound_expr): Likewise.
14784         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
14785         (build_modify_expr): Handle excess precision in RHS.
14786         (convert_for_assignment): Handle excess precision in converted
14787         value.
14788         (digest_init, output_init_element, process_init_element): Handle
14789         excess precision in initializer.
14790         (c_finish_return): Handle excess precision in return value.
14791         (build_binary_op): Handle excess precision in operands and add
14792         excess precision as needed for operation.
14793         * common.opt (-fexcess-precision=): New option.
14794         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
14795         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14796         For standard excess precision, output explicit conversion to and
14797         truncation from XFmode.
14798         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
14799         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
14800         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
14801         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
14802         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
14803         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
14804         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
14805         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
14806         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
14807         define_splits, sqrt<mode>2): Disable where appropriate for
14808         standard excess precision.
14809         * convert.c (convert_to_real): Do not shorten arithmetic to type
14810         for which excess precision would be used.
14811         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
14812         * doc/invoke.texi (-fexcess-precision=): Document option.
14813         (-mfpmath=): Correct index entry.
14814         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
14815         flag_excess_precision): New.
14816         * langhooks.c (lhd_post_options): Set
14817         flag_excess_precision_cmdline.
14818         * opts.c (common_handle_option): Handle -fexcess-precision=.
14819         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
14820         init_excess_precision): New.
14821         (lang_dependent_init_target): Call init_excess_precision.
14822         * tree.c (excess_precision_type): New.
14823         * tree.h (excess_precision_type): Declare.
14824
14825 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14826
14827         PR c/35235
14828         * c-typeck.c (build_component_ref): Do not copy qualifiers from
14829         non-lvalue to component.
14830
14831 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14832
14833         PR preprocessor/34695
14834         * Makefile.in (c-opts.o): Depend on c-tree.h.
14835         * c-common.c: Move down include of diagnostic.h.
14836         (done_lexing, c_cpp_error): New.
14837         * c-common.h (done_lexing): Declare.
14838         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
14839         (parse_in).
14840         * c-opts.c: Include c-tree.h.
14841         (c_common_init_options): Set preprocessor error callback.
14842         (c_common_handle_option): Do not set preprocessor
14843         inhibit_warnings, warnings_are_errors, warn_system_headers,
14844         pedantic_errors or inhibit_warnings flags.
14845         (c_common_post_options): Do not check cpp_errors (parse_in).
14846         (c_common_finish): Do not output dependencies if there were
14847         errors.  Do not check return value of cpp_finish.
14848         * c-ppoutput.c (pp_file_change): Set input_location.
14849         * c-tree.h (c_cpp_error): Declare.
14850         * diagnostic.c (diagnostic_set_info_translated): Also initialize
14851         override_column.
14852         (diagnostic_build_prefix): Check override_column.
14853         * diagnostic.h (diagnostic_info): Add override_column field.
14854         (diagnostic_override_column): Define.
14855
14856 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
14857
14858         * c-common.c (c_expand_expr, c_staticp): Remove.
14859         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
14860         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
14861         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
14862         * c-gimplify.c (gimplify_compound_literal_expr,
14863         optimize_compound_literals_in_ctor): Remove.
14864         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
14865         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
14866         * c-semantics.c (emit_local_var): Remove.
14867
14868         * langhooks-def.h (lhd_expand_expr): Remove.
14869         * langhooks.c (lhd_expand_expr): Remove.
14870         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
14871
14872         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
14873         handling from c-semantics.c; don't call into langhook.
14874         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
14875         * gimplify.c (gimplify_compound_literal_expr,
14876         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
14877         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
14878         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
14879         as was done in c-gimplify.c.
14880         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
14881         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
14882         Move from c-common.h.
14883         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
14884
14885         * tree.c (staticp): Do not call langhook.
14886         * langhooks.c (lhd_staticp): Delete.
14887         * langhooks-def.h (lhd_staticp): Delete prototype.
14888         (LANG_HOOKS_STATICP): Delete.
14889         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
14890
14891         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
14892         instead of DECL_STMTs.
14893
14894 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14895
14896         PR c/456
14897         PR c/5675
14898         PR c/19976
14899         PR c/29116
14900         PR c/31871
14901         PR c/35198
14902         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
14903         void_type_node.
14904         (fold_call_expr): Return a NOP_EXPR from folding rather than the
14905         contained expression.
14906         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
14907         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
14908         conditional expressions for C.
14909         (decl_constant_value_for_optimization): Move from
14910         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
14911         whether optimizing and that the expression is a VAR_DECL not of
14912         array type instead of doing such checks in the caller.  Do not
14913         check pedantic.  Call gcc_unreachable for C++.
14914         * c-common.def (C_MAYBE_CONST_EXPR): New.
14915         * c-common.h (c_fully_fold, c_save_expr,
14916         decl_constant_value_for_optimization): New prototypes.
14917         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14918         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14919         EXPR_INT_CONST_OPERANDS): Define.
14920         * c-convert.c (convert): Strip nops from expression.
14921         * c-decl.c (groktypename): Take extra parameters expr and
14922         expr_const_operands.  Update call to grokdeclarator.
14923         (start_decl): Update call to grokdeclarator.  Add statement for
14924         expressions used in type of decl.
14925         (grokparm): Update call to grokdeclarator.
14926         (push_parm_decl): Update call to grokdeclarator.
14927         (build_compound_literal): Add parameter non_const and build a
14928         C_MAYBE_COSNT_EXPR if applicable.
14929         (grokdeclarator): Take extra parameters expr and
14930         expr_const_operands.  Track expressions used in declaration
14931         specifiers and declarators.  Fold array sizes and track whether
14932         they are constant expressions and whether they are integer
14933         constant expressions.
14934         (parser_xref_tag): Set expr and expr_const_operands fields in
14935         return value.
14936         (grokfield): Update call to grokdeclarator.
14937         (start_function): Update call to grokdeclarator.
14938         (build_null_declspecs): Set expr and expr_const_operands fields in
14939         return value.
14940         (declspecs_add_type): Handle expressions in typeof specifiers.
14941         * c-parser.c (c_parser_declspecs): Set expr and
14942         expr_const_operands fields for declaration specifiers.
14943         (c_parser_enum_specifier): Likewise.
14944         (c_parser_struct_or_union_specifier): Likewise.
14945         (c_parser_typeof_specifier): Likewise.  Update call to
14946         groktypename.  Fold expression as needed.  Return expressions with
14947         type instead of adding statements.
14948         (c_parser_attributes): Update calls to c_parser_expr_list.
14949         (c_parser_statement_after_labels): Fold expression before passing
14950         to objc_build_throw_stmt.
14951         (c_parser_condition): Fold expression.
14952         (c_parser_asm_operands): Fold expression.
14953         (c_parser_conditional_expression): Use c_save_expr.  Update call
14954         to build_conditional_expr.
14955         (c_parser_alignof_expression): Update call to groktypename.
14956         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
14957         original_code.  Fold expression argument of va_arg.  Create
14958         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
14959         argument to va_arg.  Update calls to groktypename.  Fold array
14960         index for offsetof.  Verify that first argument to
14961         __builtin_choose_expr has integer type.
14962         (c_parser_postfix_expression_after_paren_type): Update calls to
14963         groktypename and build_compound_literal.  Handle expressions with
14964         side effects in type name.
14965         (c_parser_postfix_expression_after_primary): Update call to
14966         c_parser_expr_list.  Set original_code for calls to
14967         __builtin_constant_p.
14968         (c_parser_expr_list): Take extra parameter fold_p.  Fold
14969         expressions if requested.
14970         (c_parser_objc_type_name): Update call to groktypename.
14971         (c_parser_objc_synchronized_statement): Fold expression.
14972         (c_parser_objc_receiver): Fold expression.
14973         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
14974         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
14975         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
14976         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
14977         (struct c_typespec): Add elements expr and expr_const_operands.
14978         (struct c_declspecs): Add elements expr and expr_const_operands.
14979         (groktypename, build_conditional_expr, build_compound_literal):
14980         Update prototypes.
14981         (in_late_binary_op): Declare.
14982         * c-typeck.c (note_integer_operands): New function.
14983         (in_late_binary_op): New variable.
14984         (decl_constant_value_for_broken_optimization): Move to c-common.c
14985         and rename to decl_constant_value_for_optimization.
14986         (default_function_array_conversion): Do not strip nops.
14987         (default_conversion): Do not call
14988         decl_constant_value_for_broken_optimization.
14989         (build_array_ref): Do not fold result.
14990         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
14991         result when operand is a VLA.
14992         (c_expr_sizeof_type): Update call to groktypename.  Handle
14993         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
14994         result when operand names a VLA type.
14995         (build_function_call): Update call to build_compound_literal.
14996         Only fold result for calls to __builtin_* functions.  Strip
14997         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
14998         the function designator.
14999         (convert_arguments): Fold arguments.  Update call to
15000         convert_for_assignment.
15001         (build_unary_op): Handle increment and decrement of
15002         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
15003         decrement earlier.  Fold operand of increment and decrement.
15004         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
15005         built for integer operand.  Wrap returns that are INTEGER_CSTs
15006         without being integer constant expressions or that have integer
15007         constant operands without being INTEGER_CSTs.
15008         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
15009         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
15010         result is an integer constant expression or can be used in
15011         unevaluated parts of one and avoid folding and wrap as
15012         appropriate.  Fold operands before possibly doing -Wsign-compare
15013         warnings.
15014         (build_compound_expr): Wrap result for C99 if operands can be used
15015         in integer constant expressions.
15016         (build_c_cast): Update call to digest_init.  Do not ignore
15017         overflow from casting floating-point constants to integers.  Wrap
15018         results that could be confused with integer constant expressions,
15019         null pointer constants or floating-point constants.
15020         (c_cast_expr): Update call to groktypename.  Handle expressions
15021         included in type name.
15022         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
15023         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
15024         Update calls to convert_for_assignment.
15025         (convert_for_assignment): Take new parameter
15026         null_pointer_constant.  Do not strip nops or call
15027         decl_constant_value_for_broken_optimization.  Set
15028         in_late_binary_op for conversions to boolean.
15029         (store_init_value): Update call to digest_init.
15030         (digest_init): Take new parameter null_pointer_constant.  Do not
15031         call decl_constant_value_for_broken_optimization.  pedwarn for
15032         initializers not constant expressions.  Update calls to
15033         convert_for_assignment.
15034         (constructor_nonconst): New.
15035         (struct constructor_stack): Add nonconst element.
15036         (really_start_incremental_init, push_init_level, pop_init_level):
15037         Handle constructor_nonconst and nonconst element.
15038         (set_init_index): Call constant_expression_warning for array
15039         designators.
15040         (output_init_element): Fold value.  Set constructor_nonconst as
15041         applicable.  pedwarn for initializers not constant expressions.
15042         Update call to digest_init.  Call constant_expression_warning
15043         where constant initializers are required.
15044         (process_init_element): Use c_save_expr.
15045         (c_finish_goto_ptr): Fold expression.
15046         (c_finish_return): Fold return value.  Update call to
15047         convert_for_assignment.
15048         (c_start_case): Fold switch expression.
15049         (c_process_expr_stmt): Fold expression.
15050         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
15051         ensure statement expression is not evaluated in constant expression.
15052         (build_binary_op): Track whether results are integer constant
15053         expressions or may occur in such, disable folding and wrap results
15054         as applicable.  Fold operands for -Wsign-compare warnings unless
15055         in_late_binary_op.
15056         (c_objc_common_truthvalue_conversion): Handle results folded to
15057         integer constants that are not integer constant expressions.
15058         * doc/extend.texi: Document when typeof operands are evaluated,
15059         that condition of __builtin_choose_expr is an integer constant
15060         expression, and more about use of __builtin_constant_p in
15061         initializers.
15062
15063 2009-03-29  Richard Guenther  <rguenther@suse.de>
15064
15065         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
15066         propagate addresses of array references.
15067
15068 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
15069
15070         * regmove.c (perhaps_ends_bb_p): Remove.
15071         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
15072         from INSN and check that the main loop stays within that basic block.
15073         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
15074         (regmove_forward_pass): Split out from regmove_optimize.  Use
15075         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
15076         (regmove_backward_pass): Split out from regmove_optimize.  Use
15077         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
15078         (regmove_optimize): Simplify.
15079
15080 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
15081
15082         PR target/39545
15083         * config/i386/i386.c (classify_argument): Ignore flexible array
15084         member in struct and warn ABI change.
15085
15086 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
15087
15088         * config/i386/i386-protos.h (ix86_agi_dependent): New.
15089
15090         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
15091         (ix86_adjust_cost): Updated.
15092
15093 2009-03-29  Jan Hubicka  <jh@suse.cz>
15094
15095         PR middle-end/28850
15096         * tree-pass.h (pass_cleanup_eh): New function.
15097         (remove_unreachable_regions): Break code handling RTL
15098         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
15099         that can not be reached by runtime.
15100         (can_be_reached_by_runtime): New function.
15101         (label_to_region_map): New function.
15102         (num_eh_regions): New function.
15103         (rtl_remove_unreachable_regions): New function.
15104         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
15105         (remove_eh_region): New function.
15106         * except.h: Include sbitmap and vecprim.
15107         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
15108         num_eh_regions): Declare.
15109         * passes.c (init_optimization_passes): Schedule cleanup_eh.
15110         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
15111         * tree-eh.c (tree_remove_unreachable_handlers): New function.
15112         (tree_empty_eh_handler_p): New function.
15113         (cleanup_empty_eh): New function.
15114         (cleanup_eh): New function.
15115         (pass_cleanup_eh): New function.
15116
15117 2009-03-29  Jan Hubicka  <jh@suse.cz>
15118
15119         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
15120         for removed regions.
15121
15122 2009-03-29  Jan Hubicka  <jh@suse.cz>
15123
15124         * except.c (dump_eh_tree): Dump all datastructures.
15125
15126 2009-03-29  Jan Hubicka  <jh@suse.cz>
15127
15128         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
15129         (duplicate_eh_regions_1): Likewise.
15130         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
15131         vector; call EH verification.
15132         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15133         Be ready for region being removed.
15134
15135 2009-03-29  Jan Hubicka  <jh@suse.cz>
15136
15137         * bitmap.c (bitmap_last_set_bit): New function.
15138         * bitmap.h (bitmap_last_set_bit): Declare.
15139
15140 2009-03-29  David Ayers  <ayers@fsfe.org>
15141
15142         PR objc/27377
15143         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
15144         by calling objc_compare_types and surpress warnings about
15145         incompatible C pointers that are compatible ObjC pointers.
15146
15147 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
15148
15149         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
15150         call initialize_inline_failed.
15151         (initialize_inline_failed): Move it from here ...
15152         * cgraph.c (initialize_inline_failed): ... to here.
15153         (cgraph_create_edge): Call initialize_inline_failed rather than
15154         setting inline_failed directly.
15155
15156 2009-03-29  Ben Elliston  <bje@au.ibm.com>
15157
15158         PR target/32542
15159         * sysv4.opt (msdata): Improve comment.
15160         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
15161         * sysv4.h (SVR4_ASM_SPEC): Likewise.
15162
15163 2009-03-29  Ben Elliston  <bje@au.ibm.com>
15164
15165         PR target/30451
15166         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
15167         load and store attributes.
15168
15169 2009-03-29  Ben Elliston  <bje@au.ibm.com>
15170
15171         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
15172         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
15173         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
15174         * doc/extend.texi (X86 Built-in Functions): Add index entries for
15175         __builtin_infq and __builtin_huge_valq.
15176
15177 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
15178
15179         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
15180         atmega8m1 devices.
15181         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15182         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
15183
15184 2009-03-28  Xinliang David Li  <davidxl@google.com>
15185
15186         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
15187         (do_dbg_cnt): New function.
15188
15189 2009-03-28  Jan Hubicka  <jh@suse.cz>
15190
15191         Merge from pretty-ipa:
15192
15193         2009-03-27  Jan Hubicka  <jh@suse.cz>
15194
15195         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15196         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
15197         * passes.c (function_called_by_processed_nodes_p): New.
15198         * ipa-pure-const.c (check_call): Fix handling of operands.
15199         (analyze_function): Dump debug output for skipped bodies.
15200         (local_pure_const): Use function_called_by_processed_nodes_p.
15201         * dwarf2out.c (reference_to_unused): Use output.
15202         * passes.c (do_per_function_toporder): Likewise.
15203
15204         2008-11-12  Jan Hubicka  <jh@suse.cz>
15205
15206         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
15207         * ipa-pure-const.c (funct_state_d): Add can throw field; make
15208         state_set_in_source enum
15209         (check_decl): Ignore memory tags; do not set fake looping flags;
15210         dump diagnostics.
15211         (check_operand, check_tree, check_rhs_var, check_lhs_var,
15212         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
15213         (check_call, analyze_function): Rewrite.
15214         (check_stmt): New.
15215         (add_new_function): Update call of analyze_function.
15216         (generate_summary): Add call of analyze_function.
15217         (propagate): Propagate can_throw; handle state_set_in_source correctly.
15218         (local_pure_const): New function.
15219         (pass_local_pure_const): New pass.
15220         * ipa-inline.c (inline_transform): Set after_inlining.
15221         * tree-eh.c (stmt_can_throw_external): New.
15222         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
15223         work with aliasing built.
15224         * tree-flow.h (stmt_can_throw_external): New.
15225         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
15226         and local pure/const pass in early and late optimization queue.
15227
15228 2009-03-28  Martin Jambor  <mjambor@suse.cz>
15229
15230         * fold-const.c (get_pointer_modulus_and_residue): New parameter
15231         allow_func_align.
15232         (fold_binary): Allow function decl aligment consideration is the
15233         second argument is integer constant one.
15234         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
15235         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
15236         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
15237
15238 2009-03-28  Jan Hubicka  <jh@suse.cz>
15239
15240         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
15241         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
15242         * function.h (rtl_data): Add nothrow flag.
15243         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
15244         set DECL_NOTHROW for AVAILABLE functions.
15245
15246 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
15247
15248         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
15249         following vector keyword has expansion starting with pixel or bool
15250         keyword, expand vector to __vector and pixel or bool to __pixel or
15251         __bool.
15252
15253         PR c++/39554
15254         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
15255         warn_if_disallowed_function_p): Removed.
15256         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
15257         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
15258         warning_if_disallowed_function_p.
15259         * flags.h (warn_if_disallowed_function_p,
15260         warn_disallowed_functions): Removed.
15261         * common.opt (Wdisallowed-function-list=): Removed.
15262         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
15263
15264 2009-03-28  Richard Guenther  <rguenther@suse.de>
15265
15266         PR tree-optimization/38723
15267         * tree-ssa-pre.c (compute_avail): Add all default definitions to
15268         the entry block.
15269
15270 2009-03-28  Jan Hubicka  <jh@suse.cz>
15271
15272         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
15273         test introduced by my previous patch.
15274
15275 2009-03-28  Richard Guenther  <rguenther@suse.de>
15276
15277         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
15278         the PHIs value undefined.
15279
15280 2009-03-28  Jan Hubicka  <jh@suse.cz>
15281
15282         * tree-pass.h (pass_fixup_cfg): New pass.
15283         * ipa-inline.c (inline_transform): Set
15284         always_inline_functions_inlined/after_inlining.
15285         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
15286         (pass_fixup_cfg): New pass.
15287         * passes.c (init_optimization_passes): Add fixup_cfg.
15288
15289 2009-03-28  Richard Guenther  <rguenther@suse.de>
15290
15291         PR tree-optimization/38458
15292         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
15293         argument use the arguments copy-of value.
15294
15295 2009-03-28  Richard Guenther  <rguenther@suse.de>
15296
15297         PR tree-optimization/38180
15298         * tree-ssa-ccp.c (get_default_value): Simplify.
15299         (likely_value): Likewise.
15300         (surely_varying_stmt_p): Properly handle VOP case.
15301         (ccp_initialize): Likewise.
15302         (ccp_fold): Handle propagating through *&.
15303         (fold_const_aggregate_ref): Also handle decls.
15304
15305 2009-03-28  Jan Hubicka  <jh@suse.cz>
15306
15307         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15308         * cgraph.h (cgraph_node): Likewise.
15309         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
15310         (cgraph_reset_node): Use process flag.
15311         (cgraph_mark_functions_to_output): Likewise.
15312         (cgraph_expand_function): Likewise.
15313         (cgraph_expand_all_functions): Likewise.
15314         (cgraph_output_in_order): Likewise.
15315         * dwarf2out.c (reference_to_unused): Likewise.
15316         * passes.c do_per_function_toporder): Likewise.
15317
15318 2009-03-28  Jan Hubicka  <jh@suse.cz>
15319
15320         Bring from lto-branch:
15321
15322         2008-09-03  Doug Kwan  <dougkwan@google.com>
15323
15324         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
15325         enums instead of reason strings.
15326         * cgraph.c (cgraph_create_edge): Same.
15327         (cgraph_inline_failed_string): New function.
15328         * cgraph.h (cgraph_inline_failed_t): New enum type.
15329         (cgraph_inline_failed_string): New prototype.
15330         (struct cgraph_edge): Change type of INLINED_FAILED from constant
15331         char pointer to cgraph_inline_failed_t.
15332         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
15333         (cgraph_default_inline_p): Ditto.
15334         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
15335         to cgraph_inline_failed_t pointer.
15336         * cif-code.def: New file.
15337         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
15338         reason string.
15339         (cgraph_check_inline_limits): Change type of REASON to pointer to
15340         cgraph_inline_failed_t.  Replace reason strings with enums.
15341         (cgraph_default_inline_p): Ditto.
15342         (cgraph_recursive_inlining_p): Ditto.
15343         (update_caller_keys): Change type of FAILED_REASON to
15344         cgraph_inline_failed_t.
15345         (cgraph_set_inline_failed): Change type of REASON to pointer to
15346         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
15347         convert enums to strings for text output.
15348         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
15349         to be of type cgraph_inline_failed_t.  Replace reason strings with
15350         enums.  Call cgraph_inline_failed_string to covert enums
15351         to strings for text output.
15352         (cgraph_decide_inlining): Replace reason strings with enums.
15353         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
15354         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
15355         for text output.
15356         * tree-inline.c (expand_call_inline): Change type of REASON
15357         to cgraph_inline_failed_t.  Replace reason strings with enums.
15358         Call cgraph_inline_failed_string for text output.
15359         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
15360         (cgraph.o): Ditto.
15361
15362 2009-03-28  Jan Hubicka  <jh@suse.cz>
15363
15364         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
15365         cgraph_clone_node): Remove master clone handling.
15366         (cgraph_is_master_clone, cgraph_master_clone): Remove.
15367         * cgraph.h (master_clone): Remove.
15368         (cgraph_is_master_clone, cgraph_master_clone): Remove.
15369         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
15370         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
15371
15372 2009-03-28  Jan Hubicka  <jh@suse.cz>
15373
15374         * cgraph.c (cgraph_function_body_availability): Functions declared
15375         inline are always safe to assume that it is not going to be replaced.
15376
15377 2009-03-28  Richard Guenther  <rguenther@suse.de>
15378
15379         PR tree-optimization/38513
15380         * tree-ssa-pre.c (eliminate): Remove redundant stores.
15381         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
15382         EXC_PTR_EXPR and FILTER_EXPR.
15383         (get_ref_from_reference_ops): Likewise.
15384
15385 2009-03-28  Richard Guenther  <rguenther@suse.de>
15386
15387         PR tree-optimization/38968
15388         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
15389         Use FLOOR_MOD_EXPR to compute misalignment.
15390
15391 2009-03-28  Richard Guenther  <rguenther@suse.de>
15392
15393         PR tree-optimization/37795
15394         * tree.h (combine_comparisons): Declare.
15395         * fold-const.c (combine_comparisons): Export.
15396         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
15397         comparisons.
15398         (ifcombine_iforif): Use combine_comparisons.
15399
15400 2009-03-28  Jan Hubicka  <jh@suse.cz>
15401
15402         * tree-eh.c (inlinable_call_p): New function.
15403         (make_eh_edges): Use it.
15404         (verify_eh_edges): Use it.
15405         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
15406         * except.c (reachable_next_level): Add inlinable_function argument
15407         (sjlj_find_directly_reachable_regions): Update.
15408         (add_reachable_handler): Do not set saw_any_handlers.
15409         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
15410         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15411         Add new inlinable call parameter.
15412         (can_throw_internal, can_throw_external): Update.
15413         * except.h (can_throw_internal_1, can_throw_external_1,
15414         foreach_reachable_handler): Update declaration.
15415
15416 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
15417
15418         * config/arm/t-arm-coff, config/h8300/coff.h,
15419         config/i386/i386-aout.h, config/i386/i386-coff.h,
15420         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
15421         config/pdp11/2bsd.h, config/rs6000/aix41.h,
15422         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
15423         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
15424         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
15425         sys-types.h: Remove.
15426         * Makefile.in: Remove protoize and fixproto support and references
15427         in comments.
15428         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
15429         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
15430         Remove.
15431         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
15432         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
15433         unprotoize$(exeext).
15434         (rest.encap): Don't depend on $(STMP_FIXPROTO)
15435         (.PHONY): Don't depend on proto.
15436         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
15437         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
15438         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
15439         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
15440         build/gen-protos.o, build/scan.o, xsys-protos.h,
15441         build/fix-header$(build_exeext), build/fix-header.o,
15442         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
15443         stmp-install-fixproto): Remove.
15444         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
15445         SYSCALLS.c or fixproto files.
15446         (install-common): Don't install protoize.
15447         (install-headers-tar, install-headers-cpio, install-headers-cp):
15448         Don't depend on $(STMP_FIXPROTO).
15449         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
15450         install fixproto files or write out fixproto settings.
15451         (uninstall): Don't uninstall protoize.
15452         * config.gcc (use_fixproto): Remove.
15453         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
15454         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
15455         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
15456         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
15457         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
15458         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
15459         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
15460         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
15461         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
15462         * config/t-vxworks (STMP_FIXPROTO): Remove.
15463         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
15464         STMP_FIXPROTO): Remove.
15465         * config.in, configure: Regenerate.
15466         * crtstuff.c (gid_t, uid_t): Don't undefine.
15467         * doc/install.texi: Change m68k-coff to m68k-elf in example.
15468         (arm-*-coff, arm-*-aout: Remove target entries.
15469         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
15470         Remove mention of AIX 4.1.
15471         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
15472         * doc/invoke.texi (Running Protoize): Remove.
15473         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
15474         (Protoize Caveats): Remove.
15475         * tsystem.h: Update comments on headers assumed to exist.
15476
15477 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15478
15479         * genautomata.c: Add a new year to the copyright.  Add a new
15480         reference.
15481         (struct insn_reserv_decl): Add comments for member bypass_list.
15482         (find_bypass): Remove.
15483         (insert_bypass): New.
15484         (process_decls): Use insert_bypass.
15485         (output_internal_insn_latency_func): Output all bypasses with the
15486         same input insn in one switch case.
15487
15488         * rtl.def (define_bypass): Describe bypass choice.
15489         * doc/md.texi (define_bypass): Ditto.
15490
15491 2009-03-27  Richard Guenther  <rguenther@suse.de>
15492
15493         * gimplify.c (mark_addressable): Export.
15494         * tree-flow.h (mark_addressable): Declare.
15495         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
15496         * tree-ssa.c (verify_phi_args): Verify that address taken
15497         variables have TREE_ADDRESSABLE set.
15498
15499 2009-03-27  Richard Guenther  <rguenther@suse.de>
15500
15501         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
15502         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
15503         Do not mark decls TREE_ADDRESSABLE.
15504         (build_fold_addr_expr): Adjust.
15505         (fold_addr_expr): Remove.
15506         (fold_unary): Use build_fold_addr_expr.
15507         (fold_comparison): Likewise.
15508         (split_address_to_core_and_offset): Likewise.
15509         * coverage.c (tree_coverage_counter_addr): Mark the array decl
15510         TREE_ADDRESSABLE.
15511         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
15512         (gimplify_modify_expr_to_memcpy): Mark source and destination
15513         addressable.
15514         * omp-low.c (create_omp_child_function): Mark the object decl
15515         TREE_ADDRESSABLE.
15516         (lower_rec_input_clauses): Mark the var we take the address of
15517         TREE_ADDRESSABLE.
15518         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
15519
15520 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15521
15522         PR middle-end/39315
15523         * cfgexpand.c (expand_one_stack_var_at): Change alignment
15524         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
15525
15526 2009-03-27  Richard Guenther  <rguenther@suse.de>
15527
15528         PR tree-optimization/39120
15529         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
15530         constraints.
15531         (handle_lhs_call): Process return constraints.  Add escape
15532         constraints if necessary.
15533         (handle_const_call): Fill out return constraints.  Make nested
15534         case more precise.  Avoid consttmp if possible.
15535         (handle_pure_call): Fill out return constraints.  Avoid
15536         callused if possible.
15537         (find_func_aliases): Simplify call handling.
15538
15539 2009-03-27  Richard Guenther  <rguenther@suse.de>
15540
15541         PR tree-optimization/39120
15542         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
15543         as a representative.
15544         (solve_graph): Do propagate CALLUSED.
15545         (handle_pure_call): Use a scalar constraint from CALLUSED for
15546         the return value.
15547         (find_what_p_points_to): CALLUSED shall not appear in poins-to
15548         solutions.
15549
15550 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15551
15552         PR c/39323
15553         * c-common.c (handle_aligned_attribute): Properly check alignment
15554         overflow.  Use (1U << i) instead of (1 << i).
15555
15556         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
15557
15558         * expr.h (get_mem_align_offset): Updated.
15559
15560         * tree.h (tree_decl_common): Change align to "unsigned int" and
15561         move it before pointer_alias_set.
15562
15563 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15564             Jakub Jelinek  <jakub@redhat.com>
15565
15566         PR target/38034
15567         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
15568         gr_register_operand with gr_reg_or_0_operand.
15569         (cmpxchg_rel_di): Likewise.
15570         (sync_lock_test_and_set<mode>): Likewise.
15571
15572 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15573
15574         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
15575         (true_regnum): Likewise.
15576
15577         * rtlanal.c (subreg_info): Moved to ...
15578         * rtl.h (subreg_info): Here.  New.
15579         (subreg_get_info): New.
15580
15581         * rtlanal.c (subreg_get_info): Make it extern.
15582
15583 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15584
15585         PR target/39472
15586         * config/i386/i386.c (ix86_abi): New.
15587         (override_options): Handle -mabi=.
15588         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
15589         (ix86_call_abi_override): Likewise.
15590         (init_cumulative_args): Likewise.
15591         (function_arg_advance): Likewise.
15592         (function_arg_64): Likewise.
15593         (function_arg): Likewise.
15594         (ix86_pass_by_reference): Likewise.
15595         (ix86_function_value_regno_p): Likewise.
15596         (ix86_build_builtin_va_list_abi): Likewise.
15597         (setup_incoming_varargs_64): Likewise.
15598         (is_va_list_char_pointer): Likewise.
15599         (ix86_init_machine_status): Likewise.
15600         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
15601         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
15602         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
15603         (ix86_function_abi): Make it static and return enum calling_abi.
15604         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
15605         with ix86_abi.
15606         (ix86_fn_abi_va_list): Updated.
15607
15608         * config/i386/i386.h (ix86_abi): New.
15609         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
15610         (CONDITIONAL_REGISTER_USAGE): Likewise.
15611         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
15612         (machine_function): Likewise.
15613
15614         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
15615         with ix86_abi.
15616         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
15617         (STACK_BOUNDARY): Likewise.
15618         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
15619
15620         * config/i386/i386.opt (mabi=): New.
15621
15622         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
15623         return enum calling_abi.
15624         (ix86_function_type_abi): Likewise.
15625         (ix86_function_abi): Removed.
15626
15627         * doc/invoke.texi: Document -mabi= option for x86.
15628
15629 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15630
15631         * builtins.c (real_dconstp): Delete.
15632         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
15633
15634 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
15635             Jakub Jelinek  <jakub@redhat.com>
15636
15637         PR debug/37959
15638         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
15639         (gen_subprogram_die): When a function is explicit, generate the
15640         DW_AT_explicit attribute.
15641         * langhooks.h (struct lang_hooks_for_decls): Add
15642         function_decl_explicit_p langhook.
15643         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
15644         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
15645
15646 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
15647
15648         * builtins.c (fold_builtin_memory_op): Optimize memmove
15649         into memcpy if we can prove source and destination don't overlap.
15650
15651         * tree-inline.c: Include gt-tree-inline.h.
15652         (clone_fn_id_num): New variable.
15653         (clone_function_name): New function.
15654         (tree_function_versioning): Use it.
15655         * Makefile.in (GTFILES): Add tree-inline.c.
15656
15657 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
15658
15659         * BASE-VER: Change to 4.5.0.
15660
15661 2009-03-27  Xinliang David Li  <davidxl@google.com>
15662
15663         PR tree-optimization/39557
15664         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
15665
15666 2009-03-27  Xinliang David Li  <davidxl@google.com>
15667
15668         PR tree-optimization/39548
15669         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
15670         candidate check.
15671
15672 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15673
15674         * c-common.c (pointer_int_sum): Use %wd on return from
15675         tree_low_cst.
15676
15677 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15678
15679         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
15680         on return from tree_low_cst.
15681
15682 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15683
15684         PR c++/36799
15685         * ginclude/stdarg.h (va_copy): Define also for
15686         __GXX_EXPERIMENTAL_CXX0X__.
15687
15688 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15689
15690         PR c++/35652
15691         * builtins.h (c_strlen): Do not warn here.
15692         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
15693         * c-common.c (pointer_int_sum): Take an explicit location.
15694         Warn about offsets out of bounds.
15695         * c-common.h (pointer_int_sum): Adjust declaration.
15696
15697 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15698
15699         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
15700         markup glitch.
15701
15702 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
15703
15704         PR c++/39554
15705         * opts.c (warn_if_disallowed_function_p): Don't assume
15706         get_callee_fndecl must return non-NULL.
15707
15708 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
15709
15710         PR rtl-optimization/39522
15711         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
15712         when reg_reloaded_valid is set.
15713
15714 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15715
15716         * config/spu/divv2df3.c: New file.
15717         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
15718         (DPBIT_FUNCS): Filter out _div_df.
15719
15720 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
15721
15722         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
15723         a jump insn, count that jump in the distance to the loop start.
15724
15725 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15726
15727         PR target/39523
15728         * config/sh/sh.c (calc_live_regs): Fix condition for global
15729         registers except PIC_OFFSET_TABLE_REGNUM.
15730
15731 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
15732
15733         PR/39518
15734         * doc/invoke.texi (-mconsole): New.
15735         (-mcygwin): New.
15736         (-mno-cygwin): New.
15737         (-mdll): New.
15738         (-mnop-fun-dllimport): New.
15739         (-mthread): New.
15740         (-mwin32): New.
15741         (-mwindows): New.
15742         (sub section "i386 and x86-64 Windows Options"): New.
15743
15744 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
15745
15746         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
15747         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
15748
15749 2009-03-25  Richard Guenther  <rguenther@suse.de>
15750
15751         PR middle-end/39497
15752         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
15753         of -Wno-error.
15754
15755 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
15756
15757         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
15758         neither of haifa/selective schedulers are working.
15759
15760 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15761
15762         * doc/invoke.texi (Debugging Options): Fix description of
15763         -fno-merge-debug-strings.
15764
15765 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
15766
15767         * config/cris/libgcc.ver: New version-script.
15768         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
15769
15770         * configure.ac <GAS features, nop mnemonic>: Add pattern
15771         crisv32-*-* for "nop".
15772         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
15773         * configure: Regenerate.
15774
15775 2009-03-24  Ira Rosen  <irar@il.ibm.com>
15776
15777         PR tree-optimization/39529
15778         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
15779         mark_sym_for_renaming for the tag copied to the new vector
15780         pointer.
15781
15782 2009-03-24  Arthur Loiret  <aloiret@debian.org>
15783
15784         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
15785         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
15786         EXTRA_SPEC_FUNCTIONS.
15787         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
15788         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
15789         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
15790         -march and -mtune options.
15791
15792 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
15793
15794         * config/m68k/t-rtems: Add m5329 multilib.
15795
15796 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
15797             Jakub Jelinek  <jakub@redhat.com>
15798
15799         PR debug/39524
15800         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
15801         nodes.
15802
15803 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15804
15805         PR c/39495
15806         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
15807         instead of c_parser_expression_conv, if original_code isn't one of the
15808         4 allowed comparison codes, fail.
15809
15810 2009-03-23  Richard Guenther  <rguenther@suse.de>
15811
15812         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
15813         * tree.h (struct tree_type): Likewise.
15814         * reload.h (struct insn_chain): Likewise.
15815         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
15816         * function.h (struct function): Likewise.
15817         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
15818
15819 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15820
15821         PR tree-optimization/39516
15822         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
15823
15824 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
15825
15826         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
15827         should be set true if BITS_PER_WORD of target is bigger than 32
15828
15829 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
15830
15831         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
15832         Translate -B-options to -rpath-link.  Correct existing
15833         rpath-link and conditionalize on !nostdlib.
15834
15835 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15836
15837         * doc/extend.texi (Function Attributes, Variable Attributes):
15838         Fix typos.
15839         * doc/invoke.texi (Debugging Options, Optimize Options)
15840         (i386 and x86-64 Options, MCore Options): Likewise.
15841
15842 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
15843
15844         PR debug/37890
15845         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
15846         it for block local namespace aliases.
15847         (gen_decl_die): Pass context_die to gen_namespace_die.
15848
15849 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15850
15851         PR c/39495
15852         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
15853         minimum or maximum value.
15854
15855 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
15856
15857         * reginfo.c (globalize_reg): Recompute derived reg sets.
15858
15859 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
15860
15861         PR target/39063
15862         * libgcc2.c (mprotect): Do not use signed arguments for
15863         VirtualProtect, use DWORD arguments.  Also fix the 'may
15864         be used uninitialized' warning for the np variable.
15865
15866 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15867
15868         PR target/39496
15869         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
15870         functions using regparm calling conventions when not optimizing.
15871         (ix86_function_sseregparm): Similarly for sseregparm calling
15872         conventions.
15873
15874 2009-03-19  Li Feng  <nemokingdom@gmail.com>
15875
15876         PR middle-end/39500
15877         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
15878         dependence if the first conflict is after niter iterations.
15879
15880 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
15881
15882         PR middle-end/38609
15883         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
15884         functions with dynamic stack-pointer adjustments.
15885
15886 2009-03-19  Ben Elliston  <bje@au.ibm.com>
15887
15888         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
15889         option; change to -msdata=data.
15890
15891 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15892
15893         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
15894         and -fopenmp.
15895
15896 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
15897
15898         PR target/35180
15899         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
15900
15901 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
15902
15903         * doc/invoke.texi (Code Gen Options): Expand discussion of
15904         -fno-common.
15905
15906 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
15907
15908         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
15909         * matrix-reorg.c (struct matrix_info): Likewise.
15910         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
15911         * rtl.h (struct mem_attrs): Likewise.
15912         * df.h (struct df): Likewise.
15913         * tree-data-ref.h (struct data_dependence_relation): Likewise.
15914         * ira-int.h (struct ira_allocno): Likewise.
15915         * df-scan.c (struct df_collection_rec): Likewise.
15916         * ira.c (struct equivalence): Likewise.
15917         * function.c (struct temp_slot): Likewise.
15918         * cfgloop.h (struct loop): Likewise.
15919
15920         PR debug/39485
15921         * function.c (use_register_for_decl): When not optimizing, disregard
15922         register keyword for variables with types containing methods.
15923
15924 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
15925
15926         PR middle-end/39447
15927         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
15928         (is_simple_operand): Call contains_component_ref_p before calling data
15929         reference analysis that would fail on COMPONENT_REFs.
15930
15931         * tree-vrp.c (search_for_addr_array): Fix formatting.
15932
15933 2009-03-18  Richard Guenther  <rguenther@suse.de>
15934
15935         * tree-vect-transform.c (vect_loop_versioning): Fold the
15936         generated comparisons.
15937         * tree-vectorizer.c (set_prologue_iterations): Likewise.
15938         (slpeel_tree_peel_loop_to_edge): Likewise.
15939
15940 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15941
15942         PR middle-end/37805
15943         * opts.c (print_specific_help): In addition to `undocumented',
15944         accept `separate' and `joined' flags if passed alone.  Describe
15945         output by the first matched one of those.
15946         (common_handle_option): Skip over empty strings.
15947         * gcc.c (display_help): Fix help string for `--help='.
15948         * doc/invoke.texi (Option Summary, Overall Options): With
15949         `--help=', classes and qualifiers can both be repeated, but
15950         only the latter can be negated.  One should not pass only
15951         negated qualifiers.  Fix markup and examples.
15952
15953         Revert
15954         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
15955         PR middle-end/37805
15956         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
15957         and -fhelp=separate.
15958
15959 2009-03-17  Jing Yu  <jingyu@google.com>
15960
15961         PR middle-end/39378
15962         * function.h (struct rtl_data): Move is_thunk from here...
15963         (struct function): ...to here.
15964         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
15965         * varasm.c (assemble_start_function): Change is_thunk from crtl to
15966         cfun.
15967         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
15968         cfun.
15969         (alpha_does_function_need_gp, alpha_start_function): Likewise.
15970         (alpha_output_function_end_prologue): Likewise.
15971         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
15972         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
15973         (rs6000_output_function_epilogue): Likewise.
15974         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
15975
15976 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
15977
15978         PR target/39482
15979         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
15980         from different units in a single alternative.
15981         (*truncdfsf_i387): Ditto.
15982         (*truncxfsf2_mixed): Ditto.
15983         (*truncxfdf2_mixed): Ditto.
15984
15985 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
15986
15987         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
15988         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
15989
15990         PR debug/39474
15991         * tree-ssa-live.c (remove_unused_locals): Don't remove local
15992         unused non-artificial variables when not optimizing.
15993
15994         PR debug/39471
15995         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
15996         DW_TAG_imported_module even if decl is IMPORTED_DECL with
15997         NAMESPACE_DECL in its DECL_INITIAL.
15998
15999         PR middle-end/39443
16000         * optabs.c (set_user_assembler_libfunc): New function.
16001         * expr.h (set_user_assembler_libfunc): New prototype.
16002         * c-common.c: Include libfuncs.h.
16003         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
16004         for memcmp, memset, memcpy, memmove and abort.
16005         * Makefile.in (c-common.o): Depend on libfuncs.h.
16006
16007         PR debug/39412
16008         * dwarf2out.c (gen_inlined_enumeration_type_die,
16009         gen_inlined_structure_type_die, gen_inlined_union_type_die,
16010         gen_tagged_type_instantiation_die): Removed.
16011         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
16012         do nothing.
16013
16014 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
16015
16016         PR testsuite/38526
16017         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
16018         its use.
16019         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
16020         (check-parallel-%): Ditto.
16021         (check-consistency): Ditto.
16022
16023 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
16024
16025         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
16026         local variable rhs by NULL_TREE.
16027
16028 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16029
16030         PR target/39477
16031         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
16032
16033 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16034
16035         PR target/39476
16036         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
16037
16038 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16039
16040         PR target/39473
16041         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
16042         for ms->sysv ABI calls only in 64bit mode.
16043
16044         * config/i386/i386.md (untyped_call): Support 32bit.
16045
16046 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
16047
16048         * doc/extend.texi: Replace x86_65 with x86_64.
16049
16050 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
16051
16052         PR tree-optimization/39455
16053         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
16054         mismatches for POINTER_TYPE_P (type).
16055         (number_of_iterations_le): Likewise.
16056
16057 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16058
16059         * config/picochip/picochip.c: Removed profiling support.
16060         * config/picochip/picochip.md: Removed profiling instruction.
16061         * config/picochip/picochip.h: Removed profiling builtin.
16062
16063 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
16064
16065         * doc/install.texi (--with-host-libstdcxx): Document.
16066
16067 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
16068
16069         PR target/34299
16070         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
16071         generate a warning if the function name does not begin with
16072         "__vector" and the function has either the 'signal' or 'interrupt'
16073         attribute, from here to ...
16074         (avr_declare_function_name): ...here. New function.
16075         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
16076         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
16077
16078 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
16079
16080         PR bootstrap/39454
16081         * cse.c (fold_rtx): Don't modify original const_arg1 when
16082         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
16083         separate variable instead.
16084         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
16085         from out of range shift counts.
16086         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
16087
16088 2009-03-13  Catherine Moore  <clm@codesourcery.com>
16089
16090         * config/i386/x-mingw32 (host-mingw32.o): Replace
16091         diagnostic.h with $(DIAGNOSTIC_H).
16092
16093 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
16094
16095         PR target/39431
16096         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
16097         predicate.
16098         * config/i386/sync.md (sync_compare_and_swap<mode>,
16099         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
16100         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
16101         into a register.
16102         (sync_double_compare_and_swapdi_pic,
16103         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
16104         cmpxchg8b_pic_memory_operand instead of just memory_operand.
16105
16106 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
16107
16108         PR target/39445
16109         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
16110
16111 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
16112
16113         PR target/39327
16114         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16115         (avx_addsubv4df3): Likewise.
16116         (*avx_addsubv4sf3): Likewise.
16117         (sse3_addsubv4sf3): Likewise.
16118
16119 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
16120
16121         PR target/38824
16122         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
16123
16124 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
16125
16126         PR debug/39432
16127         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
16128         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
16129         registers for allocnos created from user-defined variables.
16130
16131 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16132
16133         PR target/39181
16134         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
16135         of non-integer mode as well.
16136
16137 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
16138
16139         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
16140         for functions for which the parameter types are unknown.
16141
16142 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
16143
16144         PR target/39137
16145         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
16146         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
16147         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
16148         * config/i386/i386.c (ix86_local_alignment): For
16149         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
16150         long long variables on the stack to avoid dynamic realignment.
16151         Allow the first argument to be a decl rather than type.
16152         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
16153
16154 2009-03-11  Nick Clifton  <nickc@redhat.com>
16155
16156         PR target/5362
16157         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
16158         options.
16159         Add description to mno-lsim option.
16160         * config/mcore/mcore.h: Remove comment about deprecated m4align
16161         option.
16162         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
16163         * doc/invoke.texi: Add description of mno-lsim and
16164         mstack-increment options.
16165
16166         * config/fr30/fr30.opt: Document the -mno-lsim option.
16167         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
16168         and -mno-lsim options.
16169
16170 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16171
16172         * fold-const.c (fold_comparison): Only call fold_inf_compare
16173         if the mode supports infinities.
16174
16175 2009-03-11  Jason Merrill  <jason@redhat.com>
16176
16177         PR debug/39086
16178         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
16179         end already did.  Notice GIMPLE_CALL modifications of the result.
16180         Don't copy debug information from an ignored decl or a decl from
16181         another function.
16182
16183 2009-03-10  Richard Guenther  <rguenther@suse.de>
16184             Nathan Froyd  <froydnj@codesourcery.com>
16185
16186         PR middle-end/37850
16187         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
16188         (__divMODE3): Likewise.
16189
16190 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
16191
16192         PR tree-optimization/39394
16193         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
16194         DECL_SIZE_UNIT of variable length FIELD_DECLs.
16195
16196 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16197
16198         * recog.c (verfiy_changes): Disallow renaming of hard regs in
16199         inline asms for register asm ("") declarations.
16200
16201 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
16202
16203         * fold-const.c (fold_unary): Fix comment.
16204
16205 2009-03-07  Jan Hubicka  <jh@suse.cz>
16206
16207         PR target/39361
16208         * tree-inline.c (setup_one_parameter): Do replacement of const
16209         argument by constant in SSA form.
16210
16211 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16212
16213         PR middle-end/38028
16214         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
16215         determine alignment passed to assign_stack_local.
16216         (assign_parms_unsplit_complex): Likewise.
16217         * except.c (sjlj_build_landing_pads): Likewise.
16218
16219 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
16220
16221         PR middle-end/39360
16222         * tree-flow.h (add_referenced_var): Return bool instead of void.
16223         * tree-dfa.c (add_referenced_var): Return result of
16224         referenced_var_check_and_insert call.
16225         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
16226         of referenced_var_check_and_insert.
16227
16228         PR debug/39372
16229         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
16230         (gen_variable_die): Emit DW_AT_location on abstract static variable's
16231         DIE, don't emit it if abstract origin already has it.
16232         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
16233         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
16234
16235 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
16236
16237         * genpreds.c (needs_variable): Fix parentheses at variable name
16238         detection.
16239         (write_tm_constrs_h): Indent generated code.
16240
16241 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16242
16243         * doc/extend.texi (Function Attributes): Add documentation
16244         for isr attributes.
16245
16246 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
16247
16248         PR debug/39387
16249         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
16250         take locus from its DECL_SOURCE_LOCATION instead of input_location.
16251
16252 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
16253
16254         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
16255         the loop as bad.
16256
16257 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
16258
16259         PR debug/39379
16260         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
16261         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
16262
16263 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
16264
16265         * config/i386/i386.md (R8_REG, R9_REG): New constants.
16266         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
16267         constants instead of magic numbers.
16268         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
16269         (QI_REG_P): Ditto.
16270         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
16271         (x86_64_ms_abi_int_parameter_registers): Ditto.
16272         (x86_64_int_return_registers): Ditto.
16273         (ix86_maybe_switch_abi): Ditto.
16274         (ix86_expand_call): Ditto for clobbered_registers array.
16275         (ix86_hard_regno_mode_ok): Ditto.
16276         (x86_extended_QIreg_mentioned_p): Ditto.
16277
16278 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
16279
16280         PR tree-optimization/39349
16281         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
16282
16283         * combine.c (gen_lowpart_for_combine): Use omode when generating
16284         clobber.
16285
16286 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
16287
16288         PR rtl-optimization/39235
16289         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
16290
16291 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
16292
16293         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
16294
16295 2009-03-04  Richard Guenther  <rguenther@suse.de>
16296
16297         PR tree-optimization/39362
16298         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
16299         that occur in abnormal PHIs should be varying.
16300
16301 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
16302
16303         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
16304         Extend comments.
16305         (simple_iv):  Take loop as an argument instead of statement.
16306         * tree-scalar-evolution.h (simple_iv): Declaration changed.
16307         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
16308         to simple_iv.
16309         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
16310         Ditto.
16311         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
16312         * matrix-reorg.c (analyze_transpose): Ditto.
16313         * tree-data-ref.c (dr_analyze_innermost): Ditto.
16314         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
16315         * tree-predcom.c (ref_at_iteration): Ditto.
16316         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
16317
16318 2009-03-04  Richard Guenther  <rguenther@suse.de>
16319
16320         PR tree-optimization/39358
16321         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
16322         escaped_id and callused_id.
16323         (solve_graph): Likewise.
16324
16325 2009-03-04  Richard Guenther  <rguenther@suse.de>
16326
16327         PR tree-optimization/39339
16328         * tree-sra.c (try_instantiate_multiple_fields): Make it
16329         no longer ICE on the above.
16330
16331 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
16332
16333         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
16334         that fits within Pmode.
16335
16336 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
16337
16338         PR middle-end/10109
16339         * tm.texi (LIBCALL_VALUE): Update description.
16340
16341 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
16342
16343         PR middle-end/34443
16344         * doc/extend.texi (section): Update description.
16345
16346 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16347
16348         PR middle-end/39345
16349         * tree-inline.c (remapped_type): New.
16350         (can_be_nonlocal): Call remapped_type instead of remap_type.
16351
16352 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
16353
16354         PR fortran/39354
16355         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
16356         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
16357
16358 2009-03-03  Richard Guenther  <rguenther@suse.de>
16359
16360         PR middle-end/39272
16361         * tree.c (tree_nonartificial_location): New function.
16362         * tree.h (tree_nonartificial_location): Declare.
16363         * builtins.c (expand_builtin_memory_chk): Provide location
16364         of the call location for artificial function pieces.
16365         (maybe_emit_chk_warning): Likewise.
16366         (maybe_emit_sprintf_chk_warning): Likewise.
16367         (maybe_emit_free_warning): Likewise.
16368         * expr.c (expand_expr_real_1): Likewise.
16369
16370 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
16371
16372         PR tree-optimization/39343
16373         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
16374         COMPONENT_REF t has ARRAY_TYPE.
16375
16376 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
16377
16378         PR middle-end/39335
16379         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
16380         when the type precision of the induction variable should be
16381         larger than the type precision of nit.
16382         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
16383         * graphite.c (graphite_loop_normal_form): Same.
16384         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
16385
16386 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16387
16388         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
16389         (*call_1_rex64_ms_sysv): Use named constants instead of magic
16390         numbers to describe clobbered registers.
16391         (*call_value_0_rex64_ms_sysv): Ditto.
16392         * config/i386/mmx.md (mmx_emms): Ditto.
16393         (mmx_femms): Ditto.
16394
16395 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
16396
16397         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
16398         of ABI_64.
16399
16400 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16401
16402         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
16403         (spu_section_type_flags): New function.
16404
16405 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16406
16407         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
16408         reg_class_contents of FLOAT_REGS into a temporary.
16409
16410 2009-03-02  Richard Guenther  <rguenther@suse.de>
16411             Ira Rosen  <irar@il.ibm.com>
16412
16413         PR tree-optimization/39318
16414         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
16415         information to the vectorized statement.
16416
16417 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
16418
16419         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
16420         variable.  Use defined names instead of magic constants for REX SSE
16421         registers.
16422
16423 2009-03-01  Richard Guenther  <rguenther@suse.de>
16424
16425         PR tree-optimization/39331
16426         * omp-low.c (lower_send_shared_vars): Do not receive new
16427         values for the reference of DECL_BY_REFERENCE parms or results.
16428
16429 2009-03-01  Jan Hubicka  <jh@suse.cz>
16430
16431         PR debug/39267
16432         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
16433         BLOCK_NONLOCALIZED_VAR): New macros.
16434         (tree_block): Add nonlocalized_vars.
16435         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
16436         gen_decl_die): Add origin argument.  Allow generation of die with
16437         origin at hand only.
16438         (gen_member_die, gen_type_die_with_usage, force_decl_die,
16439         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
16440         of gen_*.
16441         (gen_block_die): Fix checking for unused blocks.
16442         (process_scope_var): Break out from .... ; work with origins only.
16443         (decls_for_scope) ... here; process nonlocalized list.
16444         (dwarf2out_ignore_block): Look for nonlocalized vars.
16445         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
16446         vars.
16447         (dump_scope_block): Dump them.
16448         * tree-inline.c (remap_decls): Handle nonlocalized vars.
16449         (remap_block): Likewise.
16450         (can_be_nonlocal): New predicate.
16451         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
16452
16453 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16454
16455         * configure: Regenerate.
16456
16457 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16458
16459         * optc-gen.awk: No need to duplicate option flags twice.
16460         Reuse help texts for duplicate options which do not have any.
16461
16462         * gcc.c (display_help): Document --version.
16463
16464         * gcc.c (main): If print_help_list and verbose_flag, ensure
16465         driver output comes before subprocess output.
16466
16467         * optc-gen.awk: Assign all remaining fields to help string,
16468         space-separated, for multi-line help in *.opt.
16469
16470         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
16471         -Wno-pedantic-ms-format is for MinGW targets only.
16472
16473         * doc/options.texi (Option file format): Fix bad indentation,
16474         restoring dropped sentence.
16475
16476 2009-02-28  Jan Hubicka  <jh@suse.cz>
16477
16478         * tree-inline.c (tree_function_versioning): Output debug info.
16479
16480 2009-02-28  Jan Hubicka  <jh@suse.cz>
16481
16482         PR debug/39267
16483         * tree-inline.c (setup_one_parameter): Do not copy propagate
16484         arguments when not optimizing.
16485
16486 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
16487
16488         PR target/39327
16489         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16490         (avx_addsubv4df3): Likewise.
16491         (*avx_addsubv4sf3): Likewise.
16492         (sse3_addsubv4sf3): Likewise.
16493         (*avx_addsubv2df3): Likewise.
16494         (sse3_addsubv2df3): Likewise.
16495         (avx_unpckhps256): Correct item selectors.
16496         (avx_unpcklps256): Likewise.
16497         (avx_unpckhpd256): Likewise.
16498         (avx_unpcklpd256): Likewise.
16499
16500 2009-02-28  Jan Hubicka  <jh@suse.cz>
16501
16502         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
16503         static vars.
16504         (copy_arguments_for_versioning): If var is declared don't declare it.
16505         (tree_function_versioning): First setup substitutions and then copy
16506         args.
16507
16508 2009-02-27  Jan Hubicka  <jh@suse.cz>
16509
16510         PR debug/39267
16511         * cgraph.h (varpool_output_debug_info): Remove.
16512         * cgraphunit.c (varpool_output_debug_info): Remove.
16513         * dwarf2out.c (deferred_locations_struct): New struct
16514         (deferred_locations): New type.
16515         (deferred_locations_list): New static var.
16516         (deffer_location): New function.
16517         (gen_variable_die): Use it.
16518         (decls_for_scope): Output info on local static vars.
16519         (dwarf2out_finish): Process deferred locations.
16520         * varpool.c (varpool_output_debug_info): Remove.
16521
16522 2009-02-27  Jan Hubicka  <jh@suse.cz>
16523
16524         PR debug/39267
16525         * tree.h (TREE_PROTECTED): Fix comment.
16526         (BLOCK_HANDLER_BLOCK): Remove.
16527         (struct tree_block): Remove handler_block add body_block.
16528         (inlined_function_outer_scope_p): New.
16529         (is_body_block): Remove.
16530         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
16531         * dwarf2out.c (is_inlined_entry_point): Remove.
16532         (add_high_low_attributes): Use inlined_function_outer_scope_p.
16533         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
16534         code.
16535         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
16536         * gimplify.c (gimplify_expr): Gimplify body blocks.
16537         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
16538         block with multiple subblocks.
16539         (dump_scope_block): Prettier output; dump more flags and info.
16540         (dump_scope_blocks): New.
16541         (remove_unused_locals): Use dump_scope_blocks.
16542         * tree-flow.h (dump_scope_blocks): Declare.
16543         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
16544         * stmt.c (is_body_block): Remove.
16545         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
16546         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
16547
16548 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
16549
16550         PR middle-end/39308
16551         * graphite.c (graphite_loop_normal_form): Do not call
16552         number_of_iterations_exit from a gcc_assert.
16553
16554 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16555
16556         * config/s390/s390.c (s390_swap_cmp): Look for conditional
16557         jumps if COND is NULL.
16558         (find_cond_jump): New function.
16559         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
16560         * config/s390/s390.md: Remove z10_cobra attribute value.
16561
16562 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
16563
16564         * config/alpha/alpha.h (alpha_expand_mov): Return false if
16565         force_const_mem returns NULL_RTX.
16566
16567 2009-02-26  Jan Hubicka  <jh@suse.cz>
16568
16569         PR debug/39267
16570         * cgraph.h (varpool_output_debug_info): Remove.
16571         * cgraphunit.c (varpool_output_debug_info): Remove.
16572         * dwarf2out.c (deferred_locations_struct): New struct
16573         (deferred_locations): New type.
16574         (deferred_locations_list): New static var.
16575         (deffer_location): New function.
16576         (gen_variable_die): Use it.
16577         (decls_for_scope): Output info on local static vars.
16578         (dwarf2out_finish): Process deferred locations.
16579         * varpool.c (varpool_output_debug_info): Remove.
16580
16581 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
16582
16583         PR rtl-optimization/39241
16584         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
16585         to subreg_offset_representable_p.
16586
16587 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16588
16589         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
16590         execute function prototype.  Get f and nregs from max_reg_num
16591         and get_insns.  Remove the first backward pass as it's dead,
16592         guard the forward pass by flag_expensive_optimizations.
16593         (rest_of_handle_regmove): Delete.
16594         (pass_regmove): Replace it with regmove_optimize.
16595
16596 2009-02-25  Martin Jambor  <mjambor@suse.cz>
16597
16598         PR tree-optimization/39259
16599         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
16600         calls_alloca function flags.
16601         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
16602         calls are detected.
16603
16604 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16605
16606         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
16607         flags_set_1_rtx, flags_set_1_set): Delete.
16608         (regmove_optimize): Do not call mark_flags_life_zones.
16609
16610 2009-02-24  Julian Brown  <julian@codesourcery.com>
16611
16612         PR target/35965
16613         * config/arm/arm.c (require_pic_register): Only set
16614         cfun->machine->pic_reg once per function.
16615
16616 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
16617
16618         * doc/invoke.texi (Link Options): Document an easier way to pass
16619         options that take arguments to the GNU linker using -Xlinker and -Wl.
16620
16621 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
16622
16623         PR target/33785
16624         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
16625
16626 2009-02-24  Richard Guenther  <rguenther@suse.de>
16627
16628         PR debug/39285
16629         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
16630
16631 2009-02-24  Richard Guenther  <rguenther@suse.de>
16632             Zdenek Dvorak  <ook@ucw.cz>
16633
16634         PR tree-optimization/39233
16635         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
16636         from converting them to a generic type.
16637
16638 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
16639
16640         PR tree-optimization/39260
16641         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
16642         contains a condition with a real type.
16643         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
16644
16645 2009-02-23  Jason Merrill  <jason@redhat.com>
16646
16647         PR c++/38880
16648         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
16649         narrowing_initializer_constant_valid_p.
16650         (narrowing_initializer_constant_valid_p): Don't return
16651         null_pointer_node for adding a pointer to itself.
16652
16653 2009-02-23  Jan Hubicka  <jh@suse.cz>
16654
16655         PR c/12245
16656         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
16657         resizing.
16658
16659 2009-02-23  Jan Hubicka  <jh@suse.cz>
16660
16661         PR tree-optimization/37709
16662         * tree.c (block_ultimate_origin): Move here from dwarf2out.
16663         * tree.h (block_ultimate_origin): Declare.
16664         * dwarf2out.c (block_ultimate_origin): Move to tree.c
16665         * tree-ssa-live.c (remove_unused_scope_block_p):
16666         Eliminate blocks containig no instructions nor live variables nor
16667         nested blocks.
16668         (dump_scope_block): New function.
16669         (remove_unused_locals): Enable removal of dead blocks by default;
16670         enable dumping at TDF_DETAILS.
16671
16672 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16673
16674         * config/i386/i386.c (classify_argument): Don't allow COImode
16675         and OImode.
16676         (function_arg_advance_32): Don't allow OImode.
16677         (function_arg_32): Likewise.
16678         (function_value_32): Likewise.
16679         (return_in_memory_32): Likewise.
16680         (function_arg_64): Remove OImode comment.
16681
16682 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16683
16684         PR target/39261
16685         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16686         ix86_expand_vector_set for V4DImode in 64bit mode only.
16687         (ix86_expand_vector_init_one_var): Likewise.
16688
16689 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
16690
16691         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
16692
16693 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16694
16695         PR bootstrap/39257
16696         * loop-iv.c: Revert last change.
16697         * emit-rtl.c: Likewise.
16698
16699 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16700
16701         PR target/39256
16702         * config/i386/i386.c (type_natural_mode): Remove an extra
16703         space in the warning message.
16704         (function_value_32): Handle 32-byte vector modes.
16705         (return_in_memory_32): Likewise.
16706
16707 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16708
16709         * loop-iv.c (truncate_value): New function.
16710         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
16711         of lowpart_subreg.
16712         (lowpart_subreg): Move to...
16713         * emit-rtl.c: ...here.
16714
16715 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
16716
16717         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
16718         accidental and undocumented change at revision 140860.
16719
16720 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
16721
16722         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
16723         take gimple_seq * arguments.
16724         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
16725         types_compatible_p langhook.
16726
16727 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
16728             Joseph Myers  <joseph@codesourcery.com>
16729
16730         * config/arm/arm.c (arm_builtin_va_list): New function.
16731         (arm_expand_builtin_va_start): Likewise.
16732         (arm_gimplify_va_arg_expr): Likewise.
16733         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
16734         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
16735         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
16736         (va_list_type): New variable.
16737         (arm_mangle_type): Mangle va_list_type appropriately.
16738
16739 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16740
16741         PR middle-end/39157
16742         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
16743         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
16744         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
16745         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
16746         parameter to 1000 for -O1 by default.
16747         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
16748         parameter.
16749         * loop-invariant.c: Include params.h.
16750         (move_loop_invariants): Don't call move_single_loop_invariants on
16751         very large loops.
16752
16753 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
16754
16755         * calls.c (emit_library_call_value_1): Use slot_offset instead of
16756         offset when calculating bounds for indexing stack_usage_map.  Fixes
16757         a buffer overflow with certain target setups.
16758
16759 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16760
16761         PR target/39240
16762         * calls.c (expand_call): Clear try_tail_call if caller and callee
16763         disagree in promotion of function return value.
16764
16765 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
16766
16767         PR target/39175
16768         * c-common.c (c_determine_visibility): If visibility changed and
16769         DECL_RTL has been already set, call make_decl_rtl to update symbol
16770         flags.
16771
16772 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16773
16774         PR c++/39188
16775         * varasm.c (assemble_variable): Don't check DECL_NAME when
16776         globalizing a variable.
16777
16778 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
16779
16780         PR c/38483
16781         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
16782         expression before any __builtin_trap call.
16783         * c-typeck.c (build_function_call): Convert and check function
16784         arguments before generating a call to a trap.  Evaluate the
16785         function arguments before the trap.
16786
16787 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
16788
16789         PR target/39228
16790         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
16791         (UNSPEC_FXAM_MEM): New unspec.
16792         (fxam<mode>2_i387_with_temp): New insn and split pattern.
16793         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
16794         memory using fxam<mode>2_i387_with_temp to remove excess precision.
16795
16796 2009-02-19  Richard Guenther  <rguenther@suse.de>
16797
16798         PR tree-optimization/39207
16799         PR tree-optimization/39074
16800         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
16801         storedanything_tree): New.
16802         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
16803         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
16804         (build_succ_graph): Add edges from STOREDANYTHING to all
16805         non-direct nodes.
16806         (init_base_vars): Initialize STOREDANYTHING.
16807         (compute_points_to_sets): Free substitution info after
16808         building the succ graph.
16809         (ipa_pta_execute): Likewise.
16810
16811         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
16812         field.
16813         (do_ds_constraint): Do not add to special var or non-pointer
16814         field solutions.
16815         (type_could_have_pointers): Split out from ...
16816         (could_have_pointers): ... here.  For arrays use the element type.
16817         (create_variable_info_for): Initialize may_have_pointers.
16818         (new_var_info): Likewise.
16819         (handle_lhs_call): Make the HEAP variable unknown-sized.
16820         (intra_create_variable_infos): Use a type with pointers for
16821         PARM_NOALIAS, make it unknown-sized.
16822
16823 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16824
16825         PR target/39224
16826         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
16827
16828 2009-02-18  Jason Merrill  <jason@redhat.com>
16829
16830         PR target/39179
16831         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
16832         value if DECL_EXTERNAL.
16833         * tree-sra.c (sra_walk_gimple_assign): Likewise.
16834         * target.h (gcc_target::binds_local_p): Clarify "module".
16835         * tree.h (TREE_PUBLIC): Clarify "module".
16836
16837 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
16838
16839         PR target/38891
16840         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
16841         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
16842
16843 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
16844
16845         PR target/39082
16846         * c.opt (Wabi): Support C and ObjC.
16847         (Wpsabi): New.
16848
16849         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
16850
16851         * config/i386/i386.c (classify_argument): Warn once about the ABI
16852         change when passing union with long double.
16853
16854         * doc/invoke.texi: Update -Wabi for warning psABI changes.
16855
16856 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
16857
16858         PR c/35447
16859         * c-parser.c (c_parser_compound_statement): Always enter and leave
16860         a scope.
16861
16862 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16863
16864         PR target/34587
16865         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
16866
16867 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
16868
16869         PR tree-optimization/36922
16870         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
16871         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
16872         Likewise.
16873
16874 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16875
16876         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
16877         to 0 for EABI64.
16878
16879 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16880
16881         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
16882
16883 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16884
16885         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
16886         tree sharing.
16887
16888 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
16889             Richard Sandiford  <rdsandiford@googlemail.com>
16890
16891         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
16892         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
16893         (loongson_biadd): ...this.
16894
16895 2009-02-17  Richard Guenther  <rguenther@suse.de>
16896
16897         PR tree-optimization/39202
16898         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
16899         a var make sure to follow existing collapses.
16900
16901 2009-02-17  Richard Guenther  <rguenther@suse.de>
16902
16903         PR middle-end/39214
16904         * langhooks.c (lhd_print_error_function): Check for NULL block.
16905
16906 2009-02-17  Richard Guenther  <rguenther@suse.de>
16907
16908         PR tree-optimization/39204
16909         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
16910         of the PHI arg.
16911
16912 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
16913
16914         * config/soft-fp/double.h: Update from glibc CVS.
16915
16916 2009-02-17  Richard Guenther  <rguenther@suse.de>
16917
16918         PR tree-optimization/39207
16919         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
16920         strict-aliasing warnings for pointers pointing to NULL.
16921
16922 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
16923
16924         PR c/35446
16925         * c-parser.c (c_parser_braced_init): Call pop_init_level when
16926         skipping until next close brace.
16927
16928 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
16929
16930         PR target/37049
16931         * config/i386/i386.c (ix86_expand_push): Set memory alignment
16932         to function argument boundary.
16933
16934 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16935
16936         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
16937         in the lea_add. Reload eventually constraints it properly.
16938         * config/picochip/constraints.md: Remove the target constraint
16939         "b", since it is not needed anymore.
16940
16941 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
16942
16943         * gthr-dce.h: Uglify function parameter and local variable names.
16944         * gthr-gnat.h: Likewise.
16945         * gthr-mipssde.h: Likewise.
16946         * gthr-nks.h: Likewise.
16947         * gthr-posix95.h: Likewise.
16948         * gthr-posix.h: Likewise.
16949         * gthr-rtems.h: Likewise.
16950         * gthr-single.h: Likewise.
16951         * gthr-solaris.h: Likewise.
16952         * gthr-tpf.h: Likewise.
16953         * gthr-vxworks.h: Likewise.
16954         * gthr-win32.h: Likewise.
16955
16956 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16957
16958         PR target/39196
16959         * config/i386/i386.md: Restrict the new peephole2 to move
16960         between MMX/SSE registers.
16961
16962 2009-02-15  Richard Guenther  <rguenther@suse.de>
16963
16964         Revert
16965         2009-02-13  Richard Guenther  <rguenther@suse.de>
16966
16967         * configure.ac: Enable LFS.
16968         * configure: Re-generate.
16969         * config.in: Likewise.
16970
16971 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16972
16973         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
16974         spu_srqwbyte, spu_srqwbytebc): Define.
16975         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
16976         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
16977         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
16978         "shrqby_<mode>"): New insn-and-split patterns.
16979         * config/spu/spu.c (expand_builtin_args): Determine and return
16980         number of operands using spu_builtin_description data.
16981         (spu_expand_builtin_1): Use it.
16982
16983 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
16984
16985         PR target/38056
16986         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
16987         TARGET_CONST_GP.
16988
16989 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16990
16991         PR target/39149
16992         * config/i386/i386.c (override_options): Correct warning
16993         messages for -malign-loops, -malign-jumps and -malign-functions.
16994
16995 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16996
16997         PR target/39152
16998         * config/i386/i386.md: Restrict the new peephole2 to move
16999         between the general purpose registers.
17000
17001 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
17002
17003         PR target/39162
17004         * config/i386/i386.c (type_natural_mode): Add a new argument.
17005         Return the original mode and warn ABI change if vector size is 32byte.
17006         (function_arg_advance): Updated.
17007         (function_arg): Likewise.
17008         (ix86_function_value): Likewise.
17009         (ix86_return_in_memory): Likewise.
17010         (ix86_sol10_return_in_memory): Likewise.
17011         (ix86_gimplify_va_arg): Likewise.
17012         (function_arg_32): Don't warn ABX ABI change here.
17013         (function_arg_64): Likewise.
17014
17015 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
17016
17017         * loop-iv.c (implies_p): In the final case, test that operands 0
17018         of the two comparisons match.
17019
17020         * config/bfin/bfin.c (find_prev_insn_start): New function.
17021         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
17022         (find_next_insn_start): Move.
17023
17024 2009-02-13  Richard Guenther  <rguenther@suse.de>
17025
17026         * configure.ac: Enable LFS.
17027         * configure: Re-generate.
17028         * config.in: Likewise.
17029
17030 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
17031
17032         PR c/35444
17033         * c-parser.c (c_parser_parms_list_declarator): Discard pending
17034         sizes on syntax error after some arguments have been parsed.
17035
17036 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
17037
17038         * doc/invoke.texi (-fira): Remove.
17039
17040 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
17041
17042         * caller-save.c: Replace regclass.c with reginfo.c in comments.
17043         * recog.c: Likewise.
17044         * rtl.h: Likewise.
17045
17046 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
17047
17048         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
17049         (umul_ppmm): Likewise.
17050         (count_leading_zeros): Likewise.
17051         (count_trailing_zeros): Likewise.
17052         (UMUL_TIME): Likewise.
17053
17054 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
17055
17056         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
17057         soft-fp/t-softfp to tmake_file.
17058
17059         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
17060         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
17061         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
17062         IA64_BUILTIN_INFQ]: New.
17063         (ia64_init_builtins): Initialize __builtin_infq,
17064         __builtin_fabsq and __builtin_copysignq if not HPUX.
17065         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
17066         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
17067
17068         * config/ia64/lib1funcs.asm (__divtf3): Define only if
17069         SHARED is defined.
17070         (__fixtfti): Likewise.
17071         (__fixunstfti): Likewise.
17072         (__floattitf): Likewise.
17073
17074         * config/ia64/libgcc-glibc.ver: New.
17075         * config/ia64/t-fprules-softfp: Likewise.
17076         * config/ia64/sfp-machine.h: Likewise.
17077
17078         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
17079         (LIBGCC2_TF_CEXT): Likewise.
17080         (TF_SIZE): Likewise.
17081         (TARGET_INIT_LIBFUNCS): Likewise.
17082
17083         * config/ia64/t-glibc (SHLINB_MAPFILES):
17084         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
17085
17086 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
17087
17088         * config/i386/i386.c (construct_container): Rewrite processing
17089         BLKmode with X86_64_SSE_CLASS.
17090
17091 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
17092
17093         PR target/39152
17094         * config/i386/i386.md: Replace simplify_replace_rtx with
17095         replace_rtx in the new peephole2.
17096
17097 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
17098
17099         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
17100         loop unrolling do not happen at -O2.
17101
17102 2009-02-12  Michael Matz  <matz@suse.de>
17103
17104         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
17105
17106 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
17107
17108         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
17109         for -g3.
17110
17111 2009-02-12  Ben Elliston  <bje@au.ibm.com>
17112
17113         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
17114         patterns when updating the back chain.  Missed in the 2009-02-10
17115         change.
17116
17117 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
17118
17119         * doc/extend.texi (Decimal Floating Types): Update identifier of
17120         draft TR and list of missing support.
17121
17122 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
17123
17124         PR middle-end/39154
17125         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
17126         bit to variable length decl's flags, add it also to its
17127         pointer replacement variable.
17128
17129 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
17130             Jakub Jelinek  <jakub@redhat.com>
17131
17132         PR target/39118
17133         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
17134         (memory_blockage): New expander.
17135         (*memory_blockage): New insn pattern.
17136         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
17137         instead of general blockage at the end of function prologue when
17138         frame pointer is used to access red zone area.  Do not emit blockage
17139         when profiling, it is emitted in generic code.
17140         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
17141         function epilogue when frame pointer is used to access red zone area.
17142
17143 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
17144
17145         PR target/38824
17146         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
17147         by arithmetic with memory operands.
17148         * config/i386/predicates.md (commutative_operator): New.
17149
17150 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
17151
17152         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
17153         bulleted lists.
17154
17155 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
17156
17157         * alias.h (record_alias_subset): Declare.
17158         * alias.c (record_alias_subset): Make global.
17159
17160 2009-02-10  Nick Clifton  <nickc@redhat.com>
17161
17162         * tree-parloops.c: Change license to GPLv3.
17163         * ipa-struct-reorg.c: Change license to GPLv3.
17164         * ipa-struct-reorg.h: Change license to GPLv3.
17165
17166 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
17167
17168         PR c/39084
17169         * c-decl.c (start_struct): Return NULL on error.
17170
17171 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
17172
17173         PR middle-end/39124
17174         * cfgloopmanip.c (remove_path): Call remove_bbs after
17175         cancel_loop_tree, not before it.
17176
17177         PR target/39139
17178         * function.h (struct function): Add has_local_explicit_reg_vars bit.
17179         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
17180         VAR_DECLs were seen.
17181         * tree-ssa-live.c (remove_unused_locals): Recompute
17182         cfun->has_local_explicit_reg_vars.
17183         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
17184         copies or clearings if cfun->has_local_explicit_reg_vars.
17185
17186 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
17187
17188         PR target/39118
17189         * config/i386/i386.c (expand_prologue): Emit blockage at the end
17190         of function prologue when frame pointer is used to access
17191         red zone area.
17192
17193 2009-02-10  Richard Guenther  <rguenther@suse.de>
17194
17195         PR middle-end/39127
17196         * gimplify.c (gimple_regimplify_operands): Always look if
17197         we need to create a temporary.
17198
17199 2009-02-10  Richard Guenther  <rguenther@suse.de>
17200
17201         PR tree-optimization/39132
17202         * tree-loop-distribution.c (todo): New global var.
17203         (generate_memset_zero): Trigger TODO_rebuild_alias.
17204         (tree_loop_distribution): Return todo.
17205
17206 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
17207
17208         PR target/39119
17209         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
17210         (x86_64_reg_class_name): Removed.
17211         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
17212         first one isn't X86_64_SSE_CLASS or any other ones aren't
17213         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
17214         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
17215         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
17216         and 3 X86_64_SSEUP_CLASS.
17217         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
17218         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
17219
17220 2009-02-10  Ben Elliston  <bje@au.ibm.com>
17221
17222         * config/rs6000/rs6000.md (allocate_stack): Always use an update
17223         form instruction to update the stack back chain word, even if the
17224         user has disabled the generation of update instructions.
17225         (movdi_<mode>_update_stack): New.
17226         (movsi_update_stack): Likewise.
17227         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
17228         always use an update form instruction to update the stack back
17229         chain word.
17230
17231 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
17232
17233         PR middle-end/38953
17234         * graphite.c (if_region_set_false_region): After moving a region in
17235         the false branch of a condition, remove the empty dummy basic block.
17236         (gloog): Remove wrong fix for PR38953.
17237
17238 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17239
17240         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
17241         generation due to implicit sign extension.
17242
17243 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
17244
17245         PR middle-end/38981
17246         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
17247         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
17248
17249 2009-02-09  Richard Guenther  <rguenther@suse.de>
17250
17251         PR middle-end/35202
17252         * convert.c (convert_to_real): Disable (float)fn((double)x)
17253         to fnf(x) conversion if errno differences may occur and
17254         -fmath-errno is set.
17255
17256 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
17257
17258         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
17259         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
17260         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
17261
17262 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
17263
17264         PR c/35434
17265         * c-common.c (handle_alias_attribute): Disallow attribute for
17266         anything not a FUNCTION_DECL or VAR_DECL.
17267
17268 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
17269
17270         PR c/39035
17271         * real.c (do_compare): Special-case compare of zero against
17272         decimal float value.
17273
17274 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
17275
17276         PR c/36432
17277         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
17278         as indicating flexible array members unless the field itself is
17279         being declarared as the incomplete array.
17280
17281 2009-02-06  Jan Hubicka  <jh@suse.cz>
17282
17283         PR tree-optimization/38844
17284         * ipa-inline.c (try_inline): Stop inlining recursion when edge
17285         is already inlined.
17286
17287 2009-02-06  Richard Guenther  <rguenther@suse.de>
17288
17289         PR middle-end/38977
17290         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
17291         fork because we may expand it as __gcov_fork.
17292
17293 2009-02-06  Nick Clifton  <nickc@redhat.com>
17294
17295         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
17296
17297 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
17298
17299         PR tree-optimization/35659
17300         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
17301         vn_phi_eq): Shortcut if hashcode does not match.
17302         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
17303         NULL operands.
17304         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
17305         and avoid iterative_hash_expr.
17306         (FOR_EACH_VALUE_ID_IN_SET): New.
17307         (value_id_compare): Remove.
17308         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
17309         sort expressions by value id.
17310
17311 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
17312
17313         PR target/38991
17314         * config/sh/predicates.md (general_movsrc_operand): Don't check
17315         the subreg of system registers here.
17316
17317 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
17318
17319         PR c++/39106
17320         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
17321         on the copied decl.
17322
17323 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
17324
17325         PR rtl-optimization/39110
17326         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
17327         addresses, not aligned ones.
17328
17329 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
17330             Richard Guenther  <rguenther@suse.de>
17331
17332         PR tree-optimization/39100
17333         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
17334         comment says and add edges.
17335
17336 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
17337
17338         PR c/35435
17339         * c-common.c (handle_tls_model_attribute): Ignore attribute for
17340         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
17341
17342 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
17343
17344         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
17345         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
17346         register_bb_in_sese, new_sese, free_sese): Moved.
17347         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
17348         outermost_loop_in_scop, build_scop_iteration_domain,
17349         expand_scalar_variables_ssa_name, get_vdef_before_scop,
17350         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
17351         Use loop_in_sese_p instead of loop_in_scop_p.
17352         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
17353         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
17354         (scopdet_basic_block_info): Fix bug in scop detection.
17355         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
17356         eq_loop_to_cloog_loop): Remove.
17357         (nb_loops_around_loop_in_scop, nb_loop
17358         ref_nb_loops): Moved here...
17359         * graphite.h (ref_nb_loops): ... from here.
17360         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
17361         (loop_domain_dim, loop_iteration_vector_dim): Remove.
17362         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
17363         * testsuite/gcc.dg/graphite/scop-19.c: New
17364
17365 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
17366             Hans-Peter Nilsson  <hp@axis.com>
17367
17368         PR rtl-optimization/37889
17369         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
17370         Move offset handling from PLUS to before the switch.  Use new
17371         arguments when considering SYMBOL_REFs too.
17372         (rtx_addr_can_trap_p): Pass dummy offset and size.
17373         (enum may_trap_p_flags): Remove.
17374         (may_trap_p_1): Pass size from MEM_SIZE.
17375
17376         PR rtl-optimization/38921
17377         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
17378         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
17379         * rtlanal.c (may_trap_after_code_motion_p): Delete.
17380         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
17381
17382 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
17383
17384         AVX Programming Reference (January, 2009)
17385         * config/i386/sse.md (*vpclmulqdq): New.
17386
17387 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
17388
17389         PR tree-optimization/38977
17390         PR gcov-profile/38292
17391         * calls.c (special_function_p): Disregard __builtin_ prefix.
17392
17393 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17394
17395         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
17396         non-indexable addresses even before reload.
17397
17398 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17399
17400         PR c/29129
17401         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
17402         as having variable size.  Do not give an error for unnamed
17403         parameters with [*] declarators.  Give a warning for type names
17404         with [*] declarators and mark them as variable size.
17405         * c-parser.c (c_parser_sizeof_expression): Do not give an error
17406         for sizeof applied to [*] type names.
17407
17408 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17409
17410         PR C++/36607
17411         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
17412
17413 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17414
17415         * gcc.c (process_command): Update copyright notice dates.
17416         * gcov.c (print_version): Likewise.
17417         * gcov-dump.c (print_version): Likewise.
17418         * mips-tfile.c (main): Likewise.
17419         * mips-tdump.c (main): Likewise.
17420
17421 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17422
17423         PR c/35433
17424         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
17425         for composite type involving a zero-length array type.
17426
17427 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17428
17429         PR target/35318
17430         * function.c (match_asm_constraints_1): Skip over
17431         initial optional % in the constraint.
17432
17433         PR inline-asm/39059
17434         * c-parser.c (c_parser_postfix_expression): If fixed point is not
17435         supported, don't accept FIXED_CSTs.
17436         * c-decl.c (finish_declspecs): Error if fixed point is not supported
17437         and _Sat is used without _Fract/_Accum.  Set specs->type to
17438         integer_type_node for cts_fract/cts_accum if fixed point is not
17439         supported.
17440
17441 2009-02-02  Catherine Moore  <clm@codesourcery.com>
17442
17443         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
17444
17445 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
17446
17447         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
17448         (ABI_HAS_64BIT_SYMBOLS): Use it.
17449         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
17450
17451 2009-02-02  Paul Brook  <paul@codesourcery.com>
17452
17453         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
17454
17455 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
17456
17457         PR inline-asm/39058
17458         * recog.h (asm_operand_ok): Add constraints argument.
17459         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
17460         recurse on matching constraint.
17461         (check_asm_operands): Pass constraints as 3rd argument to
17462         asm_operand_ok.  Don't look up matching constraint here.
17463         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
17464         to asm_operand_ok.
17465
17466 2009-02-02  Ben Elliston  <bje@au.ibm.com>
17467
17468         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
17469         TARGET_NARROW_VOLATILE_BITFIELD macro names.
17470
17471 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17472
17473         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
17474         information.  Remove some obsolete information.  Reorganize.
17475
17476         * config/pa/fptr.c: Revert license to GPL 2.
17477         * config/pa/milli64.S: Likewise.
17478
17479 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17480
17481         PR target/38904
17482         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
17483         LIBRARY name in, instead of hard-coding it.
17484         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
17485         extra target make frag to tmake_files according to EH model.
17486         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
17487         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
17488         frags that define makefile variable EH_MODEL appropriately.
17489         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
17490         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
17491         to "-sjlj" according to type of EH configured.
17492         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17493         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
17494         to "_sjlj" according to type of EH configured.
17495         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17496         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
17497         (SHLIB_LINK):  Add missing semicolon to if-else construct.
17498         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17499         string value of "pe_dll" command-line option.
17500         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
17501         (SHLIB_SONAME):  Use it when overriding t-cygming default.
17502         (SHLIB_IMPLIB):  Override t-cygming default.
17503         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17504         string value of "pe_dll" command-line option.
17505
17506 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17507
17508         PR target/38952
17509         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
17510         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
17511
17512 2009-01-31  Richard Guenther  <rguenther@suse.de>
17513
17514         PR tree-optimization/38937
17515         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
17516         computing the transitive closure.
17517
17518 2009-01-30  Richard Guenther  <rguenther@suse.de>
17519
17520         PR tree-optimization/39041
17521         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
17522         Propagate variable indices only if the types match for this stmt.
17523
17524 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
17525
17526         PR target/39013
17527         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
17528         inline but never defined.
17529
17530 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
17531
17532         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
17533         (*insv_h_di_reg_extimm): New insn.
17534         (*insv_l<mode>_reg_extimm): New insn.
17535
17536 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17537
17538         * config/picochip/picochip.c (flag_conserve_stack): set
17539         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
17540         fconserve-stack. Reduce call-overhead used by inliner.
17541
17542 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17543
17544         PR/38157
17545         * common.opt (flag_conserve_stack): Initialised to zero.
17546
17547 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
17548
17549         PR/39002
17550         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
17551         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
17552         method.
17553
17554 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
17555
17556         * ira-color.c (allocno_reload_assign): Update comments.
17557         * regmove.c (regmove_optimize): Likewise.
17558
17559         * ra.h: Removed.
17560
17561 2009-01-29  Robert Millan  <rmh@aybabtu.com>
17562
17563         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
17564         * config/i386/kopensolaris-gnu.h: New file.  Undefine
17565         `MD_UNWIND_SUPPORT'.
17566         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
17567
17568 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
17569
17570         PR tree-optimization/39007
17571         * tree-loop-distribution.c (generate_builtin): Use
17572         recompute_dominator to compute the immediate dominator of the
17573         basic block just after the loop.
17574
17575 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17576
17577         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
17578         (ASM_OUTPUT_DWARF_PCREL): Define.
17579
17580 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
17581
17582         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
17583         * doc/passes.texi: Remove entries about regclass, local-alloc, and
17584         global.  Modify entries about regmove and IRA.
17585
17586         * ra-conflict.c: Remove the file.
17587
17588         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
17589
17590         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
17591         (pass_regclass_init): Rename to pass_reginfo_init.
17592
17593         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
17594
17595         * toplev.h (flag_ira): Remove.
17596
17597         * caller-save.c (setup_save_areas): Remove flag_ira.
17598
17599         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
17600
17601         * global.c: Remove the file.
17602
17603         * opts.c (decode_options): Remove flag_ira.
17604
17605         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
17606
17607         * regmove.c: Modify file description.
17608         (find_use_as_address, try_auto_increment): Define them only if
17609         AUTO_INC_DEC is defined.
17610         (replacement_quality, replace_in_call_usage, fixup_match_1,
17611         stable_and_no_regs_but_for_p): Remove.
17612         (reg_set_in_bb): Make it static.
17613         (regmove_optimize): Remove flag_ira and code which worked for
17614         !flag_ira.
17615
17616         * local-alloc.c: Remove the file.
17617
17618         * common.opt (fira): Remove.
17619
17620         * ira.c: Include except.h.
17621         (eliminable_regset): Move from global.c.
17622         (mark_elimination): Ditto.  Remove flag_ira.
17623         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
17624         equiv_mem_modified, validate_equiv_mem_from_store,
17625         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
17626         contains_replace_regs, memref_referenced_p, memref_used_between_p,
17627         no_equiv, recorded_label_ref): Move from local-alloc.c.
17628         (update_equiv_regs): Ditto.  Make it static.
17629         (print_insn_chain, print_insn_chains): Move it from global.c.
17630         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
17631         (build_insn_chain): Ditto.  Make it static.
17632         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
17633         Rename to init_live_subregs.
17634         (gate_ira): Remove flag_ira.
17635
17636         * regclass.c: Rename reginfo.c.  Change file description.
17637         (FORBIDDEN_INC_DEC_CLASSES): Remove.
17638         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
17639         (init_reg_sets_1): Remove code for evaluation of
17640         reg_class_superclasses and losing_caller_save_reg_set.
17641         (init_regs): Remove init_reg_autoinc.
17642         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
17643         ok_for_base_p_nonstrict): Remove.
17644         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
17645         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
17646         corresponding entries.
17647         (dump_regclass, record_operand_costs, scan_one_insn,
17648         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
17649         record_address_regs, auto_inc_dec_reg_p): Remove.
17650         (gt-regclass.h): Rename to gt-reginfo.h.
17651
17652         * rtl.h (dump_global_regs, retry_global_alloc,
17653         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
17654
17655         * Makefile.in (RA_H): Remove.
17656         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
17657         Rename regclass.o to reginfo.o.
17658         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
17659         gt-reginfo.h.
17660         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
17661         (GTFILES): Rename regclass.c to reginfo.c.
17662
17663         * passes.c (init_optimization_passes): Remove pass_local_alloc and
17664         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
17665
17666         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17667         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
17668         Remove flag_ira.
17669         (finish_spills): Ditto.  Remove code for !flag_ira.
17670
17671 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
17672
17673         PR middle-end/35854
17674         * doc/invoke.texi (rtl debug options): Complete rewrite.
17675         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
17676         to auto_inc_dec".
17677         * mode-switching.c (pass_mode_switching): Rename pass from
17678         "mode-sw" to "mode_sw".
17679         * except.c (pass_convert_to_eh_ranges): Rename pass from
17680         "eh-ranges" to "eh_ranges".
17681         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
17682         to "subreg1".
17683
17684
17685 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
17686             Alexander Monakov  <amonakov@ispras.ru>
17687
17688         PR middle-end/38857
17689         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
17690         register.
17691         (move_exprs_to_boundary): Change return type and pass through
17692         should_move from move_op.  Relax assert.  Update usage ...
17693         (schedule_expr_on_boundary): ... here.  Use should_move instead of
17694         cant_move.
17695         (move_op_orig_expr_found): Indicate that insn was disconnected from
17696         stream.
17697         (code_motion_process_successors): Do not call after_merge_succs
17698         callback if original expression was not found when traversing any of
17699         the branches.
17700         (code_motion_path_driver): Change return type.  Update prototype.
17701         (move_op): Update comment.  Add a new parameter (should_move).  Update
17702         prototype.  Set *should_move based on indication provided by
17703         move_op_orig_expr_found.
17704
17705 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
17706
17707         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
17708         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
17709         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
17710         * config/rs6000/rs6000.c (rs6000_override_options): Default
17711         avoid-indexed-addresses on for Power6, off for everything else.
17712         (avoiding_indexed_address_p): New function.
17713         (rs6000_legitimize_address): Use it.
17714         (rs6000_legitimate_address): Likewise.
17715         * config/rs6000/rs6000.md (movXX_updateX): Likewise
17716
17717 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
17718
17719         PR tree-optimization/38997
17720         * tree-loop-distribution.c (generate_memset_zero): Use
17721         POINTER_PLUS_EXPR for a pointer addition.
17722
17723 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
17724
17725         * config/s390/s390.md (bswap<mode>2): New pattern added.
17726
17727 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17728
17729         * config/s390/s390.md (*tls_load_31): Added type attribute.
17730
17731 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17732
17733         * config/s390/s390.md: Fix a few comments.
17734
17735 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17736
17737         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
17738         (*tm<mode>_full): Fixed z10prop attribute.
17739         (*tst<mode>_extimm): Fixed z10prop attribute.
17740         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
17741         (*tstqiCCT_cconly): Fixed z10prop attribute.
17742         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
17743         (*movsi_larl): Fixed z10prop attribute.
17744         (*movsi_zarch): Fixed z10prop attribute.
17745         (*movsi_eas): Fixed z10prop attribute.
17746         (*movhi): Fixed z10prop attribute.
17747         (*movqi): Fixed z10prop attribute.
17748         (*movstrictqi): Fixed z10prop attribute.
17749         (*mov<mode>): Fixed z10prop attribute.
17750         (*movcc): Fixed z10prop attribute.
17751         (*sethighpartdi_64): Fixed z10prop attribute.
17752         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
17753         (*negdi2_sign_cc): Fixed z10prop attribute.
17754         (*negdi2_sign): Fixed z10prop attribute.
17755         (*absdi2_sign_cc): Fixed z10prop attribute.
17756         (*absdi2_sign): Fixed z10prop attribute.
17757         (*negabsdi2_sign_cc): Fixed z10prop attribute.
17758         (*negabsdi2_sign): Fixed z10prop attribute.
17759         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
17760         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
17761         (doloop_si64): Fixed z10prop attribute.
17762         (doloop_si31): Fixed z10prop attribute.
17763         (doloop_long): Fixed z10prop attribute.
17764         (indirect_jump): Fixed z10prop attribute.
17765         (nop): Fixed z10prop attribute.
17766         (main_base_64): Fixed z10prop attribute.
17767         (reload_base_64): Fixed z10prop attribute.
17768
17769 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17770
17771         PR rtl-optimization/38740
17772         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
17773         if !optimize.
17774         * config/mips/mips.c (mips_reorg): Likewise.
17775
17776 2009-01-28  Richard Guenther  <rguenther@suse.de>
17777
17778         PR tree-optimization/38926
17779         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
17780         with the correct value id to a value.
17781         (do_regular_insertion): Use the value number of edoubleprime
17782         for the value number of the expr.
17783
17784         Revert
17785         2008-08-21  Richard Guenther  <rguenther@suse.de>
17786
17787         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
17788         a PHI ask VN if it is already available.
17789         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
17790         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
17791
17792 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17793
17794         PR middle-end/38934
17795         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
17796         set to varying whenever max has TREE_OVERFLOW set, similarly
17797         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
17798
17799 2009-01-28  Richard Guenther  <rguenther@suse.de>
17800
17801         PR middle-end/38908
17802         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
17803         uninitialized aggregate uses in call arguments.
17804
17805 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
17806
17807         PR tree-optimization/38984
17808         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
17809         the nothing_id variable if -fno-delete-null-pointer-checks.
17810
17811 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
17812
17813         PR target/38988
17814         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
17815         (set_got_offset_rex64): Ditto.
17816
17817 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
17818
17819         PR target/38941
17820         * doc/extend.texi: Improve local variable with asm reg.
17821
17822 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
17823
17824         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
17825         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
17826         was not supplied then set warn_packed_bitfield_compat to the
17827         default value of 1.
17828         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
17829         against 1.
17830
17831 2009-01-27  Richard Guenther  <rguenther@suse.de>
17832
17833         PR tree-optimization/38503
17834         * cfgexpand.c (expand_gimple_basic_block): Ignore
17835         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
17836         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
17837         variables that cannot have TBAA applied.
17838         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
17839         statements.
17840
17841 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
17842
17843         PR middle-end/38969
17844         * calls.c (initialize_argument_information): Do not wrap complex
17845         arguments in SAVE_EXPR.
17846
17847 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
17848
17849         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
17850         (INSTALL_LIBGCC): Revert typo commit.
17851
17852 2009-01-26  Richard Guenther  <rguenther@suse.de>
17853
17854         PR tree-optimization/38745
17855         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
17856         from special handling.
17857
17858 2009-01-26  Richard Guenther  <rguenther@suse.de>
17859
17860         PR tree-optimization/38745
17861         * tree-ssa.c (execute_update_addresses_taken): Do not include
17862         variables that cannot possibly be a register in not_reg_needs.
17863         Do not clear TREE_ADDRESSABLE on vars that may not become
17864         registers.
17865         * tree-ssa.c (update_alias_info_1): Include those in the set
17866         of addressable vars.
17867
17868 2009-01-26  Richard Guenther  <rguenther@suse.de>
17869
17870         PR middle-end/38851
17871         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
17872         * tree-ssa-dse.c: Include langhooks.h
17873         (execute_simple_dse): Remove stores with zero size.
17874
17875 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
17876
17877         PR c/38957
17878         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
17879         as PLUS_EXPR.
17880
17881 2009-01-24  Julian Brown  <julian@codesourcery.com>
17882
17883         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
17884         config/arm/linux-atomic.c.
17885         * config/arm/linux-atomic.c: New.
17886
17887 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
17888
17889         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
17890         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
17891         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
17892
17893 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17894
17895         PR c/38938
17896         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
17897         properly.
17898
17899 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
17900
17901         PR tree-optimization/38953
17902         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
17903         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
17904         (gloog): Split the exit of the scop when the scop exit is a loop exit.
17905         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
17906         changed the CFG.
17907
17908 2009-01-24  Paul Brook  <paul@codesourcery.com>
17909
17910         * config/arm/neon.md (neon_type): Move to arm.md.
17911         (neon_mov<VSTRUCT>): Add neon_type attribute.
17912         * config/arm/arm.md (neon_type): Move to here.
17913         (conds): Add "unconditioal" and use as default for NEON insns.
17914
17915 2009-01-24  Ben Elliston  <bje@au.ibm.com>
17916
17917         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
17918         void *' warning from -Wc++-compat.
17919         * Makefile.in (dominance.o-warn): Remove.
17920
17921 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
17922
17923         PR tree-optimization/38932
17924         * fold-const.c (fold_unary_ignore_overflow): New.
17925         * tree.h (fold_unary_ignore_overflow): Declare.
17926         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
17927         * tree-ssa-sccvn.c (visit_reference_op_load,
17928         simplify_unary_expression): Likewise.
17929
17930 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
17931
17932         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
17933         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
17934         regardless of their type.
17935         * c-common.c (handle_packed_attribute): Don't ignore packed on
17936         bitfields.
17937         * c.opt (Wpacked-bitfield-compat): New warning option.
17938         * stor-layout.c (place_field): Warn if offset of a field changed.
17939         * doc/extend.texi (packed): Mention the ABI change.
17940         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
17941         (Warning Options): Add it to the list.
17942
17943 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
17944
17945         * c-opts.c (c_common_post_options): Fix a typo in comments.
17946
17947 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
17948
17949         PR middle-end/38615
17950         * gimplify.c (gimplify_init_constructor): Fix promotion of const
17951         variables to static.
17952         * doc/invoke.texi (-fmerge-all-constants): Update description.
17953
17954 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
17955
17956         PR target/38931
17957         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
17958         (*movdi_1_rex64): Use type "mmx" for alternative 5.
17959
17960 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
17961
17962         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
17963         a word boundary.
17964         (LOCAL_ALIGNMENT): Similarly.
17965
17966 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17967             Joseph Myers  <joseph@codesourcery.com>
17968
17969         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
17970         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
17971         * config/arm/arm-tune.md: Regenerate.
17972         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
17973         -march=iwmmxt2.
17974
17975 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17976
17977         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
17978         version number to five.
17979
17980 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
17981
17982         PR c++/38930
17983         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
17984         * c-common.c (set_underlying_type): Likewise.
17985         (is_typedef_decl ): Likewise
17986         * tree.h: Likewise
17987         (set_underlying_type): Likewise.
17988         (is_typedef_type): Likewise.
17989
17990 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
17991
17992         PR middle-end/38587
17993         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
17994         crossing setjmps.
17995
17996 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
17997
17998         PR bootstrap/37660
17999         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
18000         (LIBGCC_SPEC):  Don't define.
18001         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
18002
18003 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
18004
18005         PR rtl-optimization/38879
18006         * alias.c (base_alias_check): Unaligned access via AND address can
18007         alias all surrounding object types except those with sizes equal
18008         or wider than the size of unaligned access.
18009
18010 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
18011
18012         PR c++/26693
18013         * c-decl.c (clone_underlying_type): Move this ...
18014         * c-common.c (set_underlying_type): ... here.
18015         Also, make sure the function properly sets TYPE_STUB_DECL() on
18016         the newly created typedef variant type.
18017         (is_typedef_decl ): New entry point.
18018         * tree.h: Added a new member member_types_needing_access_check to
18019         struct tree_decl_non_common.
18020         (set_underlying_type): New entry point.
18021         (is_typedef_type): Likewise.
18022
18023 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
18024
18025         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
18026         Check whether two instructions have memory references that
18027         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
18028         are helper functions for traversing.
18029         * alias.h (insn_alias_sets_confilict_p): New prototypes.
18030         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
18031         not to draw dependency edge for instructions with non-conflicting
18032         alias sets.
18033
18034 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
18035
18036         PR other/38758
18037         * longlong.h: Update copyright years.  Use soft-fp license notice.
18038         Sync __clz_tab declaration with glibc.
18039
18040 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
18041
18042         PR target/30687
18043         * doc/extend.texi (syscall_linkage): New.
18044         (version_id): Modify.
18045
18046 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18047             Richard Guenther  <rguenther@suse.de>
18048
18049         PR tree-optimization/38747
18050         PR tree-optimization/38748
18051         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
18052         conversion if the base address is an indirect reference and the
18053         aliasing sets could cause issues.
18054
18055 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
18056
18057         * common.opt (fgraphite, fgraphite-identity): Add comment for
18058         explaining why these options are not documented.
18059
18060 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
18061
18062         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
18063         gimple_call_lhs is NULL.
18064
18065 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
18066
18067         PR target/38868
18068         * emit-rtl.c (adjust_address_1): Make sure memref is never
18069         overwritten.
18070
18071 2009-01-20  Ben Elliston  <bje@au.ibm.com>
18072
18073         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
18074         const qualifier from arg parameter. Remove unnecessary cast to char *.
18075         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
18076         const qualifier from arg 2.
18077
18078 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
18079
18080         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
18081
18082 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
18083
18084         PR c/38869
18085         * rtl.h (reinit_regs): New prototype.
18086         * regclass.c: Include ira.h.
18087         (reinit_regs): New.
18088         * Makefile.in (regclass.o): Add ira.h.
18089         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
18090
18091 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
18092
18093         PR target/38736
18094         * c-common.c (handle_aligned_attribute): Use
18095         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
18096         default alignment value.
18097
18098         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
18099
18100         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
18101         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
18102
18103         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
18104         __BIGGEST_ALIGNMENT__.
18105
18106         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
18107
18108 2009-01-18  Richard Guenther  <rguenther@suse.de>
18109
18110         PR tree-optimization/38819
18111         * tree-flow.h (operation_could_trap_helper_p): Declare.
18112         * tree-eh.c (operation_could_trap_helper_p): Export.
18113         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
18114         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
18115         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
18116         are about to insert a possibly trapping instruction and fail
18117         in this case.
18118
18119 2009-01-18  Andreas Schwab  <schwab@suse.de>
18120
18121         * doc/install.texi (Configuration): Remove obsolete paragraph
18122         about use of --with-gnu-ld with --with-gnu-as.
18123
18124 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
18125
18126         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
18127         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
18128         Follow spelling conventions.
18129
18130 2009-01-18  Ben Elliston  <bje@au.ibm.com>
18131
18132         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
18133         C++ warning about implicit conversion from void * to struct
18134         bitmap_head_def *.
18135         (bitmap_obstack_free): Likewise for bitmap_element *.
18136         * Makefile.in (bitmap.o-warn): Remove.
18137
18138 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
18139
18140         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
18141
18142 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
18143             Tobias Grosser  <tobi.grosser@amd.com>
18144
18145         * graphite.c (graphite_trans_scop_block): Do not block single
18146         nested loops.
18147
18148 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
18149
18150         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
18151         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
18152         test with assertion.
18153
18154 2009-01-16  Richard Guenther  <rguenther@suse.de>
18155
18156         PR tree-optimization/38835
18157         PR middle-end/36227
18158         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
18159         and INT + PTR -> (INT)(PTR p+ INT) folding.
18160         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
18161
18162 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
18163
18164         PR target/38554
18165         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
18166         the subreg from a lowpart subreg if it is also casting the value.
18167
18168 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18169             Tobias Grosser  <tobi.grosser@amd.com>
18170
18171         * graphite.c (compare_prefix_loops): New.
18172         (build_scop_canonical_schedules): Rewritten.
18173         (graphite_transform_loops): Move build_scop_canonical_schedules
18174         after build_scop_iteration_domain.
18175
18176 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18177             Tobias Grosser  <tobi.grosser@amd.com>
18178
18179         * graphite.c (add_conditions_to_domain): Add the loops to
18180         the dimension of the iteration domain.  Do copy the domain
18181         only when it exists.
18182         (build_scop_conditions_1): Do not call add_conditions_to_domain.
18183         (add_conditions_to_constraints): New.
18184         (can_generate_code_stmt, can_generate_code): Removed.
18185         (gloog): Do not call can_generate_code.
18186         (graphite_transform_loops): Call add_conditions_to_constraints
18187         after building the iteration domain.
18188
18189 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
18190
18191         PR tree-optimization/38789
18192         * tree-ssa-threadedge.c
18193         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18194         __builtin_constant_p.
18195
18196 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
18197
18198         * dce.c (delete_unmarked_insns): Reversed the order that insns are
18199         examined before deleting them.
18200
18201 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
18202
18203         * function.c (aggregate_value_p): Correctly extract the function
18204         type from CALL_EXPR_FN lookup.
18205
18206 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
18207
18208         * config/picochip/picochip.c (picochip_override_options): Revert
18209         CFI asm flag disable commited previously.
18210
18211 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
18212             Tobias Grosser  <tobi.grosser@amd.com>
18213             Jan Sjodin  <jan.sjodin@amd.com>
18214
18215         * graphite.c (scan_tree_for_params): On substractions negate
18216         all the coefficients of the term.
18217         (clast_to_gcc_expression_red): New.  Handle reduction expressions
18218         of more than two operands.
18219         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
18220         (get_vdef_before_scop): Handle also the case of default definitions.
18221
18222 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
18223
18224         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
18225         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
18226         Also use them when walking CALL_INSN_FUNCTION_USAGE.
18227
18228 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
18229             Joey Ye  <joey.ye@intel.com>
18230
18231         PR middle-end/37843
18232         * cfgexpand.c (expand_stack_alignment): Don't update stack
18233         boundary nor check incoming stack boundary here.
18234         (gimple_expand_cfg): Update stack boundary and check incoming
18235         stack boundary here.
18236
18237 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
18238
18239         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
18240
18241 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
18242
18243         PR rtl-optimization/38245
18244         * calls.c (expand_call): Add stack arguments to
18245         CALL_INSN_FUNCTION_USAGE even for pure calls (when
18246         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
18247         in regs and partially in memory or BLKmode arguments.
18248         (emit_library_call_value_1): Add stack arguments to
18249         CALL_INSN_FUNCTION_USAGE even for pure calls (when
18250         ACCUMULATE_OUTGOING_ARGS).
18251         * dce.c: Include tm_p.h.
18252         (find_call_stack_args): New function.
18253         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
18254         argument.
18255         (mark_insn): Call find_call_stack_args for CALL_Ps.
18256         (prescan_insns_for_dce): Walk insns backwards in bb rather than
18257         forwards.  Allocate and free arg_stores bitmap if needed, pass it
18258         down to deletable_insn_p, don't mark stores set in arg_stores
18259         bitmap, clear the bitmap at the beginning of each bb.
18260         * Makefile.in (dce.o): Depend on $(TM_P_H).
18261
18262 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
18263
18264         PR target/22599
18265         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
18266         to make sure the insn is a conditional test (bug 22599).  Reformat a
18267         few long lines.
18268
18269 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
18270
18271         PR middle-end/38431
18272         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
18273         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
18274         (gloog): Do not call cleanup_tree_cfg.
18275         (graphite_transform_loops): Call cleanup_tree_cfg after all
18276         scops have been code generated.
18277
18278 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
18279         * doc/gty.texi (Invoking the garbage collector): Added new node
18280         and section documenting ggc_collect.
18281
18282 2009-01-14  Richard Guenther  <rguenther@suse.de>
18283
18284         PR tree-optimization/38826
18285         PR middle-end/38477
18286         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
18287         initialization notes only if we actually emitted a warning.
18288         (intra_create_variable_infos): Add constraints for a result decl
18289         that is passed by hidden reference.
18290         (build_pred_graph): Mark all related variables non-direct on
18291         address-taking.
18292
18293 2009-01-14  Nick Clifton  <nickc@redhat.com>
18294
18295         * ira-conflicts.c: Include addresses.h for the definition of
18296         base_reg_class.
18297         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
18298         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
18299
18300 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18301
18302         PR target/38811
18303         * Makefile.in (ira-lives.o): Add except.h.
18304
18305         * ira-lives.c: Include except.h.
18306         (process_bb_node_lives): Process can_throw_internal.
18307
18308 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
18309
18310         PR rtl-optimization/38774
18311         * combine.c (simplify_set): When undoing cc_use change, don't do
18312         PUT_CODE on the newly created comparison, but instead put back the
18313         old comparison.
18314
18315 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
18316
18317         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
18318         values.  Remove duplicate arm8 entry.
18319
18320 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
18321
18322         PR tree-optimization/38786
18323         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
18324         the SSA_NAME case of expand_scalar_variables_expr.
18325         Set the type of an expression to the type of its assign statement.
18326         (expand_scalar_variables_expr): Also gather the scalar computation
18327         used to index the memory access.  Do not pass loop_p.
18328         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
18329         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
18330         the gimple_stmt_iterator where it inserts new code.
18331         Do not pass loop_p.
18332         (copy_bb_and_scalar_dependences): Do not pass loop_p.
18333         (translate_clast): Update call to copy_bb_and_scalar_dependences.
18334
18335 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
18336
18337         * graphite.h (debug_value): Removed.
18338         * graphite.c (debug_value): Removed.
18339
18340 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
18341
18342         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
18343         ldrd/strd with two 32-bit instructions.
18344
18345 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
18346
18347         * config/arm/arm.c (struct processors): Pass for speed down into
18348         cost helper functions.
18349         (const_ok_for_op): Handle COMPARE and inequality nodes.
18350         (arm_rtx_costs_1): Rewrite.
18351         (arm_size_rtx_costs): Update prototype.
18352         (arm_rtx_costs): Pass speed down to helper functions.
18353         (arm_slowmul_rtx_costs): Rework cost calculations.
18354         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
18355         (arm_9e_rtx_costs): Likewise.
18356
18357 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
18358
18359         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
18360         relocations of local symbols wider than UNITS_PER_WORD are not valid.
18361         (alpha_legitimize_address): Do not split local symbols wider than
18362         UNITS_PER_WORD into HIGH/LO_SUM parts.
18363
18364 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
18365
18366         PR bootstrap/38580
18367         * gcc.c (process_command): Replace call to execvp with calls
18368         to pex_one and exit.
18369
18370 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
18371
18372         PR target/29141
18373         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
18374         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
18375         variant for devices with 3-byte PC.
18376         (__tablejump_elpm__): New.
18377
18378 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18379
18380         PR c/32041
18381         * c-parser.c (c_parser_postfix_expression): Allow `->' in
18382         offsetof member-designator, handle it as `[0].'.
18383
18384 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18385
18386         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
18387         function when not using named sections on targets with named sections
18388         if branch distance is less than 262132.
18389
18390 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
18391
18392         * combine.c (combine_instructions):  Recompute
18393         optimize_this_for_speed_p  for each BB in the main combine loop.
18394
18395 2009-01-12  Tomas Bily  <tbily@suse.cz>
18396
18397         PR middlend/38385
18398         * tree-loop-distribution.c (prop_phis): New function.
18399         (generate_builtin): Call prop_phis.
18400         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
18401
18402 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18403
18404         PR tree-optimization/38807
18405         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
18406         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
18407
18408 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
18409
18410         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
18411         subreg of op0 to the original op0.
18412
18413 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
18414
18415         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
18416
18417 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
18418
18419         PR debug/7055
18420         * mips-tfile.c (parse_def): Fix parsing of def strings
18421         starting with digits.
18422
18423 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
18424
18425         PR target/38695
18426         * config/arm/arm.c (arm_is_long_call_p): Don't call
18427         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
18428
18429 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
18430
18431         * regrename.c (regrename_optimize): Fix dumping.
18432         (find_oldest_value_reg): Preserve REG_POINTER.
18433         (copy_hardreg_forward_1): Likewise.
18434
18435 2009-01-09  Diego Novillo  <dnovillo@google.com>
18436
18437         * gimple.h (struct gimple_statement_base) <uid>: Document
18438         the restrictions on its use.
18439         (gimple_uid): Tidy.
18440         (gimple_set_uid): Tidy.
18441
18442 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18443
18444         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
18445         zero guard even if align_bytes != 0 and count is smaller than
18446         size_needed.
18447
18448 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
18449
18450         PR rtl-optimization/38495
18451         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
18452         (add_range_and_copies_from_move_list): Print all added ranges.
18453         Add ranges to memory optimized destination.
18454
18455 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18456
18457         PR target/38686
18458         PR target/38708
18459         * config/i386/i386.c (override_options): Reject
18460         -mstringop-strategy=rep_8byte with -m32.
18461         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
18462         to 1.  Do count comparison against epilogue_size_needed at compile
18463         time even when count_exp was constant forced into register.  For
18464         size_needed don't jump to epilogue, instead just avoid aligning
18465         and invoke the body algorithm.  If need_zero_guard, add zero guard
18466         even if count is non-zero, but smaller than size_needed + number of
18467         bytes that could be stored for alignment.
18468         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
18469         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
18470         but smaller than size_needed + number of bytes that could be stored
18471         for alignment.  Compare size_needed with epilogue_size_needed instead
18472         of desired_align - align, don't adjust size_needed, pass
18473         epilogue_size_needed to the epilogue expanders.
18474
18475         PR c/35742
18476         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
18477
18478 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18479
18480         * pa.c (last_address): Change to unsigned.
18481         (update_total_code_bytes): Change argument to unsigned.  Don't
18482         check if insn addresses are set.
18483         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
18484         addresses are not set.
18485         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
18486
18487 2009-01-09  Nick Clifton  <nickc@redhat.com>
18488
18489         * config/sh/symbian.c: Replace uses of DECL_INLINE with
18490         DECL_DECLARED_INLINE_P.
18491
18492 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18493
18494         PR middle-end/38347
18495         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
18496         GET_MODE (op0) in operand_subword_force calls.
18497
18498         PR middle-end/38771
18499         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
18500         fold_convert arg0 operands to TREE_TYPE (op0) first.
18501
18502 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
18503
18504         * params.def (ira-max-conflict-table-size): Decrease default value
18505         to 1000.
18506
18507 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
18508
18509         PR tree-optimization/37031
18510         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
18511         on parameter_set.
18512         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
18513         allocate it using gc instead of heap, use VEC_quick_push instead of
18514         VEC_safe_push.
18515         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
18516         instead of heap, use VEC_quick_push instead of VEC_safe_push.
18517         * tree-data-ref.h (struct access_matrix): Change matrix to gc
18518         allocated vector from heap allocated.
18519         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
18520         * tree-loop-linear.c (linear_transform_loops): Allocate nest
18521         vector only after perfect_loop_nest_depth call.
18522
18523 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
18524             Jan Sjodin  <jan.sjodin@amd.com>
18525
18526         PR tree-optimization/38559
18527         * graphite.c (debug_value, copy_constraint,
18528         swap_constraint_variables, scale_constraint_variable, ): New.
18529         (get_lower_bound, get_upper_bound): Removed.
18530         (graphite_trans_bb_strip_mine): Clean up this code that works
18531         only for constant number of iterations.  Fully copy upper and
18532         lower bound constraints, not only the constant part of them.
18533         * graphite.h (debug_value): Declared.
18534
18535 2009-01-08  Ira Rosen  <irar@il.ibm.com>
18536
18537         PR tree-optimization/37194
18538         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
18539         Don't add the cost of cost model guard in prologue to scalar
18540         outside cost in case of known number of iterations.
18541
18542 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18543             Alan Modra  <amodra@bigpond.net.au>
18544
18545         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
18546         non-word-aligned REG+CONST addressing.
18547
18548 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18549
18550         PR target/38706
18551         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
18552         free_after_compilation when outputting a thunk.
18553         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
18554         Do not call free_after_compilation here.
18555
18556 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18557
18558         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
18559         (ix86_valid_target_attribute_inner_p): Ditto.
18560
18561 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
18562
18563         PR tree-optimization/38492
18564         PR tree-optimization/38498
18565         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
18566         * tree-chrec.h (scev_is_linear_expression): Declared.
18567         * graphite.c (graphite_cannot_represent_loop_niter): New.
18568         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
18569         (graphite_loop_normal_form): Use gcc_assert.
18570         (scan_tree_for_params): Use CASE_CONVERT.
18571         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
18572         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
18573         Use gcc_assert.  Discard scops that contain unhandled cases.
18574         (build_scop_conditions): Return a boolean status for unhandled cases.
18575         (strip_mine_profitable_p): Print the loop number, not its depth.
18576         (is_interchange_valid): Pass the depth of the loop nest, don't
18577         recompute it wrongly.
18578         (graphite_trans_bb_block): Same.
18579         (graphite_trans_bb_block): Print tentative of loop blocking.
18580         (graphite_trans_scop_block): Do not print that the loop has been
18581         blocked.
18582         (graphite_transform_loops): Do not handle scops that contain condition
18583         scalar phi nodes.
18584
18585 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
18586
18587         AVX Programming Reference (December, 2008)
18588         * config/i386/avxintrin.h (_mm256_stream_si256): New.
18589         (_mm256_stream_pd): Likewise.
18590         (_mm256_stream_ps): Likewise.
18591
18592         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
18593         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
18594         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
18595         (bdesc_special_args): Add __builtin_ia32_movntdq256,
18596         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
18597         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
18598         (ix86_expand_special_args_builtin): Likewise.
18599
18600         * config/i386/sse.md (AVXMODEDI): New.
18601         (avx_movnt<mode>): Likewise.
18602         (avx_movnt<mode>): Likewise.
18603         (<sse>_movnt<mode>): Remove AVX support.
18604         (sse2_movntv2di): Likewise.
18605
18606 2009-01-07  Richard Guenther  <rguenther@suse.de>
18607
18608         PR middle-end/38751
18609         * fold-const.c (extract_muldiv): Remove obsolete comment.
18610         (fold_plusminus_mult_expr): Undo MINUS_EXPR
18611         to PLUS_EXPR canonicalization for the canonicalization.
18612
18613 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
18614
18615         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
18616         hosted cross-compilers generating less efficient code.
18617
18618 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18619
18620         * function.h (rtl_data): Add a dbr_scheduled_p field.
18621         * reorg.c (dbr_schedule): Set it.
18622         (gate_handle_delay_slots): Check it.
18623         * config/mips/mips.c (mips_base_delayed_branch): Delete.
18624         (mips_reorg): Check flag_delayed_branch instead of
18625         mips_base_delayed_branch.
18626         (mips_override_options): Don't set mips_base_delayed_branch
18627         or flag_delayed_branch.
18628
18629 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18630
18631         PR rtl-optimization/38426.
18632         * ira.c (ira): Set current_function_is_leaf earlier.
18633
18634 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
18635
18636         PR rtl-optimization/38722
18637         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
18638         too early, only set a flag and modify after last possible
18639         undo_all point.
18640
18641 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
18642
18643         PR c/34252
18644         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
18645         * real.c (decimal_single_format): Correct values of emin and emax.
18646         (decimal_double_format): Ditto.
18647         (decimal_quad_format): Ditto.
18648         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
18649         computation of DECnn_MIN and DECnn_MAX for corrected values of
18650         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
18651         __DECnn_MIN__, and adjust its computation for the corrected value
18652         of emin.
18653
18654 2009-01-06  Jan Hubicka  <jh@suse.cz>
18655
18656         PR target/38744
18657         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
18658
18659 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
18660
18661         * doc/contrib.texi (Contributors): Slightly adjust the end note.
18662         Add Robert Clark to the list of testers.
18663
18664 2009-01-06  Jan Hubicka  <jh@suse.cz>
18665             Kai Tietz  <kai.tietz@onevision.com>
18666
18667         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
18668         * config/i386/i386.c (ix86_expand_call): Add clobbers.
18669
18670 2009-01-06  Jan Hubicka  <jh@suse.cz>
18671             Kai Tietz  <kai.tietz@onevision.com>
18672
18673         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
18674         for w64 ABI.
18675         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
18676         (ix86_nsaved_regs): Count only general purpose regs.
18677         (ix86_nsaved_sseregs): New.
18678         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
18679         to 16 for w64; compute padding and size of sse reg save area.
18680         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
18681         general purpose regs.
18682         (ix86_emit_save_sse_regs_using_mov): New.
18683         (ix86_expand_prologue): Save SSE regs if needed.
18684         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
18685         (ix86_emit_restore_sse_regs_using_mov): New.
18686         (ix86_expand_epilogue): Save SSE regs if needed.
18687
18688 2009-01-06  Jan Hubicka  <jh@suse.cz>
18689             Kai Tietz  <kai.tietz@onevision.com>
18690
18691         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
18692         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
18693         functions when accumulate outgoing args is off.
18694
18695 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18696
18697         PR bootstrap/38742
18698         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
18699         before using pseudos_have_intersected_live_ranges_p.
18700
18701         * ira-int.h (ira_assert): Always define.
18702
18703 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18704
18705         AVX Programming Reference (December, 2008)
18706         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
18707         (_mm256_permute2_pd): Likewise.
18708         (_mm_permute2_ps): Likewise.
18709         (_mm256_permute2_ps): Likewise.
18710         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
18711         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
18712
18713         * config/i386/i386.c (ix86_builtins): Remove
18714         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
18715         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
18716         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
18717         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
18718         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
18719         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
18720         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
18721         __builtin_ia32_vpermil2ps256.
18722         (ix86_init_mmx_sse_builtins): Updated.
18723         (ix86_expand_args_builtin): Likewise.
18724
18725 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18726
18727         * pa.c (output_call): Relocate non-jump insns in the delay slot of
18728         long absolute calls when generating PA 2.0 code.
18729
18730 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
18731
18732         PR rtl-optimization/38583
18733         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
18734
18735         * params.def (ira-max-conflict-table-size): New.
18736
18737         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
18738
18739         * ira.h (ira_conflicts_p): New external definition.
18740
18741         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
18742         table.  Report this.  Return result of building.
18743         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
18744         building conflict table.
18745
18746         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
18747         (ira_color): Use ira_conflicts_p.
18748
18749         * global.c: Include ira.h.
18750         (pseudo_for_reload_consideration_p, build_insn_chain): Use
18751         ira_conflicts_p.
18752
18753         * Makefile.in (global.o): Add ira.h.
18754
18755         * ira-build.c (mark_all_loops_for_removal,
18756         propagate_some_info_from_allocno): New.
18757         (remove_unnecessary_allocnos): Call
18758         propagate_some_info_from_allocno.
18759         (remove_low_level_allocnos): New.
18760         (remove_unnecessary_regions): Add parameter.  Call
18761         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
18762         parameter to remove_unnecessary_regions.
18763         (ira_build): Remove all regions but root if the conflict table was
18764         not built.  Update conflict hard regs for allocnos crossing calls.
18765
18766         * ira.c (ira_conflicts_p): New global.
18767         (ira): Define and use ira_conflicts_p.
18768
18769         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18770         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
18771         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
18772
18773 2009-01-06  Ben Elliston  <bje@au.ibm.com>
18774
18775         * gengtype-lex.l (YY_NO_INPUT): Define.
18776
18777 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18778
18779         PR c/34911
18780         * c-common.c (handle_vector_size_attribute): Also reject
18781         BOOLEAN_TYPE types.
18782
18783 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
18784
18785         PR tree-optimization/38492
18786         * graphite.c (rename_map_elt, debug_rename_elt,
18787         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
18788         rename_map_elt_info, eq_rename_map_elts,
18789         get_new_name_from_old_name, bb_in_sese_p): Moved around.
18790         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
18791         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
18792         (sese_build_livein_liveouts): New.
18793         (new_sese, free_sese): New.
18794         (new_scop): Call new_sese.
18795         (free_scop): Call free_sese.
18796         (rename_variables_from_edge, rename_phis_end_scop): Removed.
18797         (register_old_new_names): Renamed register_old_and_new_names.
18798         (register_scop_liveout_renames, add_loop_exit_phis,
18799         insert_loop_close_phis, struct igp,
18800         default_liveout_before_guard, add_guard_exit_phis,
18801         insert_guard_phis, copy_renames): New.
18802         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
18803         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
18804         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
18805         (scop_adjust_phis_for_liveouts): New.
18806         (gloog): Call scop_adjust_phis_for_liveouts.
18807
18808         * graphite.h (struct sese): Documented.  Added fields liveout,
18809         num_ver and livein.
18810         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
18811         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
18812         (struct scop): Added field liveout_renames.
18813         (SCOP_LIVEOUT_RENAMES): New.
18814
18815 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18816
18817         PR tree-optimization/38510
18818         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
18819         (translate_clast): Call recompute_all_dominators before
18820         graphite_verify.
18821         (gloog): Call recompute_all_dominators before graphite_verify.
18822
18823 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18824             Jan Sjodin  <jan.sjodin@amd.com>
18825
18826         PR tree-optimization/38500
18827         * graphite.c (create_sese_edges): Call fix_loop_structure after
18828         splitting blocks.
18829
18830 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
18831
18832         * config.gcc: Add m32r*-*-rtems*.
18833         * config/m32r/rtems.h: New file.
18834
18835 2009-01-05  Ben Elliston  <bje@au.ibm.com>
18836
18837         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
18838         (.po.pox): Likewise.
18839         (po/gcc.pot): Likewise.
18840
18841 2009-01-04  David S. Miller  <davem@davemloft.net>
18842
18843         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
18844         (STARTING_FRAME_OFFSET): Always set to zero.
18845
18846 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18847
18848         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
18849         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
18850         fixed-point types, and vectors of the same.
18851
18852 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18853
18854         * config/mips/sync.md (*mb_barrier): Rename to...
18855         (*memory_barrier): ...this.
18856
18857 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
18858
18859         * doc/extend.texi (Function Attributes): Move @cindex after @item
18860         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
18861         and put in alphabetical order. Fix 'target' name and put in order.
18862         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
18863         typos.
18864
18865 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
18866
18867         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
18868         (memory_barrier): Expand as unspec instead of unspec_volatile.
18869         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18870         (*memory_barrier): Define as unspec instead of unspec_volatile.
18871         Use (match_dup 0) as input operand.
18872
18873         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
18874         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
18875         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
18876         scratch register.  Remove operand 1.
18877         (*stbar): Define as unspec instead of unspec_volatile.
18878         Use (match_dup 0) as input operand, remove (const_int 8).
18879         (*membar): Define as unspec instead of unspec_volatile.
18880         Use (match_dup 0) as input operand, remove input operand 2.
18881
18882         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
18883         (memory_barrier): Expand as unspec instead of unspec_volatile.
18884         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18885         (*memory_barrier): Define as unspec instead of unspec_volatile.
18886         Use (match_dup 0) as input operand.
18887
18888         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
18889         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18890         Set volatile flag on operand 0.
18891         (*memory_barrier): New insn pattern.
18892
18893         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
18894         insn operands.
18895         (*memory_barrier): Use (match_dup 0) as input operand.
18896
18897         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
18898         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18899         Set volatile flag on operand 0.
18900         (*mb_internal): New insn pattern.
18901
18902         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
18903
18904 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18905
18906         PR middle-end/38586
18907         * function.c (struct temp_slot): Move to the section of the file
18908         that deals with temp slots.  Remove field 'address'.
18909         (temp_slot_address_table): New hash table of address -> temp slot.
18910         (struct temp_slot_address_entry): New struct, items for the table.
18911         (temp_slot_address_compute_hash, temp_slot_address_hash,
18912         temp_slot_address_eq, insert_temp_slot_address): Support functions
18913         for the new table.
18914         (find_temp_slot_from_address): Rewrite to use the new hash table.
18915         (remove_unused_temp_slot_addresses): Remove addresses of temp
18916         slots that have been made available.
18917         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
18918         worker function for remove_unused_temp_slot_addresses.
18919         (assign_stack_temp_for_type): Don't clear the temp slot address list.
18920         Add the temp slot address to the address -> temp slot map.
18921         (update_temp_slot_address): Update via insert_temp_slot_address.
18922         (free_temp_slots): Call remove_unused_temp_slot_addresses.
18923         (pop_temp_slots): Likewise.
18924         (init_temp_slots): Allocate the address -> temp slot map, or empty
18925         the map if it is already allocated.
18926         (prepare_function_start): Initialize temp slot processing.
18927
18928 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18929
18930         PR middle-end/38584
18931         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
18932         Calculate the size of all stack vars assuming no packing of stack
18933         vars will happen, replacing a quadratic algorithm with a linear one.
18934
18935 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18936
18937         PR target/38707
18938         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
18939         can't be used.
18940
18941 2009-01-03  Diego Novillo  <dnovillo@google.com>
18942
18943         * doc/contrib.texi: Update contributions.
18944
18945 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18946
18947         PR c++/38705
18948         * builtins.c (fold_builtin_memory_op): Give up if either operand
18949         is volatile.  Set srctype or desttype to non-qualified version
18950         of the other type.
18951
18952         PR c/38700
18953         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
18954         and FUNCTION_DECLs.
18955
18956 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
18957
18958         PR rtl-optimization/35805
18959         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
18960         problem if fast dce is able to remove any instructions.
18961         * dce.c (dce_process_block): Fix dump message.
18962
18963 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
18964
18965         PR 33649
18966         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
18967
18968 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
18969
18970         PR middle-end/38690
18971         * tree-flow.h (op_code_prio, op_prio): New prototypes.
18972         * tree-pretty-print.c (op_code_prio): New function.
18973         (op_prio): No longer static.  Use op_code_prio.
18974         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
18975         Use op_prio and op_code_prio to determine if () should be
18976         printed around operand(s) or not.
18977
18978         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
18979         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
18980         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
18981         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
18982         pp_character instead of pp_string for single letter printing.
18983
18984 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
18985
18986         * doc/extend.texi: Fix '#pragma GCC option' typo.
18987
18988 2009-01-02  Richard Guenther  <rguenther@suse.de>
18989
18990         * doc/install.texi (--enable-checking): Mention different
18991         default for stage1.
18992         (--enable-stage1-checking): Document.
18993
18994 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
18995
18996         PR middle-end/30142
18997         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
18998         case to be an error.
18999
19000 2009-01-02  Ben Elliston  <bje@au.ibm.com>
19001
19002         * config/fp-bit.h (pack_d): Constify argument.
19003         * config/fp-bit.c (makenan): Constify return type. Remove casts.
19004         (isnan): Constify argument.
19005         (isinf): Likewise.
19006         (iszero): Likewise.
19007         (pack_d): Likewise.
19008         (_fpadd_parts): Constify return type.
19009         (_fpmul_parts): Likewise.
19010         (_fpdiv_parts): Likewise.
19011
19012 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
19013
19014         PR c/36489
19015         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
19016         warn about overwriting initializer with side-effects or
19017         -Woverride-init if !IMPLICIT.
19018         (output_init_element): Likewise.  Pass IMPLICIT down to
19019         add_pending_init.
19020         (process_init_element): Add IMPLICIT argument.  Pass it down
19021         to output_init_element.
19022         (push_init_element, pop_init_level, set_designator): Adjust
19023         process_init_element callers.
19024         (set_nonincremental_init, set_nonincremental_init_from_string):
19025         Adjust add_pending_init callers.
19026         (output_pending_init_elements): Adjust output_init_element callers.
19027         * c-tree.h (process_init_element): Adjust prototype.
19028         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
19029         process_init_element callers.
19030
19031 \f
19032 Copyright (C) 2009 Free Software Foundation, Inc.
19033
19034 Copying and distribution of this file, with or without modification,
19035 are permitted in any medium without royalty provided the copyright
19036 notice and this notice are preserved.