OSDN Git Service

2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2
3         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4
5 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
6
7         PR target/36222
8         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
9         and op1 expansion before vector concat to have less live pseudos.
10
11 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
12
13         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14         ix86_expand_vector_set if supported.
15
16 2008-05-13  Diego Novillo  <dnovillo@google.com>
17             Kenneth Zadeck  <zadeck@naturalbridge.com>
18
19         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
20
21         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
22         phinodes_print_statistics, init_ssanames, fini_ssanames,
23         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
24         release_ssa_name, release_defs, replace_ssa_name_symbol,
25         ssanames_print_statistics): Move ...
26         * tree-flow.h: ... here.
27         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
28         Use FN instead of cfun.
29         (make_ssa_name_fn): Rename from make_ssa_name.
30         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
31         * tree-flow-inline.h (make_ssa_name): Move from
32         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
33         * omp-low.c (expand_omp_parallel):
34         * tree-flow-inline.h (redirect_edge_var_map_result):
35         * tree-ssa.c (init_tree_ssa): Add argument FN.  Use it instead of cfun.
36         Update all users.
37
38 2008-05-13  Tom Tromey  <tromey@redhat.com>
39
40         PR preprocessor/22168:
41         * doc/cpp.texi (Top): Update menu.
42         (Alternatives to Wrapper #ifndef): New node.
43         (Other Directives): Document deprecation.
44         (Obsolete Features): Remove menu.
45         (Assertions): Merge node into Obsolete Features.
46         (Obsolete once-only headers): Move earlier; rename to Alternatives
47         to Wrapper #ifndef.
48         * doc/cppopts.texi: Update.
49         * c.opt (Wdeprecated): Enable for C and ObjC.
50         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
51         (C++ Dialect Options): Move -Wno-deprecated from here to...
52         (Warning Options): ... here.
53
54 2008-05-13  Richard Guenther  <rguenther@suse.de>
55
56         PR middle-end/36227
57         * fold-const.c (fold_sign_changed_comparison): Do not allow
58         changes in pointer-ness.
59
60 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
61
62         PR target/24713
63         * config/sh/sh.c (sh_expand_prologue): Don't clear
64         RTX_FRAME_RELATED_P for push insns.
65
66 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
67
68         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
69
70 2008-05-12  Anatoly Sokolov <aesok@post.ru>
71
72         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
73         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
74         Use 'machine->is_leaf' instead of 'leaf_func_p'.
75
76 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
77
78         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
79         (*vec_concatv4sf_sse): This.
80         (*sse2_concatv2si): Renamed to ...
81         (*vec_concatv2si_sse2): This.
82         (*sse1_concatv2si): Renamed to ...
83         (*vec_concatv2si_sse): This.
84         (*vec_concatv2di_rex): Renamed to ...
85         (*vec_concatv2di_rex64): This.
86         (*vec_concatv2si_sse4_1): New.
87         (*vec_concatv2di_rex64_sse4_1): Likewise.
88
89 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
90
91         PR rtl-optimization/36111
92         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
93         that was created for swappable operands.
94
95 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
96
97         PR ada/36001
98         * Makefile.in: Substitute GNATMAKE and GNATBIND.
99         * configure.ac: Add call to ACX_PROG_GNAT.
100
101 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
102
103         * optc-gen.awk: Fix comment typo.
104
105 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
106
107         * pretty-print.c (pp_integer_with_precision): Use
108         HOST_LONG_LONG_FORMAT.
109
110 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
111
112         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
113                 
114 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
115
116         * config/i386/i386.c (bdesc_ptest): Removed.
117         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
118         (bdesc_args): Add __builtin_ia32_ptestz128,
119         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
120         (ix86_init_mmx_sse_builtins): Updated.
121         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
122         (ix86_expand_builtin): Updated.
123
124 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
125
126         * tree-cfg.c (valid_fixed_convert_types_p): New function.
127         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
128
129 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
130
131         * value-prof.c (interesting_stringop_to_profile): Do not
132         return early for BUILT_IN_MEMPCPY.
133
134 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
135
136         * calls.c (expand_call): Don't use callgraph to increase
137         preferred_stack_boundary.
138
139         * cgraph.h (cgraph_rtl_info): Use unsigned on
140         preferred_incoming_stack_boundary.
141
142         * final.c (rest_of_clean_state): Use unsigned on
143         preferred_stack_boundary.
144
145 2008-05-09  Tom Tromey  <tromey@redhat.com>
146
147         PR preprocessor/22231:
148         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
149         proceeding.
150
151 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
152
153         PR tree-optimization/36129
154         * tree-ssa-ccp.c: Include value-prof.h.
155         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
156         built-in function was folded to a constant.
157         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
158
159 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
160             Sebastian Pop  <sebastian.pop@amd.com>
161
162         * tree-scalar-evolution.c: Document instantiate_scev.
163         (instantiate_parameters_1): Renamed instantiate_scev_1.
164         Don't use the same loop for instantiation_loop and evolution_loop.
165         (instantiate_scev): New.
166         (instantiate_parameters): Moved...
167         (resolve_mixers): Update call to instantiate_scev_1 to pass the
168         same loop twice.  Maintains the semantics for this function.
169         * tree-scalar-evolution.h (instantiate_scev): Declare.
170         (instantiate_parameters): ...here.  Now static inline.
171         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
172         instead of resolve_mixers.
173
174 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
175
176         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
177
178 2008-05-09  Tomas Bily  <tbily@suse.cz>
179
180         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
181         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
182         * tree-ssa-structalias.c (get_constraint_for): Likewise.
183         * c-common.c (c_common_truthvalue_conversion): Likewise.
184         * tree-object-size.c (compute_object_offset): Likewise.
185         * tree-inline.c (estimate_num_insns_1): Likewise.
186         * varasm.c (const_hash_1, compare_constant, copy_constant)
187         (compute_reloc_for_constant, output_addressed_constants)
188         (initializer_constant_valid_p): Likewise.
189         * c-omp.c (check_omp_for_incr_expr): Likewise.
190         * gimplify.c (gimplify_expr): Likewise.
191         * c-typeck.c (c_finish_return): Likewise.
192         * tree-vectorizer.c (supportable_widening_operation)
193         (supportable_narrowing_operation): Likewise.
194         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
195         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
196         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
197         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
198         (descr_info_loc): Likewise.
199         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
200         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
201         (fold_unary): Likewise.
202         * builtins.c (get_pointer_alignment): Likewise.
203         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
204         (instantiate_parameters_1): Likewise.
205         * tree.c (expr_align, stabilize_reference): Likewise.
206         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
207         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
208         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
209         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
210         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
211         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
212         Likewise.
213         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
214         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
215         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
216         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
217         (forward_propagate_comparison)
218         (tree_ssa_forward_propagate_single_use_vars): Likewise.
219         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
220         * emit-rtl.c (component_ref_for_mem_expr)
221         (set_mem_attributes_minus_bitpos): Likewise.
222         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
223         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
224         Likewise.
225         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
226         (build_function_call, pointer_diff, build_compound_expr)
227         (c_finish_return): Likewise.
228         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
229         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
230         Likewise.
231         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
232         * expr.c (is_aligning_offset): Likewise.
233         * tree-ssa-alias.c (is_escape_site): Likewise.
234         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
235         (check_all_va_list_escapes): Likewise.
236         * tree-ssa-loop-ivopts.c (determine_base_object)
237         (determine_common_wider_type): Likewise.
238         * dojump.c (do_jump): Likewise.
239         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
240         * tree-gimple.c (is_gimple_cast): Likewise.
241         * fold-const.c (decode_field_reference, )
242         (fold_sign_changed_comparison, fold_unary, fold_comparison)
243         (fold_binary): Likewise.
244         * tree-ssa-alias-warnings.c (find_alias_site_helper)
245         (already_warned_in_frontend_p): Likewise.
246         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
247         * tree.c (really_constant_p, get_unwidened): Likewise.
248         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
249         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
250         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
251         Likewise.
252         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
253         CONVERT_EXPR_P.
254         (CONVERT_EXPR_P): Define.
255         (CASE_CONVERT): Define.
256         
257 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
258
259         PR middle-end/36117
260         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
261         (delete_unmarked_insns): When deleting a call, call
262         delete_unreachable_blocks.
263         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
264         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
265
266 2008-05-08  Richard Guenther  <rguenther@suse.de>
267
268         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
269         (-ftree-salias): Likewise.
270         (salias-max-implicit-fields): Remove param documentation.
271         (salias-max-array-elements): Likewise.
272         * tree-pass.h (pass_create_structure_vars): Remove.
273         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
274         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
275         * tree-ssa-alias.c (create_structure_vars): Remove.
276         (gate_structure_vars): Likewise.
277         (pass_create_structure_vars): Likewise.
278         (gate_build_alias): Likewise.
279         (pass_build_alias): Adjust to run always and dump the function.
280         * common.opt (ftree-salias): Hide.
281         * passes.c (init_optimization_passes): Remove
282         pass_create_structure_vars, adjust comment.
283         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
284         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
285         * opts.c (decode_options): Do not set flag_tree_salias.
286         (common_handle_option): Add OPT_ftree_salias to the backward
287         compatibility section.
288
289 2008-05-08  Richard Guenther  <rguenther@suse.de>
290
291         * tree-flow-inline.h (var_can_have_subvars): Move ...
292         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
293         * tree-flow.h (var_can_have_subvars): Remove.
294         (push_fields_onto_fieldstack): Remove.
295         (sort_fieldstack): Likewise.
296         (struct fieldoff): Move ...
297         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
298         alias_set and base_for_components fields.
299         (sort_fieldstack): Make static.
300         (push_fields_onto_fieldstack): Likewise.  Remove code that
301         handles anything but RECORD_TYPEs.  Remove alias_set and
302         base_for_components handling.
303         (create_variable_info_for): Adjust.
304
305 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
306
307         * common.opt (Wframe-larger-than=): Shorten the help message
308         to one line.
309         * doc/invoke.texi (Wframe-larger-than=): Add more description.
310
311 2008-05-08  Rafael Espindola  <espindola@google.com>
312
313         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
314         trap.
315         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
316         trap and that both operands are gimple values.
317         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
318         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
319         is a fp operation.
320
321 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
322
323         * read-rtl.c (join_c_conditions): Return the first string if the
324         two strings are equal.
325
326 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
327
328         * gensupport.h (pred_data): Add a "num_codes" field.
329         (add_predicate_code): Declare.
330         * gensupport.c (add_predicate_code): New function.
331         (std_pred_table): Add an "allows_const_p" field.
332         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
333         Remove the (incomplete) list of such codes from the codes field.
334         (init_predicate_table): Use add_predicate_code.  Add all
335         RTX_CONST_OBJs if allows_const_p is true.
336         * genrecog.c (process_define_predicate): Use add_predicate_code.
337
338 2008-05-08  David Daney  <ddaney@avtrex.com>
339             Richard Sandiford  <rsandifo@nildram.co.uk>
340         
341         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
342         special case of constant zero operands.
343         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
344         old and new values.  Special case constant zero values.
345         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
346         fails.
347         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
348         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
349
350 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
351
352         PR target/36090
353         * simplify-rtx.c (simplify_plus_minus): Create CONST of
354         similar RTX_CONST_OBJ before CONST_INT.
355
356 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
357
358         * stmt.c (expand_stack_restore): Change sa mode if needed.
359
360 2008-05-08  Richard Guenther  <rguenther@suse.de>
361
362         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
363         return type to bool.
364         (ix86_sol10_return_in_memory): Likewise.
365         (ix86_i386elf_return_in_memory): Likewise.
366         (ix86_i386interix_return_in_memory): Likewise.
367         * config/i386/i386.c (ix86_return_in_memory): Likewise.
368         (ix86_sol10_return_in_memory): Likewise.
369         (ix86_i386elf_return_in_memory): Likewise.
370         (ix86_i386interix_return_in_memory): Likewise.
371
372 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
373
374         PR bootstrap/36180
375         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
376         fndecl argument.
377         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
378         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
379         declared in front.
380
381 2008-05-08  Richard Guenther  <rguenther@suse.de>
382
383         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
384         * tree-data-ref.h (struct dr_alias): Remove subvars field.
385         (DR_SUBVARS): Remove.
386         * tree-dfa.c (dump_subvars_for): Remove.
387         (debug_subvars_for): Likewise.
388         (dump_variable): Do not dump subvars.
389         (remove_referenced_var): Do not remove subvars.
390         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
391         (lookup_subvars_for_var): Remove.
392         (get_subvars_for_var): Likewise.
393         (get_subvars_at): Likewise.
394         (get_first_overlapping_subvar): Likewise.
395         (overlap_subvar): Likewise.
396         * tree-flow.h (subvar_t): Remove.
397         (struct var_ann_d): Remove subvars field.
398         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
399         argument.  Remove special handling of SFTs.
400         (compute_tag_properties): Likewise.
401         (set_initial_properties): Likewise.
402         (compute_call_clobbered): Likewise.
403         (count_mem_refs): Likewise.
404         (compute_memory_partitions): Likewise.
405         (compute_flow_insensitive_aliasing): Likewise.
406         (setup_pointers_and_addressables): Likewise.
407         (new_type_alias): Likewise.
408         (struct used_part): Remove.
409         (used_portions): Likewise.
410         (struct used_part_map): Likewise.
411         (used_part_map_eq): Likewise.
412         (used_part_map_hash): Likewise.
413         (free_used_part_map): Likewise.
414         (up_lookup): Likewise.
415         (up_insert): Likewise.
416         (get_or_create_used_part_for): Likewise.
417         (create_sft): Likewise.
418         (create_overlap_variables_for): Likewise.
419         (find_used_portions): Likewise.
420         (create_structure_vars): Likewise.
421         * tree.def (STRUCT_FIELD_TAG): Remove.
422         * tree.h (MTAG_P): Adjust.
423         (struct tree_memory_tag): Remove base_for_components and
424         unpartitionable flags.
425         (struct tree_struct_field_tag): Remove.
426         (SFT_PARENT_VAR): Likewise.
427         (SFT_OFFSET): Likewise.
428         (SFT_SIZE): Likewise.
429         (SFT_NONADDRESSABLE_P): Likewise.
430         (SFT_ALIAS_SET): Likewise.
431         (SFT_UNPARTITIONABLE_P): Likewise.
432         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
433         (union tree_node): Remove sft field.
434         * alias.c (get_alias_set): Remove special handling of SFTs.
435         * print-tree.c (print_node): Remove handling of SFTs.
436         * tree-dump.c (dequeue_and_dump): Likewise.
437         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
438         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
439         * tree-predcom.c (set_alias_info): Do not set subvars.
440         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
441         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
442         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
443         (add_vars_for_offset): Remove.
444         (add_virtual_operand): Remove special handling of SFTs.
445         (add_call_clobber_ops): Likewise.
446         (add_call_read_ops): Likewise.
447         (get_asm_expr_operands): Likewise.
448         (get_modify_stmt_operands): Likewise.
449         (get_expr_operands): Likewise.
450         (add_to_addressable_set): Likewise.
451         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
452         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
453         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
454         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
455         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
456         (tree_node_structure): Likewise.
457         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
458         handling of SFTs.
459         (find_what_p_points_to): Likewise.
460
461 2008-05-08  Sa Liu  <saliu@de.ibm.com>
462
463         * config/spu/spu.md: Fixed subti3 pattern.
464
465 2008-05-08  Richard Guenther  <rguenther@suse.de>
466
467         PR middle-end/36154
468         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
469         sure to create a representative for trailing arrays for PTA.
470
471 2008-05-08  Richard Guenther  <rguenther@suse.de>
472
473         PR middle-end/36172
474         * fold-const.c (operand_equal_p): Two objects which types
475         differ in pointerness are not equal.
476
477 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
478
479         * calls.c (compute_argument_block_size): Add argument tree fndecl.
480         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
481         (emit_library_call_value_1): Add new variable fndecl initialized by
482         NULL_TREE. It should be the decl type of orgfun, but this information
483         seems not to be available here, so it uses the default calling abi.
484         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
485         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
486         by TARGET_RETURN_IN_MEMORY.
487         * config/i386/i386-interix.h: Likewise.
488         * config/i386/i386.h: Likewise.
489         * config/i386/i386elf.h: Likewise.
490         * config/i386/ptx4-i.h: Likewise.
491         * config/i386/sol2-10.h: Likewise.
492         * config/i386/sysv4.h: Likewise.
493         * config/i386/vx-common.h: Likewise.
494         * config/cris/cris.h: Removed #if 0 clause.
495         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
496         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
497         argument.
498         (ix86_sol10_return_in_memory): Likewise.
499         (ix86_i386elf_return_in_memory): New.
500         (ix86_i386interix_return_in_memory): New.
501         * config/mt/mt-protos.h (mt_return_in_memory): New.
502         * config/mt/mt.c: Likewise.
503         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
504         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
505         * config/bfin/bfin.h: Likewise.
506         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
507         argument.
508         * config/bfin/bfin.c: Likewise.
509         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
510         * config/alpha/unicosmk.h: Likewise.
511         * config/i386/cygming.h: Likewise.
512         * config/iq2000/iq2000.h: Likewise.
513         * config/mips/mips.h: Likewise.
514         * config/mn10300/mn10300.h: Likewise.
515         * config/rs6000/rs6000.h: Likewise.
516         * config/score/score.h: Likewise.
517         * config/spu/spu.h: Likewise.
518         * config/v850/v850.h: Likewise.
519         * defaults.h: Likewise.
520         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
521         * expr.c (emit_block_move): Adjust use of
522         OUTGOING_REG_PARM_STACK_SPACE.
523         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
524         OUTGOING_REG_PARM_STACK_SPACE.
525         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
526
527 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
528
529         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
530         on OMP_RETURN for OMP_FOR.
531
532         PR debug/35896
533         * dwarf2out.c (dw_expand_expr, common_check): Removed.
534         (fortran_common): New function.
535         (gen_variable_die): Call fortran_common instead of common_check,
536         adjust for it returning tree instead of rtx.  Formatting.
537
538 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
539
540         PR rtl/7335
541         PR rtl/33826
542         * see.c (see_copy_insn): Copy new pure const attributes for new call.
543         * c-decl.c (merge_decls): Ditto.
544         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
545         to RTL_CONST_OR_PURE_CALL_P.
546         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
547         Initialized DECL_LOOPING_CONST_PURE.
548         (process_call_operands): Set tree_side_effects properly.
549         * tree.h (TREE_READONLY_DECL_P): Removed.
550         (DECL_IS_PURE): Renamed to DECL_PURE_P.
551         (DECL_LOOPING_OR_CONST_P): New macro.
552         (struct tree_function_decl): Added looping_const_or_pure_p.
553         (ECF_*) Renumbered.
554         (ECF_LOOPING_OR_CONST_P): New macro.
555         * rtlanal.c (pure_const_p): Removed.
556         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
557         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
558         to RTL_CONST_CALL_P.
559         * ipa-pure-const.c (pure_const_state_e): Added looping field.
560         (check_decl, check_tree, check_call, scan_function): Initialize
561         looping.
562         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
563         (static_execute): Set looping true for recursive functions.
564         Undo setting state to IPA_NEITHER for recursive functions.
565         * cse.c (cse_insn): 
566         * ifcvt.c (noce_can_store_speculate_p): Changed
567         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
568         RTL_CONST_OR_PURE_CALL_P.
569         * dse.c (scan_insn): Ditto.
570         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
571         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
572         RTL_CONST_OR_PURE_CALL_P.
573         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
574         pure_call_p to RTL_CONST_CALL_P.
575         * gimplify.c (gimplify_call_expr): Clear side effects for
576         non-looping pure and constant calls.
577         * calls.c (emit_call_1): Set rtl flags from ecf flags.
578         (flags_from_decl_or_type): Set ecf flags from decl flags.
579         (initialize_argument_information): Turn off
580         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
581         Change const to pure if callee_copies is true rather than just
582         turning off const.
583         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
584         way of marking pure calls.
585         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
586         Remove hack that was supposed to fix pr7335 and remove old
587         way of marking pure calls.
588         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
589         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
590         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
591         RTL_CONST_OR_PURE_CALL_P.
592         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
593         * loop-invariant.c (find_exits, find_invariant_bb): Changed
594         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
595         * sched-deps.c (schedule_analyze): Ditto.
596         * rtl.h (struct rtx_def): Use call field, unchanging field, and
597         return_val field of calls to represent pure and const function info.
598         (CONST_OR_PURE_CALL_P): Deleted macro.
599         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
600         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
601         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
602         TREE_READONLY.
603         * tree-optimize.c (execute_fixup_cfg): Added test for
604         ECF_LOOPING_CONST_OR_PURE.
605         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
606         DECL_PURE_P.
607         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
608         effects for looping pure or const calls.
609         (verify_gimple_expr): Added verification code. 
610         * config/alpha/alpha.c (alpha_legitimize_address,
611         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
612         RTL_CONST_CALL_P.
613         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
614         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
615         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
616         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
617         RTL_CONST_OR_PURE_CALL_P.
618         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
619         and const calls to be deleted.
620
621 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
622
623         PR target/35714
624         * config/i386/mmx.md (mmx_subv2sf3): New expander.
625         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
626         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
627         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
628         to handle nonimmediate operands.
629         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
630         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
631         to handle nonimmediate operands.
632         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
633         (mmx_pmulhrwv4hi3): New expander.  Use
634         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
635         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
636         (sse2_umulv1siv1di3): New expander.  Use
637         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
638         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
639         (mmx_eq<mode>3): New expander.  Use
640         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
641         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
642         (mmx_uavgv8qi3): New expander.  Use
643         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
644         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
645         (mmx_uavgv4hi3): New expander.  Use
646         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
647
648         * config/i386/sse.md
649         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
650         to handle nonimmediate operands.
651         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
652         to handle nonimmediate operands.
653         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
654         to handle nonimmediate operands.
655         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
656         to handle nonimmediate operands.
657         (sse2_unpckhpd_exp): New expander.  Use
658         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
659         (sse2_unpcklpd_exp): New expander.  Use
660         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
661         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
662         to handle nonimmediate operands.
663         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
664         to handle nonimmediate operands.
665         (*sse2_<plusminus_insn><mode>3): Rename from
666         sse2_<plusminus_insn><mode>3 insn pattern.
667         (sse2_<plusminus_insn><mode>3): New expander.  Use
668         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
669         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
670         (sse2_umulv2siv2di3): New expander.  Use
671         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
672         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
673         (sse4_1_mulv2siv2di3): New expander.  Use
674         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
675         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
676         (sse2_pmaddwd): New expander.  Use
677         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
678         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
679         (sse2_eq<mode>3): New expander.  Use
680         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
681         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
682         (sse4_1_eqv2di3): New expander.  Use
683         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
684         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
685         (sse2_uavgv16qi3): New expander.  Use
686         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
687         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
688         (sse2_uavgv16qi3): New expander.  Use
689         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
690         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
691         (sse2_uavgv8hi3): New expander.  Use
692         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
693         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
694         (ssse3_pmulhrswv8hi3): New expander.  Use
695         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
696         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
697         (ssse3_pmulhrswv4hi3): New expander.  Use
698         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
699
700         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
701         (<sse>_vmmul<mode>3): Ditto.
702         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
703         (divv2df3): Ditto.
704         (ssse3_pmaddubsw128): Use register_operand for operand 1.
705         (ssse3_pmaddubsw): Ditto.
706
707         * config/i386/i386.c (struct_builtin_description)
708         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
709         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
710         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
711         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
712         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
713         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
714         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
715         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
716         (ix86_fixup_binary_operands): Assert that src1
717         and src2 must have the same mode when swapped.
718         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
719         and ix86_binary_operator_ok.  Do not force operands in registers
720         when optimizing.
721
722 2008-05-07  Jan Hubicka  <jh@suse.cz>
723
724         * cgraph.c (dump_cgraph_node): Update.
725         * cgraph.h (cgraph_local_info): Break out inline summary.
726         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
727         hook.
728         * ipa-inline (inline_summary): New accestor function.
729         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
730         cgraph_decide_inlining, compute_inline_parameters): Update.
731         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
732
733 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
734
735         Cleanup ColdFire scheduling support and add V4 pipeline model.
736
737         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
738         (define_attr cpu): Add cfv4 value.
739         (define_attr type, define_attr type1): Merge into a single 'type'
740         attribute.  Update all uses.
741         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
742         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
743         Update all uses.
744         (define_attr opx_mem, define_attr opy_mem): Remove.
745         (define_attr op_mem): Clean up, update comment.
746         (define_attr size): Use specific values instead of general int.
747         (define_attr guess, define_attr split): Remove.  Update all uses.
748         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
749         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
750         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
751         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
752         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
753         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
754         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
755         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
756         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
757         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
758         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
759         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
760         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
761         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
762         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
763         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
764         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
765         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
766         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
767         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
768         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
769         Update or set attributes.
770         (stack_tie): New fake instruction.
771
772         * config/m68k/m68k.h (TUNE_CFV4): New macro.
773         (m68k_sched_attr_size): Update declaration.
774         (m68k_sched_attr_type2): Remove.
775         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
776         Declare new bypass predicates.
777
778         * config/m68k/m68k.c (m68k_sched_issue_rate,
779         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
780         implementations.
781         (TARGET_SCHED_ISSUE_RATE,
782         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
783         (override_options): Handle scheduling for ColdFire V4 core.
784         (m68k_expand_prologue): Emit stack_tie.
785         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
786         'OP_TYPE_FPN'.  Update all uses.
787         (sched_guess_p): Remove.
788         (sched_address_type): Handle symbolic addresses.
789         (sched_get_operand): New static function.
790         (sched_operand_type): Merge into sched_attr_op_type.
791         (sched_attr_op_type): Handle FP registers, handle quick constants,
792         update.
793         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
794         (m68k_sched_attr_size): Update.  Move logic to ...
795         (sched_get_attr_size_int): New static function.
796         (sched_get_opxy_mem_type): New static function.
797         (m68k_sched_attr_op_mem): Update.
798         (m68k_sched_attr_type2): Remove.
799         (sched_cfv4_bypass_data): New static variable.
800         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
801         (m68k_sched_issue_rate): Implement scheduler hook.
802         (struct _sched_ib: enabled_p): New field.
803         (m68k_sched_variable_issue): Update.  Handle V4.
804         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
805         sched_dump_class_func_t, sched_dump_split_class,
806         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
807         sched_dump_dfa_class, m68k_sched_dump): Remove.
808         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
809         hook.
810         (m68k_sched_init_global): Remove statisctics dumping, introduce
811         sanity check that all instructions have pipeline reservations.  Handle
812         ColdFire V4 core.
813         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
814         Handle ColdFire V4 core.
815         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
816         New static functions.
817         (m68k_sched_address_bypass_p): New bypass predicate.
818         (sched_get_indexed_address_scale): New static function.
819         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
820
821         * cf.md: Update comments.
822         (define_attr type2): Remove.  Use 'type' attribute instead.
823         Update all uses.
824         (cf_ib): Rename to cfv123_ib.  Update all uses.
825         (cf_oep): Rename to cfv123_oep.  Update all uses.
826         (cf_chr): Rename to cfv123_chr.  Update all uses.
827         (cf_mem): Rename to cfv123_mem.  Update all uses.
828         (cf_mac): Move to more appropriate place.
829         (cfv123_guess): New automaton and cpu_unit.
830         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
831         Update uses of 'size' attribute.  Handle before reload scheduling.
832         (cfv123_guess): New dummy reservation for unhandled instructions.
833         (cfv4_*): Pipeline description of ColdFire V4 core.
834         (ignore): New reservation to handle 'ignore' type.
835
836 2008-05-07  Ian Lance Taylor  <iant@google.com>
837
838         PR middle-end/36013
839         * gimplify.c (find_single_pointer_decl_1): Don't look through
840         indirections.
841         (find_single_pointer_decl): Adjust comments.
842
843 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
844
845         PR middle-end/36137
846         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
847         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
848
849         PR middle-end/36106
850         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
851         integral type rather than floating point, then VIEW_CONVERT_EXPR
852         to the floating point type.
853
854 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
855
856         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
857         TFmode op0 to register.
858
859 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
860
861         * c-decl.c (grokdeclarator): Comment typo.
862
863 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
864
865         * tree-flow.h: Remove prototype for computed_goto_p.
866         * tree-cfg.c (computed_goto_p): Make static.
867
868 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
869
870         PR target/35657
871         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
872         (contains_aligned_value_p): This.  Handle _Decimal128.
873         (ix86_function_arg_boundary): Only align _Decimal128 to its
874         natural boundary and handle it properly.
875
876 2008-05-06  Martin Jambor  <mjambor@suse.cz>
877
878         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
879         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
880         (ipcp_method_set_orig_node): Removed.
881         (ipcp_cval_get_cvalue_type): Removed.
882         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
883         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
884         (ipcp_cval_set_cvalue_type): Removed.
885         (ipcp_cval_get_cvalue): Removed.
886         (ipcp_cval_set_cvalue): Removed.
887         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
888         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
889         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
890         (ipcp_cval_meet): Renamed to ipa_lattice_meet
891         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
892         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
893         (ipcp_get_ith_lattice): Changed parameters.
894         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
895         (ipcp_lattice_from_jfunc): Changed parameters.
896         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
897         (ipcp_method_cval_print): Added temporary variable info.
898         (ipcp_redirect): Removed already unused local variable caller.
899         (ipcp_redirect): New temporary variable orig_callee_info
900         (ipcp_redirect): Removed newly unused local variable callee.
901         (ipcp_redirect): Removed (a bit confusing) local variable type.
902         (ipcp_insert_stage): Added local variable info.
903         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
904         renamed too
905         (ipcp_formal_create): Removed.
906         (ipcp_method_cval_set): Removed.
907         (ipcp_propagate_stage): Renamed lattice variables.
908         (ipcp_method_cval_set_cvalue_type): Removed.
909         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
910         (ipcp_print_all_lattices): Changed printed strings to refer to 
911         lattices rather than cvals.
912         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
913         (ipcp_propagate_const): Changed formal parameters.
914         (build_const_val): Changed formal parameters.
915         (ipcp_insert_stage): Removed useless variable cvalue
916         (build_const_val): Changed formal parameters.
917         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
918         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
919         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
920         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
921         (ipcp_print_func_profile_counts): Changed string from "method" to 
922         "function"
923         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
924         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
925         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
926         (ipcp_structures_print): Renamed to ipcp_print_all_structures
927         (ipcp_profile_print): Renamed to ipcp_print_profile_data
928         (ipcp_lat_is_const): Changed parameters and made inline.
929         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
930         (ipcp_redirect): Renamed to ipcp_need_redirect_p
931         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
932         the predicate condition directly
933         (ipcp_propagate_stage): Added local variable args. Removed local
934         variable callee.  (Both are mere code simplifications.)
935         (ipcp_method_dont_insert_const): Renamed to
936         ipcp_node_not_modifiable_p.
937         (ipcp_node_not_modifiable_p): Made inline.
938         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
939         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
940         (ipcp_print_all_lattices): Removed variable cvalue
941         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
942         Updated comments.
943
944 2008-05-06  Olivier Hainque  <hainque@adacore.com>
945
946         * tree-sra.c (try_instantiate_multiple_fields): Early return
947         if field has POINTER_TYPE.
948
949 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
950
951         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
952         by using 'q' specifier for instruction.
953         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
954
955 2008-05-06  Anatoly Sokolov <aesok@post.ru>
956
957         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
958         Change mode of zero_extract from QImode to HImode.
959         (sign bit tests peepholes): (Ditto.).
960
961 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
962
963         * config/i386/mmx.md: Remove double backslashes from asm templates.
964         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
965         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
966         to handle nonimmediate operands.
967         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
968         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
969         to handle nonimmediate operands.
970         (*mmx_<code>v2sf3_finite): New insn pattern.
971         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
972         (mmx_<code>v2sf3): New expander.  Use
973         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
974         (mmx_<plusminus_insn><mode>3): New expander.  Use
975         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
976         (*mmx_<plusminus_insn><mode>3): New insn pattern.
977         (mmx_add<mode>3): Removed.
978         (mmx_ssadd<mode>3): Ditto.
979         (mmx_usadd<mode>3): Ditto.
980         (mmx_sub<mode>3): Ditto.
981         (mmx_sssub<mode>3): Ditto.
982         (mmx_ussub<mode>3): Ditto.
983         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
984         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
985         to handle nonimmediate operands.
986         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
987         insn pattern.
988         (mmx_smulv4hi3_highpart): New expander.  Use
989         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
990         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
991         insn pattern.
992         (mmx_umulv4hi3_highpart): New expander.  Use
993         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
994         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
995         (mmx_<code>v4hi3): New expander.  Use
996         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
997         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
998         (mmx_<code>v8qi3): New expander.  Use
999         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1000         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
1001         (mmx_<code><mode>3): New expander.  Use
1002         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1003
1004 2008-05-05  Jan Hubicka  <jh@suse.cz>
1005
1006         PR tree-optimization/36118
1007         * passes.c (pass_init_dump_file): Fix dump header.
1008
1009 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1010
1011         PR middle-end/36141
1012         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1013         VCE for function decls.
1014
1015 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1016
1017         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1018
1019 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1020
1021         * config/i386/i386.md (sat_plusminus): New.
1022         (plusminus_insn): Likewise.
1023         (plusminus_mnemonic): Likewise.
1024         (addsub): Removed.
1025         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1026         (*<addsub><mode>3_cc_overflow): Renamed to ...
1027         (*<plusminus_insn><mode>3_cc_overflow): This.
1028         (*<addsub>si3_zext_cc_overflow): Renamed to ...
1029         (*<plusminus_insn>si3_zext_cc_overflow): This.
1030
1031         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
1032         (<plusminus_insn><mode>3): This.
1033         (*<addsub><mode>3): Renamed to ...
1034         (*<plusminus_insn><mode>3): This.
1035         (<sse>_vm<addsub><mode>3): Renamed to ...
1036         (<sse>_vm<plusminus_insn><mode>3): This.
1037         (sse3_h<addsub>v4sf3): Renamed to ...
1038         (sse3_h<plusminus_insn>v4sf3): This.
1039         (sse3_h<addsub>v2df3): Renamed to ...
1040         (sse3_h<plusminus_insn>v2df3): This.
1041         (<plusminus_insn><mode>3): New.
1042         (*<plusminus_insn><mode>3): Likewise.
1043         (sse2_<plusminus_insn><mode>3): Likewise.
1044         (add<mode>): Removed.
1045         (*add<mode>3): Likewise.
1046         (sse2_ssadd<mode>3): Likewise.
1047         (sse2_usadd<mode>3): Likewise.
1048         (sub<mode>3): Likewise.
1049         (*sub<mode>3): Likewise.
1050         (sse2_sssub<mode>3): Likewise.
1051         (sse2_ussub<mode>3): Likewise.
1052
1053 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
1054
1055         * gthr-single.h: Add in required interface elements as per gthr.h.
1056         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1057         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1058         Generalize UNUSED macro. 
1059         (__gthread_once): Add.
1060         (__gthread_key_create): Add.
1061         (__gthread_key_delete): Add.
1062         (__gthread_getspecific): Add.
1063         (__gthread_setspecific): Add.
1064         
1065 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
1066
1067         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1068         the same size types for the indirect reference on the rhs, then
1069         create a VCE.
1070
1071 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
1072
1073         * config/i386/i386.md
1074         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1075         one insn template instead of template series.
1076         (*xordi_1_rex64): Ditto.
1077         (*xordi_2_rex64): Ditto.
1078
1079 2008-05-05  Ira Rosen  <irar@il.ibm.com>
1080
1081         PR tree-optimization/36119
1082         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1083         in case of SLP.
1084
1085 2008-06-04  Jan Hubicka  <jh@suse.cz>
1086
1087         tree-optimization/36100
1088         * tree-pass.h (pass_O0_always_inline): Declare.
1089         * ipa-inline.c (inline_transform): Remove dead code.
1090         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1091         pass_O0_always_inline): New.
1092         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1093
1094 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
1095
1096         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1097         mnemonic in this_param move for TARGET_64BIT.
1098
1099 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
1100
1101         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1102         (*strmovsi_rex_1): Ditto.
1103         (*strsetsi_1): Ditto.
1104         (*strsetsi_rex_1): Ditto.
1105
1106         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1107         adddicc expanders using SWI mode iterator.
1108
1109 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1110
1111         PR target/36121
1112         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1113         argument handling.
1114
1115 2008-05-04  David S. Miller  <davem@davemloft.net>
1116
1117         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1118         (sparc*-*-linux*): Use linux.h in tm_file.
1119         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1120         compiler defaulting to 32-bit.
1121         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1122         no longer needed.
1123         * config/sparc/linux.h: Remove definitions now obtained
1124         properly from linux.h
1125         * config/sparc/linux64.h: Likewise.
1126         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1127         don't want this setting for 32-bit builds in a biarch compiler.
1128         * doc/install.texi: Add sparc-linux to list of targets
1129         supporting --enable-targets=all.
1130
1131 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
1132
1133         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1134
1135 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
1136
1137         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1138         after V4SI_FTYPE_V8HI.
1139         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1140         case V4SI_FTYPE_V2DF.
1141
1142 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
1143
1144         * doc/invoke.texi (max-flow-memory-locations): Removed.
1145         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1146         
1147 2008-05-03  Richard Guenther  <rguenther@suse.de>
1148
1149         PR middle-end/34973
1150         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1151
1152 2008-05-02  David S. Miller  <davem@davemloft.net>
1153
1154         * config.gcc (need_64bit_hwint): Document libcpp dependency.
1155
1156 2008-05-02  Simon Baldwin <simonb@google.com>
1157
1158         PR bootstrap/36108
1159         * c-common.h (warn_array_subscript_range): Removed.
1160         * c-common.c (warn_array_subscript_range): Ditto.
1161         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1162         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1163
1164 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1165
1166         * config/i386/i386.c (ix86_special_builtin_type): New.
1167         (bdesc_special_args): Likewise.
1168         (ix86_expand_special_args_builtin): Likewise.
1169         (ix86_init_mmx_sse_builtins): Updated.
1170         (ix86_expand_builtin): Updated.
1171         (ix86_expand_store_builtin): Removed.
1172         (ix86_expand_unop_builtin): Likewise.
1173
1174         * config/i386/mm3dnow.h (__v2sf): Moved to ...
1175         * config/i386/mmintrin.h (__v2sf): Here.
1176
1177         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1178         const __v2sf.
1179         (_mm_loadl_pi): Likewise.
1180         (_mm_storeh_pi): Replace __v2si with __v2sf.
1181         (_mm_storel_pi): Likewise.
1182
1183         * doc/extend.texi: Correct __builtin_ia32_loadhps,
1184         __builtin_ia32_loadlps, __builtin_ia32_storehps,
1185         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1186         __builtin_ia32_loadlpd.
1187
1188 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1189
1190         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1191         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1192         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
1193         (ix86_init_mmx_sse_builtins): Updated.
1194         (ix86_expand_args_builtin): Likewise.
1195         (ix86_expand_builtin): Likewise.
1196         (ix86_expand_unop1_builtin): Renamed to ...
1197         (ix86_expand_unop_vec_merge_builtin): This.
1198
1199 2008-05-01  Jan Hubicka  <jh@suse.cz>
1200
1201         PR bootstrap/36100
1202         * ipa-inline.c (inline_generate_summary): Make static.
1203         (inline_transform): Do not call inlining at -O0; make static.
1204         * passes.c (execute_todo): Add sanity check.
1205         (execute_one_ipa_transform_pass): Execute proper flags.
1206
1207 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1208
1209         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1210         (DECL_NONADDRESSABLE_P): Likewise.
1211         * alias.c (record_component_aliases): Fix comment.
1212
1213 2008-05-01  Simon Baldwin <simonb@google.com>
1214
1215         * c-common.h (warn_array_subscript_range): New function.
1216         * c-common.c (warn_array_subscript_range): Ditto.
1217         * tree-vrp.c (check_array_ref): Corrected code to agree with
1218         comment, ignoring only arrays of size 0 or size 1.
1219         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1220
1221 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1222
1223         * config/i386/i386.c (ix86_builtin_type): Replace
1224         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1225         (bdesc_args): Updated.
1226         (ix86_init_mmx_sse_builtins): Likewise.
1227         (ix86_expand_args_builtin): Likewise.
1228
1229         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1230         with __v1di.
1231
1232         * doc/extend.texi: Correct __builtin_ia32_palignr.
1233
1234 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1235
1236         PR target/36095
1237         * config/i386/i386.c (bdesc_crc32): Removed.
1238         (ix86_expand_crc32): Likewise.
1239         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1240         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1241         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
1242         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1243         UINT_FTYPE_UINT_UCHAR.
1244         (bdesc_args): Updated. Add crc32 builtins.
1245         (ix86_init_mmx_sse_builtins): Updated.
1246         (ix86_expand_args_builtin): Updated to support subreg.
1247
1248         * doc/extend.texi: Correct __builtin_ia32_crc32di.
1249
1250 2008-05-01  Jan Hubicka  <jh@suse.cz>
1251
1252         * tree-pass.h (opt_pass): Add IPA_PASS.
1253         (varpool_node, cgraph_node): Forward declare.
1254         (ipa_opt_pass): Define.
1255         (pass_ipa_inline): Turn into ipa_opt_pass.
1256         (pass_apply_inline): Remove.
1257         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1258         (apply_inline): Turn into ....
1259         (inline_transform): ... this one.
1260         (inline_generate_summary): New function.
1261         (pass_apply_inline): Remove.
1262         * function.h (ipa_opt_pass): Forward declare structure; typedef;
1263         vector.
1264         (struct function): Add ipa_transforms_to_apply.
1265         * passes.c (register_one_dump_file): Work on IPA_PASS.
1266         (init_optimization_passes): Remove pass_inline_parameters and
1267         pass_apply_inline.
1268         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1269         (execute_one_pass) ... here; apply transforms when possible.
1270         (add_ipa_transform_pass, execute_ipa_summary_asses,
1271         execute_one_ipa_transform_pass): New.
1272         (execute_ipa_pass_list): Update for IPA_PASS type.
1273
1274 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1275
1276         * config/i386/i386.c (ix86_builtin_type): Add
1277         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1278         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1279         (bdesc_args): Add SSE4a builtins.
1280         (ix86_init_mmx_sse_builtins): Updated.
1281         (ix86_expand_args_builtin): Likewise.
1282         (ix86_expand_builtin): Likewise.
1283
1284 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1285
1286         * config/i386/i386.c (ix86_builtin_type): Add
1287         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1288         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1289         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1290         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1291         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1292         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1293         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1294         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1295         and DI_FTYPE_DI_DI_INT.
1296         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1297         (ix86_init_mmx_sse_builtins): Updated.
1298         (ix86_expand_args_builtin): Likewise.
1299         (ix86_expand_builtin): Likewise.
1300         (ix86_expand_binop_imm_builtin): Removed.
1301
1302         * doc/extend.texi: Correct __builtin_ia32_palignr128.
1303
1304 2008-04-30  Richard Guenther  <rguenther@suse.de>
1305
1306         PR tree-optimization/32921
1307         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1308
1309 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
1310
1311         * config/arm/arm.c (arm_unwind_emit): Use
1312         crtl->all_throwers_are_sibcalls instead of
1313         cfun->all_throwers_are_sibcalls.
1314         (arm_output_fn_unwind): Likewise.
1315         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1316         instead of cfun->uses_pic_offset_table.
1317         (frv_expand_prologue): Likewise.
1318         (frv_frame_pointer_required): Likewise.
1319         (frv_expand_fdpic_call): Likewise.
1320         (frv_emit_movsi): Likewise.
1321         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1322         cfun->returns_pcc_struct instead of
1323         current_function_returns_pcc_struct.
1324         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1325         instead of cfun->calls_eh_return.
1326         (m32c_pushm_popm): Likewise.
1327         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1328         "extern" declaration.
1329
1330 2008-04-30  Richard Guenther  <rguenther@suse.de>
1331
1332         PR tree-optimization/21636
1333         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1334         constant address.
1335         (evaluate_stmt): Print the likely value.
1336         (ccp_visit_stmt): Avoid excessive vertical spacing.
1337
1338 2008-04-30  Rafael Espindola  <espindola@google.com>
1339
1340         * builtins.c (fold_call_expr): Return realret.
1341         * tree-ssa-threadedge.c
1342         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1343         __builtin_object_size.
1344
1345 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
1346
1347         * gcc.c (wrapper_string): New variable.
1348         (insert_wrapper): New function.
1349         (execute): New option -wrapper.
1350         * doc/invoke.texi (Overall Options): New driver option -wrapper.
1351
1352 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
1353
1354         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1355         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1356         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1357         from...
1358         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
1359         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1360         config/rs6000/e500crtres64gprctr.asm,
1361         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1362         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1363         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1364         config/rs6000/e500crtsav64gprctr.asm,
1365         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1366         config/rs6000/e500crtsavg64gprctr.asm: New files.
1367         * config/rs6000/t-ppccomm: Add build rules for new files.
1368         (LIB2FUNCS_STATIC_EXTRA): Add new files.
1369         * config/rs6000/t-netbsd: Add build rules for new files.
1370         (LIB2FUNCS_STATIC_EXTRA): New variable.
1371         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1372         (CRTSAVRES_DEFAULT_SPEC): Likewise.
1373         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
1374
1375 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
1376
1377         * config/i386/i386.c (ix86_builtin_type): Add
1378         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1379         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1380         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1381         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1382         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1383         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1384         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1385         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1386         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1387         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1388         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1389         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1390         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1391         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1392         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1393         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1394         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1395         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1396         V1DI_FTYPE_V2SI_V2SI.
1397         (bdesc_2arg): Moved to ...
1398         (bdesc_args): Here.
1399         (ix86_init_mmx_sse_builtins): Updated.
1400         (ix86_expand_args_builtin): Updated.  Take a pointer
1401         to const struct builtin_description.  Handle comparison
1402         builtin functions.
1403         (ix86_expand_sse_compare): Take a new argument for swapping operands.
1404         (ix86_expand_builtin): Updated.
1405
1406         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1407         (ssse3_pmaddubsw128): This.
1408         (ssse3_pmaddubswv4hi3): Renamed to ...
1409         (ssse3_pmaddubsw): This.
1410
1411         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1412         (__builtin_ia32_packssdw128): Likewise.
1413         (__builtin_ia32_packuswb128): Likewise.
1414         (__builtin_ia32_pmaddubsw): Likewise.
1415         (__builtin_ia32_pmaddubsw128): Likewise.
1416
1417 2008-04-30  Richard Guenther  <rguenther@suse.de>
1418
1419         PR tree-optimization/14847
1420         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1421         (recognize_bits_test): Use it.
1422         (recognize_single_bit_test): Likewise.
1423
1424 2008-04-30  Martin Jambor  <mjambor@suse.cz>
1425
1426         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1427         instead of setting number of formal parameters to zero.
1428         (ipcp_init_stage): Do not set the number of actual parameters to zero 
1429         either.
1430         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1431         which are called with variable number of arguments.
1432         (ipcp_insert_stage): Explicitely skipping all nodes which are
1433         called with variable number of arguments.
1434         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
1435         number of parameters.
1436
1437         * ipa-prop.h (struct ipa_node_params): Added flag
1438         called_with_var_arguments
1439         (ipa_set_param_count): Added.  Changed sole setter to use it.
1440         (ipa_get_param_count): Added.  All readers of param_count
1441         converted to use it instead.
1442         (ipa_set_called_with_variable_arg): Added.
1443         (ipa_is_called_with_var_arguments): Added.
1444         (ipa_get_ith_param): Added.  All readers of param_decls converted
1445         to use it instead.
1446         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
1447         changed to use it. 
1448         (ipa_get_cs_argument_count): Added, all readers of argument_count
1449         changed to cal it.
1450         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
1451         to use it.
1452         
1453         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1454         (struct ipcp_lattice): Renamed cval_type to type
1455         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1456
1457         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1458         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1459         (ipcp_insert_stage): Changed the type of variable cvalue to tree
1460         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1461         (build_const_val): Changed the type of parameter cvalue to tree
1462         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1463         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1464         
1465         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
1466         constant 
1467
1468         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1469         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1470         (ipa_add_method): Renamed to ipa_push_func_to_list
1471         (ipa_remove_method): Renamed to ipa_pop_func_from_list
1472         (ipa_callsite_param_count): Removed.
1473         (ipa_callsite_param_count_set): Removed.
1474         (ipa_callsite_param): Removed.
1475         (ipa_callsite_callee): Removed.
1476         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1477         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1478         (ipa_method_formal_count): Removed.
1479         (ipa_method_formal_count_set): Removed.
1480         (ipa_method_get_tree): Removed.
1481         (ipa_method_tree_map_create): Removed.
1482         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1483         (ipa_create_param_decls_array): Creates the array itself
1484         (ipa_create_param_decls_array): Temporary variable info instead of 
1485         a few dereferences.
1486         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1487         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1488         (get_type): Removed.
1489         (ipa_jf_get_info_type): Removed.
1490         (ipa_node_create): Renamed to ipa_create_node_params
1491         (ipa_free): Renamed to ipa_free_all_node_params
1492         (ipa_nodes_create): Renamed to ipa_create_all_node_params
1493         (ipa_edges_create): Renamed to ipa_create_all_edge_args
1494         (ipa_edges_free): Renamed to ipa_free_all_edge_args
1495         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1496         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
1497         ipa_free_all_edge_args
1498         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1499         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1500         (ipa_create_methodlist_node): Removed.
1501         (ipa_methodlist_method): Removed.
1502         (ipa_methodlist_method_set): Removed.
1503         (ipa_methodlist_next_method): Removed.
1504         (ipa_methodlist_next_method_set): Removed.
1505         (ipa_method_is_modified): Removed.
1506         (ipa_method_modify_create): Removed.
1507         (ipa_method_modify_init): Temporary variable info instead of a few 
1508         dereferences.
1509         (ipa_detect_param_modifications): Temporary variable info instead of 
1510         a few dereferences.
1511         (ipa_compute_jump_functions): Temporary variable info instead of 
1512         a few dereferences.
1513         (ipa_method_modify_set): Removed.
1514         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1515         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
1516         than craph_node as the first parameter.
1517         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1518         (ipa_method_modify_init): Removed.
1519         (ipa_compute_jump_functions): Added a temp variable instead of 
1520         repeatadly dereferencing the cgraph_edge.aux pointer
1521         (ipa_callsite_param_set_type): Removed.
1522         (ipa_compute_jump_functions): i renamed to index and moved to 
1523         an inner block
1524         (ipa_callsite_param_set_info_type_formal): Removed.
1525         (ipa_callsite_param_set_info_type): Removed.
1526         (ipa_callsite_param_map_create): Removed.
1527         (ipa_callsite_tree): Removed.
1528         (ipa_callsite_caller): Removed.
1529         (ipa_pop_func_from_list): return_method removed to return_func
1530
1531         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1532         prefixed all values with IPA_. Changed all users.
1533         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
1534         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
1535         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
1536         (union parameter_info): Renamed to jump_func_value.
1537         (union jump_func_value): Renamed value to constant
1538         (struct ipa_jump_func): Renamed info_type to value
1539         (struct ipa_node): Renamed to ipa_node_params
1540         (struct ipa_node_params): Renamed ipa_arg_num to param_count
1541         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1542         (struct ipa_node_params): Renamed ipa_mod to modified_flags
1543         (struct ipa_edge): Renamed to ipa_edge_args
1544         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1545         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1546         (struct ipa_methodlist): Renamed to ipa_func_list
1547         (struct ipa_func_list): method_p renamed to node, next_method
1548         renamed to next
1549         (ipa_methodlist_p): Removed, switched all users to struct pointer
1550         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1551
1552 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
1553
1554         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1555         (rs6000_emit_epilogue): Use backchain to restore only when we
1556         have a large frame.  Make use of frame pointer to restore if we
1557         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1558
1559 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
1560
1561         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1562         Add mode to zero_extract.
1563         (sign bit tests peepholes): (Ditto.).
1564
1565 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1566
1567         * config/i386/i386.c (ix86_builtins): Replace Prescott New
1568         Instructions in comments with SSE3.
1569         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
1570         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1571         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1572         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1573         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1574         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1575         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1576         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1577         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1578         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1579         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1580         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1581         (bdesc_sse_args): Renamed to ...
1582         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1583         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1584         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1585         IX86_BUILTIN_FABSQ.
1586         (bdesc_1arg): Moved to ...
1587         (bdesc_args): Here.
1588         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
1589         Instructions in comments with SSE3.
1590         (ix86_expand_sse_operands_builtin): Renamed to ...
1591         (ix86_expand_args_builtin): This.  Updated.
1592         (ix86_expand_unop1_builtin): Update comments.
1593         (ix86_expand_builtin): Updated.
1594
1595 2008-04-29  Richard Guenther  <rguenther@suse.de>
1596
1597         PR tree-optimization/36078
1598         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1599         Update virtual SSA form after cleaning up the CFG.
1600
1601 2008-04-29  Richard Guenther  <rguenther@suse.de>
1602
1603         PR middle-end/15255
1604         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1605
1606 2008-04-29  Richard Guenther  <rguenther@suse.de>
1607
1608         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1609         (compute_may_aliases): Do not call finalize_ref_all_pointers.
1610         (compute_flow_insensitive_aliasing): Do not treat
1611         PTR_IS_REF_ALL pointers special.
1612         (get_smt_for): Likewise.
1613         (may_alias_p): Re-structure.
1614         (is_escape_site): A ref-all pointer conversion is not an escape site.
1615         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1616         PTR_IS_REF_ALL pointers special.
1617         * tree-ssa-structalias.h (struct alias_info): Remove
1618         ref_all_symbol_mem_tag field.
1619         (PTR_IS_REF_ALL): Remove.
1620
1621 2008-04-29  Richard Guenther  <rguenther@suse.de>
1622
1623         PR middle-end/36077
1624         * fold-const.c (extract_muldiv_1): In combining division constants
1625         make sure to never overflow.
1626
1627 2008-04-29  Nick Clifton  <nickc@redhat.com>
1628
1629         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1630
1631 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1632
1633         PR bootstrap/35169
1634         * optc-gen.awk: Work around HP-UX/IA awk bug.
1635
1636 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
1637
1638         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
1639         2008-04-25 commit.
1640
1641 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1642
1643         PR target/36073
1644         * config/i386/i386.md
1645         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
1646         Change operand 1 predicate to nonimmediate_operand.
1647
1648 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
1649
1650         PR debug/36060
1651         * dwarf2out.c (struct die_struct): Mark as chain_circular through
1652         die_sub field.
1653         * gengtype.c (walk_type, write_func_for_structure): Handle
1654         chain_circular.
1655         * doc/gty.texi: Document chain_circular.
1656
1657 2008-04-28  Richard Guenther  <rguenther@suse.de>
1658
1659         PR tree-optimization/36066
1660         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
1661         SCEV and loop.
1662
1663 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1664
1665         PR target/36064
1666         * config/i386/i386.md
1667         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
1668         Use match_scratch instead of match_operand for operands 3 and 4.
1669
1670 2008-04-27  Richard Guenther  <rguenther@suse.de>
1671
1672         PR tree-optimization/18754
1673         PR tree-optimization/34223
1674         * tree-pass.h (pass_complete_unrolli): Declare.
1675         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
1676         loop size before and after unconditionally of UL_NO_GROWTH in effect.
1677         Rewrite loop into loop closed SSA form if it is not already.
1678         (tree_unroll_loops_completely): Re-structure to iterate over
1679         innermost loops with intermediate CFG cleanups.
1680         Unroll outermost loops only if requested or the code does not grow
1681         doing so.
1682         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
1683         loops are available.
1684         (tree_vectorize): Instead do so here.
1685         (tree_complete_unroll): Also unroll outermost loops.
1686         (tree_complete_unroll_inner): New function.
1687         (gate_tree_complete_unroll_inner): Likewise.
1688         (pass_complete_unrolli): New pass.
1689         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
1690         uses outside of the loop.
1691         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
1692         form if it is available.  
1693         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
1694         * passes.c (init_optimization_passes): Schedule complete inner
1695         loop unrolling pass before the first CCP pass after final inlining.
1696
1697 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1698
1699         * targhooks.h (default_emutls_var_fields,
1700         default_emutls_var_init): Declare.
1701         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
1702         * target.h (struct gcc_target): Add struct emutls member.
1703         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
1704         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
1705         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
1706         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
1707         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
1708         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
1709         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
1710         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
1711         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
1712         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
1713         emit debug information.
1714         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
1715         * varasm.c: Include targhooks.h.
1716         (emutls_object_section, emutls_tmpl_section): New.
1717         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
1718         (EMUTLS_SEPARATOR): New.
1719         (prefix_name): New.
1720         (get_emutls_object_name): New.
1721         (default_emutls_var_fields): New, broken out of ...
1722         (get_emutls_object_type): ... here.  Adjust to use target hooks.
1723         (get_emutls_init_templ_addr): Adjust to use target hooks.
1724         (emutls_decl): Adjust to use target hooks.
1725         (emutls_finish): Likewise.
1726         (default_emutls_var_init): New, broken out of ...
1727         (assemble_variable): ... here.  Adjust to use target hooks.
1728         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
1729         SECCAT_EMUTLS_TMPL.
1730         * c-common.c (handle_section_attribute): Prevent overriding
1731         sections for emulated tls with special sections.
1732         * config/i386/i386.c (x86_64_elf_select_section): Add
1733         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
1734         (x86_64_elf_unique_section): Likewise.
1735         * config/vxworks.c: Include tree.h.
1736         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
1737         (vxworks_override_options): Set TLS scheme.
1738         * doc/tm.texi (Emulated TLS): New node.
1739
1740 2008-04-26  Simon Baldwin <simonb@google.com>
1741
1742         PR c/35652
1743         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
1744         with propagated string constants.
1745
1746 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
1747
1748         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
1749         constraint for operand 2 when operand 0 is memory operand.
1750         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
1751         operand 0 is memory operand.
1752         (fix_trunc<mode>_i387_with_temp): Ditto.
1753         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
1754         operand 2 when operand 1 is memory operand.
1755         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
1756         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
1757         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
1758         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1759         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
1760         operands 2,3 and 4 when operand 1 is memory operand.
1761         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
1762         is memory operand.
1763         (fistdi2_floor_with_temp): Ditto.
1764         (fist<mode>2_floor_with_temp): Ditto.
1765         (fistdi2_ceil_with_temp): Ditto.
1766         (fist<mode>2_ceil_with_temp): Ditto.
1767         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
1768
1769 2008-04-26  David Daney  <ddaney@avtrex.com>
1770
1771         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
1772         unspec_volitile.
1773         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
1774         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1775         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1776         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
1777         (compare_and_swap_12): New insn.
1778         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
1779         * config/mips/mips.c (mips_force_binary): New function.
1780         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
1781         (mips_expand_compare_and_swap_12): New function.
1782         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
1783
1784 2008-04-25  Jan Hubicka  <jh@suse.cz>
1785
1786         PR testsuite/35843
1787         * cfgexpand.c (pass_expand): Turn into RTL pass.
1788         * passes.c (execute_one_pass): Do pass typechecking after execution.
1789         * tree-pass.h (pass_expand): Turn into RTL pass.
1790
1791         * function.h (struct rtl_data): Move here fields
1792         accesses_prior_frames, calls_eh_return, saves_all_registers,
1793         has_nonlocal_goto, has_asm_statement, is_thunk,
1794         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
1795         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
1796         arg_pointer_save_area_init from struct function; turn into bool.
1797         (struct function): Move
1798         calls_eh_return, saves_all_registers, has_nonlocal_goto,
1799         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
1800         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
1801         tail_call_emit, arg_pointer_save_area_init
1802         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
1803         (current_function_returns_struct, current_function_returns_pcc_struct,
1804         current_function_calls_setjmp, current_function_calls_alloca,
1805         current_function_accesses_prior_frames,
1806         current_function_calls_eh_return, current_function_is_thunk,
1807         current_function_stdarg, current_function_profile,
1808         current_function_limit_stack, current_function_uses_pic_offset_table,
1809         current_function_uses_const_pool, current_function_has_nonlocal_label,
1810         current_function_saves_all_registers,
1811         current_function_has_nonlocal_goto,
1812         current_function_has_asm_statement): Remove accesor macros.
1813         * ra-conflict.c (global_conflicts): Update.
1814         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
1815         (suitable_for_tail_call_opt_p): Update.
1816         * builtins.c (expand_builtin_return_addr): Update.
1817         (expand_builtin_setjmp_setup): Update.
1818         (expand_builtin_nonlocal_goto): Update.
1819         * final.c (final_start_function): Update.
1820         (profile_function): Update.
1821         (leaf_function_p): Update.
1822         (only_leaf_regs_used): Update.
1823         * df-scan.c (df_get_exit_block_use_set): Update.
1824         * dojump.c (clear_pending_stack_adjust): Update.
1825         * tree-stdarg.c (gate_optimize_stdarg): Update.
1826         * gimple-low.c (lower_function_body): Update.
1827         * global.c (compute_regsets): Update.
1828         (global_alloc): Update.
1829         * dwarf2out.c (dwarf2out_begin_prologue): Update.
1830         * expr.c (expand_assignment): Update.
1831         * dse.c (dse_step0): Update.
1832         (dse_step1): Update.
1833         * c-decl.c (store_parm_decls): Update.
1834         * local-alloc.c (combine_regs): Update.
1835         (find_free_reg): Update.
1836         * function.c (assign_parms_augmented_arg_list): Update.
1837         (assign_parm_find_data_types): Update.
1838         (assign_parms): Update.
1839         (allocate_struct_function): Update.
1840         (expand_function_start): Update.
1841         (expand_function_end): Update.
1842         (get_arg_pointer_save_area): Update.
1843         (thread_prologue_and_epilogue_insns): Update.
1844         (rest_of_match_asm_constraints): Update.
1845         * stor-layout.c (variable_size): Update.
1846         * gcse.c (gcse_main): Update.
1847         (bypass_jumps): Update.
1848         * gimplify.c (gimplify_function_tree): Update.
1849         * calls.c (emit_call_1): Update.
1850         (expand_call): Update.
1851         * bt-load.c (compute_defs_uses_and_gen): Update.
1852         * except.c (sjlj_assign_call_site_values): Update.
1853         (sjlj_emit_function_enter): Update.
1854         (can_throw_external): Update.
1855         (set_nothrow_function_flags): Update.
1856         (expand_builtin_unwind_init): Update.
1857         (expand_eh_return): Update.
1858         (convert_to_eh_region_ranges): Update.
1859         (output_function_exception_table): Update.
1860         * emit-rtl.c (gen_tmp_stack_mem): Update.
1861         * cfgexpand.c (expand_used_vars): Update.
1862         (tree_expand_cfg): Update.
1863         * cfgcleanup.c (rest_of_handle_jump): Update.
1864         * explow.c (allocate_dynamic_stack_space): Update.
1865         * varasm.c (assemble_start_function): Update.
1866         (force_const_mem): Update.
1867         (mark_constant_pool): Update.
1868         * tree-optimize.c (tree_rest_of_compilation): Update.
1869         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
1870         * tree-cfg.c (notice_special_calls): Update.
1871         (is_ctrl_altering_stmt): Update.
1872         (tree_can_make_abnormal_goto): Update.
1873         (tree_purge_dead_abnormal_call_edges): Update.
1874         * config/alpha/predicates.md: Update.
1875         * config/alpha/alpha.c (alpha_sa_mask): Update.
1876         (alpha_sa_size): Update.
1877         (alpha_does_function_need_gp): Update.
1878         (alpha_expand_prologue): Update.
1879         (alpha_start_function): Update.
1880         (alpha_output_function_end_prologue): Update.
1881         (alpha_expand_epilogue): Update.
1882         * config/frv/frv.c (frv_stack_info): Update.
1883         (frv_expand_epilogue): Update.
1884         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
1885         (s390_register_info): Update.
1886         (s390_frame_info): Update.
1887         (s390_init_frame_layout): Update.
1888         (s390_can_eliminate): Update.
1889         (save_gprs): Update.
1890         * config/spu/spu.c (spu_split_immediate): Update.
1891         (need_to_save_reg): Update.
1892         (spu_expand_prologue): Update.
1893         (spu_expand_epilogue): Update.
1894         * config/sparc/sparc.md: Update.
1895         * config/sparc/sparc.c (eligible_for_return_delay): Update.
1896         (sparc_tls_got): Update.
1897         (legitimize_pic_address): Update.
1898         (sparc_emit_call_insn): Update.
1899         (sparc_expand_prologue): Update.
1900         (output_return): Update.
1901         (print_operand): Update.
1902         (sparc_function_ok_for_sibcall): Update.
1903         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
1904         * config/m32r/m32r.md: Update.
1905         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
1906         (m32r_compute_frame_size): Update.
1907         (m32r_expand_prologue): Update.
1908         (m32r_expand_epilogue): Update.
1909         (m32r_legitimize_pic_address): Update.
1910         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
1911         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
1912         * config/i386/i386.c (ix86_frame_pointer_required): Update.
1913         (gen_push): Update.
1914         (ix86_save_reg): Update.
1915         (ix86_compute_frame_layout): Update.
1916         (ix86_expand_prologue): Update.
1917         (ix86_expand_epilogue): Update.
1918         * config/sh/sh.c (output_stack_adjust): Update.
1919         (calc_live_regs): Update.
1920         (sh5_schedule_saves): Update.
1921         (sh_expand_prologue): Update.
1922         (sh_expand_epilogue): Update.
1923         (sh_setup_incoming_varargs): Update.
1924         (sh_allocate_initial_value): Update.
1925         (sh_get_pr_initial_val): Update.
1926         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
1927         * config/sh/sh.md (label:): Update.
1928         * config/avr/avr.c (out_movhi_mr_r): Update.
1929         * config/crx/crx.h (enum): Update.
1930         * config/xtensa/xtensa.h (along): Update.
1931         * config/stormy16/stormy16.c Update.
1932         (xstormy16_compute_stack_layout): Update.
1933         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
1934         (fr30_expand_prologue): Update.
1935         * config/cris/cris.c (cris_conditional_register_usage): Update.
1936         (cris_reg_saved_in_regsave_area): Update.
1937         (cris_initial_frame_pointer_offset): Update.
1938         (cris_simple_epilogue): Update.
1939         (cris_expand_prologue): Update.
1940         (cris_expand_epilogue): Update.
1941         (cris_expand_pic_call_address): Update.
1942         (cris_asm_output_symbol_ref): Update.
1943         (cris_asm_output_label_ref): Update.
1944         * config/cris/cris.md Update.
1945         * config/iq2000/iq2000.c (compute_frame_size): Update.
1946         (iq2000_expand_epilogue): Update.
1947         * config/mt/mt.h (save_direction): Update.
1948         * config/mn10300/mn10300.c (mn10300_function_value): Update.
1949         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1950         (ia64_secondary_reload_class): Update.
1951         * config/m68k/m68k.c (m68k_save_reg): Update.
1952         (m68k_expand_prologue): Update.
1953         (m68k_expand_epilogue): Update.
1954         (legitimize_pic_address): Update.
1955         * config/rs6000/rs6000.c (rs6000_got_register): Update.
1956         (first_reg_to_save): Update.
1957         (first_altivec_reg_to_save): Update.
1958         (compute_vrsave_mask): Update.
1959         (compute_save_world_info): Update.
1960         (rs6000_stack_info): Update.
1961         (spe_func_has_64bit_regs_p): Update.
1962         (rs6000_ra_ever_killed): Update.
1963         (rs6000_emit_eh_reg_restore): Update.
1964         (rs6000_emit_allocate_stack): Update.
1965         (rs6000_emit_prologue): Update.
1966         (rs6000_emit_epilogue): Update.
1967         (rs6000_output_function_epilogue): Update.
1968         (output_profile_hook): Update.
1969         (rs6000_elf_declare_function_name): Update.
1970         * config/rs6000/rs6000.h (rs6000_args): Update.
1971         * config/rs6000/rs6000.md: Update.
1972         * config/mcore/mcore.c (mcore_expand_prolog): Update.
1973         * config/arc/arc.c (arc_output_function_epilogue): Update.
1974         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
1975         * config/darwin.c (machopic_function_base_name): Update.
1976         * config/score/score3.c (score3_compute_frame_size): Update.
1977         (rpush): Update.
1978         (rpop): Update.
1979         (score3_epilogue): Update.
1980         * config/score/score7.c (score7_compute_frame_size): Update.
1981         (score7_prologue): Update.
1982         (score7_epilogue): Update.
1983         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
1984         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
1985         * config/arm/arm.c (use_return_insn): Update.
1986         (require_pic_register): Update.
1987         (arm_load_pic_register): Update.
1988         (arm_compute_save_reg0_reg12_mask): Update.
1989         (arm_compute_save_reg_mask): Update.
1990         (thumb1_compute_save_reg_mask): Update.
1991         (output_return_instruction): Update.
1992         (arm_output_function_prologue): Update.
1993         (arm_output_epilogue): Update.
1994         (arm_get_frame_offsets): Update.
1995         (arm_expand_prologue): Update.
1996         (thumb_pushpop): Update.
1997         (thumb_exit): Update.
1998         (thumb1_expand_prologue): Update.
1999         (thumb1_expand_epilogue): Update.
2000         (arm_unwind_emit): Update.
2001         (arm_output_fn_unwind): Update.
2002         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2003         * config/arm/arm.md: Update.
2004         * config/pa/pa.md: Update.
2005         * config/pa/pa.c (legitimize_pic_address): Update.
2006         (compute_frame_size): Update.
2007         (hppa_expand_prologue): Update.
2008         (hppa_expand_epilogue): Update.
2009         (borx_reg_operand): Update.
2010         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2011         (HARD_REGNO_RENAME_OK): Update.
2012         * config/mips/mips.c (mips_global_pointer): Update.
2013         (mips_save_reg_p): Update.
2014         (mips_compute_frame_info): Update.
2015         (mips_frame_pointer_required): Update.
2016         (mips_expand_prologue): Update.
2017         (mips_expand_epilogue): Update.
2018         (mips_can_use_return_insn): Update.
2019         (mips_reorg_process_insns): Update.
2020         * config/v850/v850.c (compute_register_save_size): Update.
2021         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2022         * config/mmix/mmix.c (along): Update.
2023         (mmix_expand_epilogue): Update.
2024         * config/bfin/bfin.c (legitimize_pic_address): Update.
2025         (must_save_p): Update.
2026         (stack_frame_needed_p): Update.
2027         (add_to_reg): Update.
2028         (bfin_expand_prologue): Update.
2029         * stmt.c (expand_asm_operands): Update.
2030         * reload1.c (reload): Update.
2031         (init_elim_table): Update.
2032
2033 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
2034         
2035         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2036         
2037 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2038
2039         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
2040         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
2041         (mov<mode>): Removed.
2042         (*movv4sf_internal): Likewise.
2043         (*movv2df_internal): Likewise.
2044
2045 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2046
2047         * config.gcc (crx-*-elf): Remove deprecation.
2048
2049 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
2050
2051         * config/i386/cygming-crtend.c (register_frame_ctor): Register
2052         __gcc_deregister_frame with atexit.
2053         (deregister_frame_dtor): Remove.
2054
2055 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
2056             Nathan Sidwell  <nathan@codesourcery.com>
2057
2058         * config/rs6000/rs6000.opt (mspe): Remove Var property.
2059         (misel): Likewise.
2060         * config/rs6000/rs6000.h (rs6000_spe): Declare.
2061         (rs6000_isel): Likewise.
2062         * config/rs6000/rs6000.c (rs6000_spe): New variable.
2063         (rs6000_isel): New variable.
2064         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
2065
2066 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2067
2068         PR c++/35758
2069         * c-common.c (handle_vector_size_attribute): Call
2070         lang_hooks.types.reconstruct_complex_type instead of
2071         reconstruct_complex_type.
2072         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2073         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2074         * langhooks.h (struct lang_hooks_for_types): Add
2075         reconstruct_complex_type hook.
2076         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2077         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2078
2079 2008-04-24  Richard Guenther  <rguenther@suse.de>
2080
2081         * c-common.h (check_builtin_function_arguments): Declare.
2082         * c-common.c (validate_nargs): New function.
2083         (check_builtin_function_arguments): Likewise.
2084         * c-typeck.c (build_function_call): Call
2085         check_builtin_function_arguments.
2086         * builtins.c (fold_builtin_classify): Remove error reporting code.
2087         (fold_builtin_unordered_cmp): Likewise.
2088         (fold_builtin_1): Likewise.
2089         (fold_builtin_n): Likewise.
2090
2091 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2092
2093         PR tree-optimization/36008
2094         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2095         the original op1, rather than delta by step.
2096
2097 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
2098             Sebastian Pop  <sebastian.pop@amd.com>
2099
2100         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2101         eliminate_local_variables_stmt, eliminate_local_variables,
2102         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2103         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2104         of code delimited by two edges in the CFG.
2105         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2106         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2107         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
2108         the case of parallelisation of reductions.
2109         (expr_invariant_in_region_p): New.
2110
2111         * tree-flow.h (gather_blocks_in_sese_region): Declared.
2112         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2113
2114 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2115             Richard Guenther  <rguenther@suse.de>
2116
2117         PR tree-optimization/36034
2118         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2119         incapable of dealing with loads with gaps.
2120
2121 2008-04-24  Rafael Espindola  <espindola@google.com>
2122
2123         * tree-flow.h (vrp_evaluate_conditional): Change signature.
2124         * tree-ssa-propagate.c (fold_predicate_in): Update call to
2125         vrp_evaluate_conditional.
2126         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
2127         (vrp_evaluate_conditional): Split the cond argument.
2128         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2129         (simplify_stmt_for_jump_threading): Update call to
2130         vrp_evaluate_conditional.
2131
2132 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2133
2134         PR tree-optimization/35982
2135         * tree-vect-analyze.c (vect_check_interleaving): Check that the
2136         interleaved data-refs are of the same type.
2137
2138 2008-04-24  Danny Smith  <dannysmith@users.net>
2139
2140         * c-format.c (check_format_info_main): Use strncmp rather than a
2141         magic prefix to handle multichar length specs.
2142         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2143         Don't prefix "I64" and "I32" with '\0'.
2144
2145 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2146
2147         PR target/36015
2148         * config/i386/i386.c (init_cumulative_args): Don't pass anything
2149         in registers for -m32 only if stdarg_p (fntype).
2150
2151 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
2152
2153         PR rtl-optimization/36006
2154         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2155         temp to op0 in order to avoid invalid rtx sharing.
2156
2157 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2158
2159         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
2160         check TREE_INVARIANT.
2161         * tree-gimple.c (is_gimple_address): New.
2162         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2163         * tree-gimple.h (is_gimple_address): New.
2164         * tree.h (decl_address_invariant_p): New.
2165         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2166         (build_string): Likewise.
2167         (decl_address_invariant_p): New, from is_gimple_invariant_address.
2168         (tree_invariant_p_1): Likewise.
2169         (save_expr): Use it.
2170         (tree_invariant_p): New.
2171         (skip_simple_arithmetic): Use it.
2172         (stabilize_reference_1): Use it.
2173         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2174         simplify.
2175         (build1_stat): Drop code to compute TREE_INVARIANT.
2176         (build2_stat): Drop code to compute TREE_INVARIANT.
2177         (build3_stat): Drop code to compute TREE_INVARIANT.
2178         (build4_stat): Drop code to compute TREE_INVARIANT.
2179         (build5_stat): Drop code to compute TREE_INVARIANT.
2180         (build7_stat): Drop code to compute TREE_INVARIANT.
2181         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2182         * tree.h (struct tree_base): Remove invariant_flag.
2183         (TREE_INVARIANT): Remove.
2184         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2185         (fold_builtin_expect): Check TREE_CONSTANT.
2186         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2187         * c-tree.h (c_expr_to_decl): Drop third parameter.
2188         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2189         (build_c_cast): Don't set TREE_INVARIANT.
2190         (pop_init_level): Don't set TREE_INVARIANT.
2191         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2192         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2193         TREE_CONSTANT.
2194         (gimplify_init_constructor): Don't set TREE_INVARIANT.
2195         (gimplify_addr_expr): Adjust comment.
2196         * tree-mudflap.c (mf_build_string):
2197         * print-tree.c (print_node): Don't print TREE_INVARIANT.
2198         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2199         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2200         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2201         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2202         * langhooks.h (struct lang_hooks): Drop third parameter from
2203         expr_to_decl.
2204
2205 2008-04-23  Richard Guenther  <rguenther@suse.de>
2206
2207         PR tree-optimization/27799
2208         PR tree-optimization/32921
2209         PR tree-optimization/32624
2210         * tree-ssa-structalias.c (merge_smts_into): Only merge the
2211         SMTs aliases and the tag itself into the solution.
2212         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2213         merge the points-to solution back into the SMT aliases.
2214         (may_alias_p): Use alias_set_subset_of instead of
2215         aliases_conflict_p.  A pointer which points to
2216         memory with alias set zero may access any variable.
2217
2218 2008-04-23  Richard Guenther  <rguenther@suse.de>
2219
2220         * alias.c (alias_set_subset_of): Correctly handle asking
2221         if zero is a subset of an alias set with zero child.
2222         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2223         (compute_flow_insensitive_aliasing): Correctly walk all
2224         pointers.  Do not unnecessarily union sets.
2225
2226 2008-04-23  Richard Guenther  <rguenther@suse.de>
2227
2228         PR middle-end/36021
2229         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2230
2231 2008-04-22  Tomas Bily  <tbily@suse.cz>
2232
2233         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2234         unreachable case.
2235         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2236         NON_LVALUE_EXPR.
2237         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2238         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2239         * tree-inline.c (estimate_num_insns_1): Likewise.
2240         * varasm.c (const_hash_1, compare_constant, copy_constant)
2241         (compute_reloc_for_constant, output_addressed_constants): Likewise.
2242         * emit-rtl.c (component_ref_for_mem_expr)
2243         (set_mem_attributes_minus_bitpos): Likewise.
2244         * expr.c (highest_pow2_factor, expand_expr_real_1, )
2245         (is_aligning_offset): Likewise.
2246         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2247         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2248         * dojump.c (do_jump): Likewise.
2249         * builtins.c (get_pointer_alignment, get_memory_rtx)
2250         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2251         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
2252
2253 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
2254
2255         PR rtl-optimization/36017
2256         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2257         expanding the library call.
2258
2259 2008-04-22  Ian Lance Taylor  <iant@google.com>
2260
2261         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2262         than size_in_bytes.
2263
2264 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
2265
2266         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2267         of LR/CTR moves for Power6.
2268
2269 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
2270
2271         PR middle-end/36003
2272         * passes.c (init_optimization_passes): Remove
2273         pass_fast_rtl_byte_dce.
2274         
2275 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
2276
2277         PR target/29096
2278         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2279         builtin functions to generate faster code.
2280         (_mm_cvtpu16_ps): Ditto.
2281         (_mm_cvtpi32x2_ps): Ditto.
2282
2283 2008-04-22  Nick Clifton  <nickc@redhat.com>
2284
2285         * common.opt (ftree-loop-distribution): Add Optimization
2286         attribute.
2287
2288         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2289         (frv_expand_builtin_va_start): Likewise.
2290
2291         * config/arm/arm.c (thumb_find_work_register): Fix location of
2292         argument register count.
2293
2294 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2295
2296         Support scheduling for ColdFire V1 and V3 microarchitecture.
2297         Improve scheduling of multiplication instructions.
2298
2299         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
2300         (mac): New instruction attribute.
2301         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2302         (m68k_sched_mac): New variable.
2303         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2304         Handle cfv1 and cfv3.
2305         (max_insn_size): New static variable.
2306         (struct _sched_ib): New type.
2307         (sched_ib): New static variable.
2308         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2309         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
2310         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2311         Update.
2312         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2313         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
2314         new variables.  Update.
2315         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2316         Add modeling of cfv3 instruction buffer.  Update.
2317         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2318         * config/m68k/m68k.h (TUNE_CFV3): New macro.
2319         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2320         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2321         a particular reservation applies to.
2322         (type2): Reorganize attribute values.  Rename alu to alu_reg,
2323         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
2324         to mul_l and mul_w.
2325         (cf_ib_*): Simplify description of instruction buffer.
2326         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2327         (cf_mem): Split into cf_mem1 and cf_mem2.
2328         (cf_v2_move_??): Rename to cfv12_alu_??.
2329         (cf_v2_move_l_??): Rename to cfv12_omove_??.
2330         (cf_v2_mul_??): Remove reservations.
2331         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2332         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2333         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2334         appropriate place.
2335         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2336         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2337         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2338         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2339         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2340         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2341         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2342         expansions of the above reservations for instructions of sizes
2343         1, 2 and 3 words.
2344
2345 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2346
2347         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2348
2349 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
2350
2351         * coverage.c: Include tree-pass.h.
2352         (coverage_counter_alloc): Print da_file_name to the dump file.
2353
2354 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
2355
2356         * sbitmap.c (sbitmap_range_empty_p): New function.
2357         * sbitmap.h (sbitmap_range_empty_p): New function.
2358         * bitmap.h: Now includes obstack.h.
2359
2360 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2361             Kenneth Zadeck  <zadeck@naturalbridge.com>
2362
2363         * dbgcnt.def (ra_byte_scan): Added.
2364         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2365         when the last hit happens for a counter.  
2366         * timevar.def (TV_DF_BYTE_LR): New variable.
2367         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2368         * passes.c (pass_fast_rtl_byte_dce): New pass.
2369         * fwprop.c (update_df): Added mode to call df_ref_create.
2370         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2371         DF_REF_EXTRACT_OFFSET.
2372         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
2373         DF_BYTE_LR_OUT, df_byte_lr): New macro.
2374         (df_mm): New enum.
2375         (df_ref_extract): Added mode field.
2376         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2377         DF_REF_EXTRACT_OFFSET.
2378         (DF_REF_EXTRACT_MODE): New macro.
2379         (df_byte_lr_bb_info): New structure.
2380         (df_print_byte_regset, df_compute_accessed_bytes, 
2381         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2382         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2383         df_byte_lr_simulate_uses,
2384         df_byte_lr_simulate_artificial_refs_at_top,
2385         df_byte_lr_simulate_artificial_refs_at_end,
2386         df_compute_accessed_bytes): New function.
2387         (df_ref_create): Add parameter.
2388         (df_byte_lr_get_bb_info): New inline function.
2389         * df-scan.c (df_ref_record, df_uses_record,
2390         df_ref_create_structure): Added mode parameter.
2391         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
2392         df_defs_record, df_uses_record, df_get_conditional_uses,
2393         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
2394         df_entry_block_defs_collect, df_exit_block_uses_collect):
2395         Added mode parameter to calls to df_ref_record, df_uses_record,
2396         df_ref_create_structure.
2397         (df_ref_equal_p, df_ref_compare): Added test for modes.
2398         (df_ref_create_structure): Added code to set mode.  Renamed
2399         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2400         DF_REF_EXTRACT_OFFSET.
2401         * df-core.c (df_print_byte_regset): New function.
2402         * df-byte-scan.c: New file.
2403         * df-problems.c (df_rd_transfer_function): Removed unnecessary
2404         calls to BITMAP_FREE.  
2405         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2406         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2407         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
2408         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
2409         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2410         df_byte_lr_local_compute, df_byte_lr_init,
2411         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
2412         df_byte_lr_transfer_function, df_byte_lr_free, 
2413         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2414         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
2415         df_byte_lr_simulate_uses,
2416         df_byte_lr_simulate_artificial_refs_at_top,
2417         df_byte_lr_simulate_artificial_refs_at_end): New function.
2418         * dce.c (byte_dce_process_block): New function.
2419         (dce_process_block): au is now passed in rather than computed
2420         locally.  Changed loops that look at artificial defs to not look
2421         for conditional or partial ones, because there never are any.  
2422         (fast_dce): Now is able to drive byte_dce_process_block or 
2423         dce_process_block depending on the kind of dce being done.
2424         (rest_of_handle_fast_dce): Add parameter to fast_dce.
2425         (rest_of_handle_fast_byte_dce): New function.
2426         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2427         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2428
2429 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
2430
2431         PR fortran/35019
2432         * gcc.h: Added fortran options that take arguments to
2433         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2434         macros.
2435
2436 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2437
2438         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2439         scalarization if on the LHS and not a full access.
2440
2441 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2442
2443         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
2444
2445 2008-04-18  Rafael Espindola  <espindola@google.com>
2446
2447         * tree-vrp.c (find_case_label_index): Fix the binary search.
2448         (find_case_label_range): New.
2449         (vrp_visit_switch_stmt): Use find_case_label_range.
2450         (simplify_switch_using_ranges): Use find_case_label_range.
2451
2452 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2453
2454         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2455         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2456
2457 2008-04-18  Tom Tromey  <tromey@redhat.com>
2458
2459         PR libcpp/15500:
2460         * doc/cpp.texi (Implementation-defined behavior): Mention
2461         -finput-charset.
2462
2463 2008-04-18  Ian Lance Taylor  <iant@google.com>
2464
2465         * fold-const.c (pointer_may_wrap_p): New static function.
2466         (fold_comparison): Add another test for pointer overflow.  Use
2467         pointer_may_wrap_p to disable some false positives.
2468
2469 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
2470           
2471         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2472         (fname_as_string): Match updated cpp_interpret_string prototype.
2473         (fix_string_type): Support char16_t* and char32_t*.
2474         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2475         derivative) nodes.  Register as builtin if C++0x.
2476         (c_parse_error): Support CPP_CHAR{16,32}.
2477         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
2478         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2479         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2480         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2481         CTI_CHAR32_ARRAY_TYPE>: New elements.
2482         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2483         char32_type_node, signed_char32_type_node, char16_array_type_node,
2484         char32_array_type_node): New defines.
2485         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2486         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2487         (lex_string): Support CPP_STRING{16,32}, match updated
2488         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2489         (lex_charconst): Support CPP_CHAR{16,32}.
2490         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2491         and CPP_STRING{16,32}.
2492
2493 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2494
2495         PR bootstrap/35457
2496         * aclocal.m4: Regenerate.
2497         * configure: Regenerate.
2498
2499 2008-04-18  Jan Hubicka  <jh@suse.cz>
2500
2501         * except.c (dw2_size_of_call_site_table,
2502         sjlj_size_of_call_site_table): Use vector API for call_site_record.
2503
2504         * cgraphbuild.c (build_cgraph_edges): Update.
2505         * tree-pass.h: Update comment.
2506         * final.c (leaf_function_p): Update.
2507         (leaf_renumber_regs): Update.
2508         (rest_of_clean_state): Update.
2509         * omp-low.c (expand_omp_parallel): Update.
2510         * ipa-reference.c (analyze_function): Update.
2511         * reorg.c (find_end_label): Update.
2512         (optimize_skip): Update.
2513         (fill_simple_delay_slots): Update.
2514         (fill_simple_delay_slots): Update.
2515         (make_return_insns): Update.
2516         (dbr_schedule): Update.
2517         * gimple-low.c (record_vars_into): Update.
2518         * cfgbuild.c (make_edges): Update.
2519         * function.c (assign_stack_local): Update.
2520         (assign_parm_adjust_stack_rtl): Update.
2521         (locate_and_pad_parm): Update.
2522         (allocate_struct_function): Do not initialize stack_alignment_needed
2523         and preferred_stack_boundary here.
2524         (stack_protect_prologue): Update.
2525         (stack_protect_epilogue): Update.
2526         (expand_function_start): Initialize stack_alignment_needed,
2527         preferred_stack_boundary and max_jumptable_ents.
2528         (expand_function_end): Update.
2529         (free_after_compilation): Do not NULLify epilogue_delay_list.
2530         * function.h (struct rtl_data): Add stack_protect_guard,
2531         stack_alignment_needed,
2532         preferred_stack_boundary, epilogue_delay_list.
2533         (struct function): Remove value_histograms, stack_alignment_needed,
2534         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2535         last_label_uid,
2536         unexpanded_var_list, stack_protect_guard.
2537         (current_function_epilogue_delay_list): Remove.
2538         * ipa-type-escape.c (analyze_function): Update.
2539         * gimplify.c (pop_gimplify_context): Update comment.
2540         * calls.c (expand_call): Update.
2541         (emit_library_call_value_1): Update.
2542         * except.c (set_nothrow_function_flags): Update.
2543         * cfgexpand.c (get_decl_align_unit): Update.
2544         (create_stack_guard): Update.
2545         (estimated_stack_frame_size): Update.
2546         (expand_used_vars): Update.
2547         (tree_expand_cfg): Free histogram earliers, init expansion variables.
2548         * explow.c (allocate_dynamic_stack_space): Update.
2549         * tree-ssa-live.c (remove_unused_locals): Update.
2550         * varasm.c (mark_constant_pool): Update.
2551         * tree-inline.c (remap_decls): Update.
2552         (initialize_cfun): Update.
2553         (declare_return_variable): Update.
2554         (inline_forbidden_p): Update.
2555         (expand_call_inline): Update.
2556         (declare_inline_vars): Update.
2557         (tree_function_versioning): Update.
2558         * tree-flow.h (value_histograms): New.
2559         (VALUE_HISTOGRAMS): New macro.
2560         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2561         last_label_uid.
2562         * tree-cfg.c (set_bb_for_stmt): Update.
2563         (replace_by_duplicate_decl): Update.
2564         (move_block_to_fn): Update.
2565         (new_label_mapper): Update.
2566         (dump_function_to_file): Update.
2567         * ipa-struct-reorg.c (build_data_structure): Update.
2568         * cfgrtl.c (print_rtl_with_bb): Update.
2569         * reload1.c (reload): Update.
2570         (reload): Update.
2571         * config/i386/i386.c (setup_incoming_varargs_64,
2572         ix86_compute_frame_layout): Update.
2573         * config/arc/arc.c (arc_output_function_epilogue): Update.
2574
2575 2008-04-18  Marius Strobl <marius@FreeBSD.org>
2576
2577         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2578         for FreeBSD as well.
2579         * gthr-posix95.h: Likewise.
2580
2581 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
2582
2583         PR rtl-optimization/35838
2584         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2585         out the byte offset of the first subreg.
2586
2587 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
2588
2589         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2590         to split_ti instead of three separate calls with single member arrays.
2591         (subti3 splitter): Ditto.
2592         (adddi3 splitter): Ditto with split_di.
2593         (subdi3 splitter): Ditto.
2594         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2595         two separate calls with single member arrays.  Swap match_dup
2596         operands 1 and 2 to better fit into the array.
2597         (negdi2 splitter): Ditto with split_di.
2598         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
2599         two separate calls with single member arrays.  Swap match_dup operands
2600         6 and 7 to better fit into the array.
2601
2602 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2603
2604         * config/i386/i386.c (sse_builtin_type): New.
2605         (bdesc_sse_args): Likewise.
2606         (bdesc_sse_3arg): Removed.
2607         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2608         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2609         IX86_BUILTIN_ROUNDPS.
2610         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
2611         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
2612         IX86_BUILTIN_ROUNDPS.
2613         (ix86_expand_sse_4_operands_builtin): Removed.
2614         (ix86_expand_sse_operands_builtin): New.
2615         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2616         and CODE_FOR_sse4_1_roundps.
2617         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2618         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
2619
2620 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
2621
2622         PR target/35907
2623         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2624         regs before frame pop when needed.  If use_backchain_to_restore_sp
2625         then load backchain into a temp reg to restore vr and vrsave.  Add
2626         code to restore vr after frame pop if possible.
2627
2628 2008-04-17  Richard Guenther  <rguenther@suse.de>
2629
2630         * tree-vn.c (expressions_equal_p): Do not check type
2631         equality or compatibility before calling operand_equal_p.
2632         * fold-const.c (operand_equal_p): Check equivalence of
2633         integer constants before bailing out due to signedness or
2634         precision differences.
2635         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
2636         spurious differences in type qualification.  Ignore types
2637         for COMPONENT_REFs at all.
2638
2639 2008-04-17  Christian Bruel  <christian.bruel@st.com>
2640
2641         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
2642         msw_skip comparison.
2643         
2644 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
2645
2646         PR c/35739
2647         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
2648         reg type.
2649
2650         PR tree-optimization/35899
2651         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
2652         rather than TREE_OPERAND.
2653
2654 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
2655
2656         PR target/35944
2657         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
2658         temporary registers.  Change operand predicate to general_operand.
2659         (remainderxf3): Ditto.
2660
2661 2008-04-16  Richard Guenther  <rguenther@suse.de>
2662
2663         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
2664         * tree-affine.c (aff_combination_expand): Look through some
2665         conversions.
2666
2667 2008-04-15  Doug Kwan  <dougkwan@google.com>
2668
2669         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
2670         for hex printing.
2671         * tree-pretty-print.c (dump_generic_node): Ditto.
2672         * final.c (output_addr_const): Ditto.
2673         * dwarf2out.c (output_cfi): Ditto.
2674         * c-pretty-print.c (pp_c_integer_constant): Ditto.
2675         * print-rtl.c (print_rtx): Ditto.
2676         * print-tree.c (print_node_brief, print_node): Ditto.
2677         * c-common.c (match_case_to_enum_1): Ditto.
2678         * sched-vis.c (print_value): Ditto.
2679         * config/i386/i386.c (print_operand): Cast to long unsigned int
2680         for hex printing.
2681
2682 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
2683         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
2684         MS Windows VirtualProtect function.
2685
2686 2008-04-15  Jan Hubicka  <jh@suse.cz>
2687
2688         * gengtype.c (write_root): Param_is argument is OK.
2689         * expr.c (expand_expr_real_1): Update call of get_exception_*.
2690         * function.h: Include varray.h
2691         (rtl_eh): New stucture based on except.c one.
2692         (call_site_record): New forward declaration and vector type.
2693         * calls.c (emit_call_1): Do not call
2694         note_current_region_may_contain_throw.
2695         * except.c (eh_status): Remove cur_region, try_region since they are
2696         unused.
2697         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
2698         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
2699         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
2700         Remove call_site_data_used, call_site_data_size.
2701         Turn call_site_record into vector in function.h.
2702         (note_current_region_may_contain_throw): Remove.
2703         (get_exception_pointer, get_exception_filter): Do not take struct
2704         function argument; update.
2705         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
2706         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
2707         build_post_landing_pads, dw2_build_landing_pads,
2708         sjlj_assign_call_site_values, sjlj_mark_call_sites,
2709         sjlj_emit_function_enter, sjlj_emit_function_enter, 
2710         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
2711         sjlj_build_landing_pads, finish_eh_generation,
2712         remove_exception_handler_label, remove_eh_handler,
2713         maybe_remove_eh_handler, add_reachable_handler,
2714         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
2715         add_action_record, collect_one_action_chain, add_call_site,
2716         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
2717         sjlj_output_call_site_table, output_function_exception_table,
2718         * except.h (note_current_region_may_contain_throw): Remove
2719         (get_exception_pointer, get_exception_filter): Do not take struct
2720         function argument.
2721         * Makefile.in (GTFILES): Put varargs before struct function.
2722
2723 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2724
2725         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
2726         punt for STRING_CST.
2727         (get_constraint_for): Deal with STRING_CST here instead.
2728
2729 2008-04-15  Richard Guenther  <rguenther@suse.de>
2730
2731         * tree-ssa-propagate.c (substitute_and_fold): Substitute
2732         statements in a basic-block with a backward walk.  Do not
2733         substitute into dead statements but instead remove those.
2734
2735 2008-04-15  Richard Guenther  <rguenther@suse.de>
2736
2737         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
2738         to zero, thus disable creation of SFTs.
2739
2740 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2741
2742         * tree-predcom.c (suitable_reference_p): Return false if the
2743         reference can throw.
2744
2745 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
2746
2747         PR c/35751
2748         * c-decl.c (finish_decl): If extern or static var has variable
2749         size, set TREE_TYPE (decl) to error_mark_node.
2750
2751 2008-04-15  Rafael Espindola  <espindola@google.com>
2752
2753         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
2754         variable arg1.
2755
2756 2008-04-15  Richard Guenther  <rguenther@suse.de>
2757
2758         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
2759         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
2760         (visit_reference_op_load): Do walk vuse-vdef chains on
2761         vn_reference_lookup.
2762         (visit_reference_op_store): But do not here.
2763         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
2764         vn_reference_lookup.
2765         (vn_lookup_with_vuses): But do so here.
2766
2767 2008-04-14  Ian Lance Taylor  <iant@google.com>
2768
2769         * fold-const.c (fold_overflow_warning): Remove assertion.
2770
2771 2008-04-15  Ben Elliston  <bje@au.ibm.com>
2772
2773         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
2774         temp1 local variables.
2775
2776 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
2777
2778         PR target/35661
2779         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
2780         ".text.unlikely" section as executable.
2781
2782 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
2783
2784         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2785         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
2786         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
2787         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
2788         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
2789         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
2790         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
2791
2792 2008-04-14  Ian Lance Taylor  <iant@google.com>
2793
2794         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
2795         * fold-const.c (fold_comparison): If appropriate, test
2796         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
2797         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
2798         reassociating a pointer type.
2799         * doc/invoke.texi (Optimize Options): Document that
2800         -fstrict-overflow applies to pointer wraparound.
2801
2802 2008-04-13  Jan Hubicka  <jh@suse.cz>
2803
2804         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
2805
2806 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
2807
2808         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
2809         we are going to "save the world".
2810
2811 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
2812
2813         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
2814         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
2815         operand 0 constraint, not "=".
2816
2817 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
2818
2819         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
2820
2821 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
2822
2823         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
2824         of size of positions_needed * CHAR_BIT.
2825
2826 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
2827
2828         PR middle-end/35897
2829         * dse.c (store_info): Change positions_needed to unsigned
2830         HOST_WIDE_INT.
2831         (lowpart_bitmask): New.
2832         (record_store): Cast to unsigned HOST_WIDE_INT for
2833         positions_needed.  Assert width <= size of positions_needed *
2834         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
2835         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
2836         lowpart_bitmask to set mask.
2837
2838 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2839
2840         * config/bfin/constraints.md: New file.
2841         * config/bfin/bfin.md: Include it.
2842         (adddi3): Use satisfies_constraint functions instead of the old macros.
2843         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
2844         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
2845         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
2846         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
2847         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
2848         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
2849         EXTRA_CONSTRAINT): Delete.
2850         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
2851         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
2852         of the old macros.
2853         * config/bfin/bfin.c: Include "tm-constrs.h".
2854         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
2855         Use satisfies_constraint functions instead of the old macros.
2856         * doc/md.texi (Blackfin Constraints): Update file name reference.
2857
2858 2008-04-11  Richard Guenther  <rguenther@suse.de>
2859
2860         PR tree-optimization/35869
2861         * tree-vrp.c (execute_vrp): Move switch statement update after
2862         jump threading.  Schedule another cfg cleanup run.
2863
2864 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
2865
2866         PR c/35744
2867         * attribs.c (decl_attributes): Return early on errorneous node.
2868
2869 2008-04-10  Oleg Ryjkov  <olegr@google.com>
2870
2871         * tree.h (struct tree_base): Added a new flag default_def_flag.
2872         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
2873
2874 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2875
2876         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
2877
2878 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2879
2880         PR target/35768
2881         * pa.md: Define mode iterator P.  Define mode attribute dwc.
2882         (dcacheflush): Update pattern to use iterator P and attribute dwc.
2883         (icacheflush): Likewise.
2884         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
2885         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
2886
2887 2008-04-11  Ben Elliston  <bje@au.ibm.com>
2888
2889         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
2890
2891 2008-04-10  Rafael Espindola  <espindola@google.com>
2892
2893         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2894         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
2895         (extract_range_from_expr): The same.
2896
2897 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
2898
2899         * config/mips/mips.md (GPR2): New mode iterator.
2900         (seq): Add comment.
2901         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
2902         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
2903         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
2904         Rewrite these to take two modes, the mode of comparison and the
2905         mode of the destination.
2906         * config/mips/mips.c (mips_expand_scc): Instead of having
2907         paradoxical subreg as destination, expand "narrowing" scc if mode
2908         of comparison is SI and target is requested in DI mode.
2909         (mips_emit_int_order_test): Update comment.  Make mode of
2910         comparison match CMP0 rather than TARGET.  When creating inverse
2911         target use mode of TARGET.
2912
2913 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
2914
2915         * gcov-dump.c (tag_summary): Only print summaries for the first
2916         GCOV_COUNTERS_SUMMABLE counters.
2917
2918 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
2919
2920         * config/i386/i386.md (absneg): New code iterator.
2921         (absnegprefix): New code attribute.
2922         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
2923         patterns using absneg code iterator.
2924         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
2925         using absneg code iterator.
2926         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
2927         *neg<mode>2 patterns using absneg code iterator.
2928         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
2929         *negextendsfdf2 patterns using absneg code iterator.
2930         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
2931         *negextendsfxf2 patterns using absneg code iterator.
2932         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
2933         *negextendsfdf2 patterns using absneg code iterator.
2934         * config/i386/sse.md (<code><mode>2): Macroize expander from
2935         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
2936
2937 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2938
2939         * config/s390/s390.h: Remove the remains of the recent search
2940         & replace action of current_function_outgoing_args_size.
2941
2942 2008-04-10  Ira Rosen  <irar@il.ibm.com>
2943
2944         PR tree-optimization/35821
2945         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
2946         NEW_STMT_LIST is not NULL.
2947
2948 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
2949
2950         PR libstdc++/35597
2951         * toplev.c (process_options): Remove -ffunction-sections debugging
2952         warning.
2953
2954 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
2955
2956         PR middle-end/PR28690
2957         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
2958         than gen_rtx_fmt_ee to perform more canonicalizations.
2959
2960 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2961
2962         PR driver/35665
2963         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
2964
2965 2008-04-09  Richard Guenther  <rguenther@suse.de>
2966
2967         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
2968         (dump_function_to_file): Dump function arguments with types.
2969
2970 2008-04-08  Richard Guenther  <rguenther@suse.de>
2971
2972         * fold-const.c (fold_widened_comparison): Do not allow
2973         sign-changes that change the result.
2974
2975 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
2976
2977         PR target/35839
2978         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
2979         kinds of indirect references.
2980
2981 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
2982
2983         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
2984         GNU Fortran language string.
2985
2986 2008-04-08  Rafael Espindola  <espindola@google.com>
2987
2988         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
2989         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
2990         * tree.h (tree_call_nonnegative_warnv_p): New.
2991
2992 2008-04-08  Jan Hubicka  <jh@suse.cz>
2993
2994         * function.c (free_after_compilation): Clear out regno_reg_rtx
2995         pointer.
2996
2997 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
2998
2999         Revert
3000         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3001
3002         PR middle-end/PR28690
3003         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
3004         same precedence as REG_POINTER and MEM_POINTER operands.
3005
3006 2008-04-08  Richard Guenther  <rguenther@suse.de>
3007
3008         PR middle-end/35834
3009         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
3010         for adding index to base.
3011
3012 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
3013
3014         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
3015         (MINGW_ENABLE_EXECUTE_STACK): New.
3016         (IN_LIBGCC2): For libgcc include windows.h file for
3017         function declarations.
3018
3019 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
3020
3021         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
3022         and tem2 if tem1 is not a REG or MULT.
3023
3024 2008-04-08  Jan Hubicka  <jh@suse.cz>
3025
3026         * function.h (incomming_args): Break out of struct function.
3027         (function_subsections): Break out of struct function.
3028         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
3029         return_rtx and hard_reg_initial_vals from struct function.
3030         Kill inl_max_label_num.
3031         (current_function_pops_args, current_function_args_info,
3032         current_function_args_size, current_function_args_size,
3033         current_function_pretend_args_size,
3034         current_function_outgoing_args_size,
3035         current_function_internal_arg_pointer, current_function_return_rtx):
3036         Kill compatibility accestor macros.
3037         * builtins.c (expand_builtin_apply_args_1): Update.
3038         (expand_builtin_next_arg): Update.
3039         * df-scan.c (df_get_call_refs): Update.
3040         * dbxout.c (dbxout_function_end): Update.
3041         * dwarf2out.c (dwarf2out_switch_text_section): Update.
3042         (output_line_info): Update.
3043         (secname_for_decl): Update.
3044         (dwarf2out_var_location): Update.
3045         * function.c (free_after_compilation): Update.
3046         (assign_parm_find_stack_rtl): Update.
3047         (assign_parms): Update.
3048         (expand_dummy_function_end): Update.
3049         (expand_function_end): Update.
3050         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
3051         (expand_call): Update.
3052         (emit_library_call_value_1): Update.
3053         (store_one_arg): Update.
3054         * varasm.c (initialize_cold_section_name): Update.
3055         (unlikely_text_section): Update.
3056         (unlikely_text_section_p): Update.
3057         (assemble_start_function): Update.
3058         (assemble_end_function): Update.
3059         (default_section_type_flags): Update.
3060         (switch_to_section): Update.
3061         * integrate.c (set_decl_abstract_flags): Update.
3062         (get_hard_reg_initial_val): Update.
3063         (has_hard_reg_initial_val): Update.
3064         (allocate_initial_values): Update.
3065         * resource.c (init_resource_info): Update.
3066         * config/alpha/alpha.c (NUM_ARGS): Update.
3067         (direct_return): Update.
3068         (alpha_va_start): Update.
3069         (alpha_sa_size): Update.
3070         (alpha_initial_elimination_offset): Update.
3071         (alpha_expand_prologue): Update.
3072         (alpha_start_function): Update.
3073         (alpha_expand_epilogue): Update.
3074         (unicosmk_initial_elimination_offset):
3075         * config/alpha/alpha.md (call expander): Update.
3076         * config/s390/s390.c (s390_register_info): Update.
3077         (s390_register_info): Update.
3078         (s390_frame_info): Update.
3079         (s390_initial_elimination_offset): Update.
3080         (s390_build_builtin_va_list): Update.
3081         (s390_va_start): Update.
3082         * config/spu/spu.c (direct_return): Update.
3083         (spu_expand_prologue): Update.
3084         (spu_initial_elimination_offset): Update.
3085         (spu_build_builtin_va_list): Update.
3086         (spu_va_start): Update.
3087         * config/sparc/sparc.c (sparc_init_modes): Update.
3088         (sparc_compute_frame_size): Update.
3089         (function_value): Update.
3090         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
3091         * config/i386/i386.md (return expander): Update.
3092         * config/i386/i386.c (ix86_va_start): Update.
3093         (ix86_can_use_return_insn_p): Update.
3094         (ix86_compute_frame_layout): Update.
3095         (ix86_expand_epilogue): Update.
3096         * config/sh/sh.c (output_stack_adjust): Update.
3097         (calc_live_regs): Update.
3098         (sh_expand_prologue): Update.
3099         (sh_builtin_saveregs): Update.
3100         (sh_va_start): Update.
3101         (initial_elimination_offset): Update.
3102         (sh_allocate_initial_value): Update.
3103         (sh_function_ok_for_sibcall): Update.
3104         (sh_get_pr_initial_val): Update.
3105         * config/sh/sh.md (return expander): Update.
3106         * config/avr/avr.c (frame_pointer_required_p): UPdate.
3107         * config/crx/crx.c (crx_compute_frame): UPdate.
3108         (crx_initial_elimination_offset): UPdate.
3109         * config/xtensa/xtensa.c (compute_frame_size): Update
3110         (xtensa_builtin_saveregs): Update.
3111         (xtensa_va_start): Update.
3112         (order_regs_for_local_alloc): Update.
3113         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3114         (xstormy16_expand_builtin_va_start): Update.
3115         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3116         * config/m68hc11/m68hc11.md (return expanders): Update.
3117         * config/m68hc11/m68hc11.c (expand_prologue): Update.
3118         (expand_epilogue): Update.
3119         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3120         (cris_simple_epilogue): Update.
3121         (cris_expand_prologue): Update.
3122         (cris_expand_epilogue): Update.
3123         * config/iq2000/iq2000.c (iq2000_va_start): Update.
3124         (compute_frame_size): Update.
3125         * config/mt/mt.c (mt_compute_frame_size): Update.
3126         * config/mn10300/mn10300.c (expand_prologue): Update.
3127         (expand_epilogue): Update.
3128         (initial_offset): Update.
3129         (mn10300_builtin_saveregs):
3130         * config/mn10300/mn10300.md (return expander): Update.
3131         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3132         (ia64_initial_elimination_offset): Update.
3133         (ia64_initial_elimination_offset): Update.
3134         (ia64_expand_prologue): Update.
3135         * config/m68k/m68k.md (return expander): Update.
3136         * config/rs6000/rs6000.c (rs6000_va_start): Update.
3137         (rs6000_stack_info): Update.
3138         * config/mcore/mcore.c (layout_mcore_frame): Update.
3139         (mcore_expand_prolog): Update.
3140         * config/arc/arc.c (arc_compute_frame_size): Update.
3141         * config/score/score3.c (score3_compute_frame_size): Update.
3142         * config/score/score7.c (score7_compute_frame_size): Update.
3143         * config/arm/arm.c (use_return_insn): Update.
3144         (thumb_find_work_register): Update.
3145         (arm_compute_save_reg_mask): Update.
3146         (arm_output_function_prologue): Update.
3147         (arm_output_epilogue): Update.
3148         (arm_size_return_regs): Update.
3149         (arm_get_frame_offsets): Update.
3150         (arm_expand_prologue): Update.
3151         (thumb_exit): Update.
3152         (thumb_unexpanded_epilogue): Update.
3153         (thumb1_output_function_prologue): Update.
3154         * config/pa/pa.md (return expander): Update.
3155         * config/pa/pa.c (compute_frame_size): Update.
3156         (hppa_builtin_saveregs): Update.
3157         * config/mips/mips.c (mips_va_start): Update.
3158         (mips16_build_function_stub): Update.
3159         (mips_compute_frame_info): Update.
3160         (mips_restore_gp): Update.
3161         (mips_output_function_prologue): Update.
3162         (mips_expand_prologue): Update.
3163         * config/v850/v850.c (compute_frame_size): Update.
3164         (expand_prologue): * config/mmix/mmix.c (along): update.
3165         (mmix_initial_elimination_offset): update.
3166         (mmix_reorg): update.
3167         (mmix_use_simple_return): update.
3168         (mmix_expand_prologue): update.
3169         (mmix_expand_epilogue): Update.
3170         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3171         (emit_link_insn): Update.
3172
3173 2008-04-08  Anatoly Sokolov <aesok@post.ru>
3174
3175         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
3176         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
3177         instructions.
3178         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
3179         atmega103 device.
3180
3181 2008-04-07  Jan Hubicka  <jh@suse.cz>
3182
3183         * function.h (rtl): Rename to x_rtl.
3184         (crtl): New define.
3185         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3186         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3187         used_temp_slots avail_temp_slots, temp_slot_level,
3188         nonlocal_goto_handler_labels): Update accesstors.
3189         (rtl): New global variable.
3190         (struct function): Move some fileds to rtl_data.
3191         (get_arg_pointer_save_area): Update prototype.
3192         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3193         get_arg_pointer_save_area.
3194         * expr.c (init_expr): Update
3195         * function.c (get_frame_size): Update
3196         (assign_stack_local): Update
3197         (expand_function_end): Update.
3198         (get_art_pointer_save_area): Update
3199         * function.h 
3200         * emit-rtl.c (rtl): Declare.
3201         (regno_reg_rtx): Declare.
3202         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3203         Update.
3204         (gen_reg_rtx): Update.
3205         * varasm.c (n_deferred_constatns): Update accestor.
3206         (init_varasm_status): Do not allocate varasm_status.
3207         (force_const_mem, get_pool_size, output_constant_pool): Update.
3208         * stmt.c (force_label_rtx): Do not use x_ prefixes.
3209         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3210         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3211         * sparc/sparc.h (INIT_EXPANDERS): Update.
3212         * ia64/ia64.h (INIT_EXPANDERS): Update.
3213
3214 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
3215
3216         * reload.c (push_secondary_reload): Add missing break to for loop.
3217
3218 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3219
3220         PR middle-end/PR28690
3221         * rtlanal.c: Update copyright years.
3222         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3223         as REG_POINTER and MEM_POINTER operands.
3224         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3225         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3226         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3227         * gcse.c: Update copyright years.
3228         (pre_delete): Call gen_reg_rtx_and_attrs.
3229         (hoist_code): Likewise.
3230         (build_store_vectors): Likewise.
3231         (delete_store): Likewise.
3232         * loop-invariant.c (move_invariant_reg): Likewise.
3233         Update copyright years.
3234
3235 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
3236
3237         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3238         control string instead of quoted.
3239
3240 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3241
3242         * doc/rtl.texi: Rewrite of subreg section.
3243
3244 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
3245
3246         PR/35842
3247         * config/i386/i386.c (legitimize_pic_address): Add treating
3248         of dllimport SYM_REF's.
3249         (legitimize_dllimport_symbol): Add prototype.
3250
3251 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3252
3253         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
3254         reference in constructor with non self-referential type.
3255
3256 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3257
3258         Removal of Return with Depressed Stack Pointer support
3259         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3260         (ECF_SP_DEPRESSED): Likewise.
3261         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3262         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3263         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3264         (expand_call): Do not test ECF_SP_DEPRESSED.
3265         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3266         * function.c (keep_stack_depressed): Delete.
3267         (handle_epilogue_set): Likewise.
3268         (update_epilogue_consts): Likewise.
3269         (emit_equiv_load): Likewise.
3270         (thread_prologue_and_epilogue_insns): Remove support for Return with
3271         Depressed Stack Pointer.
3272         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3273
3274 2008-04-06  Richard Guenther  <rguenther@suse.de>
3275
3276         PR tree-optimization/35400
3277         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3278         information from SSA_NAMEs.
3279
3280 2008-04-06  Anatoly Sokolov <aesok@post.ru>
3281
3282         * config/avr/avr.h (avr_mega_p): Remove declaration.
3283         (AVR_MEGA): Remove macro.
3284         * config/avr/avr.c (avr_mega_p): Remove variable.
3285         (avr_override_options): Remove inicializion of avr_mega_p.
3286         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3287         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3288         (avr_jump_mode): (Ditto.).
3289         (avr_output_progmem_section_asm_op): (Ditto.).
3290         (avr_asm_init_sections): (Ditto.).
3291         (avr_asm_init_sections): (Ditto.).
3292         (avr_rtx_costs): (Ditto.).
3293         * config/avr/avr.md: (Ditto.).
3294         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
3295         '__AVR_MEGA__'.
3296
3297 2008-04-06  Richard Guenther  <rguenther@suse.de>
3298
3299         PR tree-optimization/35842
3300         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3301         is_gimple_invariant_address.
3302
3303 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3304
3305         * gcc.c (default_compilers): Sync Fortran extensions list with
3306         that in fortran/lang-specs.h.
3307         * doc/invoke.texi: Likewise.
3308         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3309         * dwarf2out.c (gen_compile_unit_die): Likewise.
3310
3311 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
3312
3313         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3314
3315 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
3316
3317         PR target/12329
3318         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3319         attribute is used for nested functions.
3320
3321 2008-04-05  Jan Hubicka  <jh@suse.cz>
3322
3323         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3324
3325         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3326         letter argument.
3327         (dump_files): Update.
3328         (enable_rtl_dump_file): Do not accept letter argument.
3329         * tree-pass.h (dump_file_info): Remove letter argument.
3330         * toplev.c (decode_d_option): Update -da handling.
3331         * toplev.h (enable_rtl_dump_file): Update prototype.
3332         * passes.c (register_one_dump_file): Do not accept IPA argument; work
3333         it out based on pass type.
3334         (register_dump_files_1): Likewise.
3335         (init_optimization_passes): Update register_one_dump_file calls.
3336         (execute_one_pass): Sanity check that IPA passes are called at IPA
3337         level and RTL passes at RTL level.
3338         (execute_pass_list): IPA pass can not be after or subpass of
3339         GIMPLE/RTL pass.
3340         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3341         disallov RTL subpasses of IPA subpasses.
3342
3343 2008-04-05  Ben Elliston  <bje@au.ibm.com>
3344
3345         * tree-cfg.c (need_fake_edge_p): Return false for calls to
3346         builtins that return exactly once and do not throw. Cache call to
3347         call_expr_flags.
3348
3349 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3350
3351         PR rtl-optimization/34916
3352         PR middle-end/35519
3353         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3354         between instruction pairs.
3355
3356 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
3357
3358         * doc/invoke.texi: Document -mbitops for SH.
3359         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3360         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3361         * config/sh/sh.c (print_operand): Add %t operand code.
3362         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3363         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3364         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3365         (extendqihi2): Likewise.
3366         (movqi_i): Likewise.
3367         (insv): Use bset, bclr and bst instructions for SH2A if possible.
3368         (extv): Use bld instruction for SH2A if possible.
3369         (extzv): Likewise.
3370         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3371         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3372         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3373         (bset.b, bclr.b): Define peepholes.
3374         * config/sh/sh.opt (mbitops): New option.
3375
3376 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
3377
3378         PR target/35620
3379         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3380         and view convert expression.
3381
3382 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR target/35364
3385         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3386
3387 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
3388
3389         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3390
3391         * config/i386/cpuid.h (bit_AES): New.
3392         (bit_PCLMUL): Likewise.
3393
3394         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3395         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
3396         SSE2 if AES or PCLMUL is enabled.
3397         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3398         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3399         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3400         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3401         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3402         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3403         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3404         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3405         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3406         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3407         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3408         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3409         __builtin_ia32_aeskeygenassist128 and
3410         __builtin_ia32_pclmulqdq128.
3411         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3412         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3413         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
3414
3415         * config/i386/i386.h (TARGET_AES): New.
3416         (TARGET_PCLMUL): Likewise.
3417         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3418
3419         * config/i386/i386.md (UNSPEC_AESENC): New.
3420         (UNSPEC_AESENCLAST): Likewise.
3421         (UNSPEC_AESDEC): Likewise.
3422         (UNSPEC_AESDECLAST): Likewise.
3423         (UNSPEC_AESIMC): Likewise.
3424         (UNSPEC_AESKEYGENASSIST): Likewise.
3425         (UNSPEC_PCLMUL): Likewise.
3426
3427         * config/i386/i386.opt (maes): New.
3428         (mpclmul): Likewise.
3429
3430         * config/i386/sse.md (aesenc): New pattern.
3431         (aesenclast): Likewise.
3432         (aesdec): Likewise.
3433         (aesdeclast): Likewise.
3434         (aesimc): Likewise.
3435         (aeskeygenassist): Likewise.
3436         (pclmulqdq): Likewise.
3437
3438         * config/i386/wmmintrin.h: New.
3439
3440         * doc/extend.texi: Document AES and PCLMUL built-in function.
3441
3442         * doc/invoke.texi: Document -maes and -mpclmul.
3443
3444 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
3445
3446         * function.c (free_after_parsing): Replace with
3447         cxx_push_function_context from C++ front-end.
3448         (allocate_struct_function): Don't call langhook.
3449         * langhooks.h (struct lang_hooks_for_functions): Delete.
3450         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3451         member "function".
3452         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3453         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3454         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3455         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3456         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3457         remove LANG_HOOKS_FUNCTION_INITIALIZER.
3458         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3459
3460         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3461         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3462         
3463 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3464
3465         PR c/35440
3466         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3467         for all types.
3468
3469 2008-04-04  Richard Guenther  <rguenther@suse.de>
3470
3471         PR middle-end/35823
3472         * fold-const.c (optimize_minmax_comparison): Use the correct
3473         type for the constant in the simplified comparison.
3474
3475 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
3476
3477         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3478         Pass L2 size as "--param l2-cache-size" to the compiler.
3479         (decode_l2_cache): New function to decode L2 cache parameters using
3480         0x8000006 extended cpuid function.
3481         (detect_caches_amd): Determine parameters of L2 cache using
3482         decode_l2_caches function.
3483         (decode_caches_intel): Decode L2 cache parameters.
3484         (detect_caches_intel): Determine L2 cache parameters using
3485         decode_caches_intel and decode_l2_caches functions.
3486
3487 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
3488
3489         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3490         secondary input reload for subword loads from the constant pool.
3491
3492 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
3493
3494         PR target/35713
3495         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3496           constants of the appropriate size for runtime calculations.
3497
3498         PR c/35712
3499         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3500           decimal-float literal constant zero.
3501
3502 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
3503
3504         PR c/35738
3505         * c-parser.c (c_parser_omp_atomic): Call
3506         default_function_array_conversion on the RHS.
3507
3508         PR middle-end/35818
3509         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3510         call is_variable_sized if decl has incomplete type.
3511
3512 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
3513
3514         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3515
3516 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
3517
3518         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3519         iterators.
3520         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
3521         (sgt<u>): Merge sgt and sgtu into new expander.
3522         (sgt, sgtu): Remove expanders.
3523         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
3524         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3525         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3526         *sgtu_<mode>_mips16 into new pattern.
3527         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3528         (sge<u>): Merge sge and sgeu into new expander.
3529         (sge, sgeu): Remove expanders.
3530         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3531         new pattern.
3532         (*sge_<mode>, second *sge_<mode>): Remove patterns.
3533         (slt<u>): Merge slt and sltu into new expander.
3534         (slt, sltu): Remove expanders.
3535         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
3536         (*slt_<mode>, *sltu_<mode>): Remove patterns.
3537         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3538         *sltu_<mode>_mips16 into new pattern.
3539         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3540         (sle<u>): Merge sle and sleu into new expander.
3541         (sle, sleu): Remove expanders.
3542         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
3543         (*sle_<mode>, *sleu_<mode>): Remove patterns.
3544         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3545         *sleu_<mode>_mips16 into new pattern.
3546         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3547
3548 2008-04-03  Jan Hubicka  <jh@suse.cz>
3549
3550         PR tree-optimization/35795
3551         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3552         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3553         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3554         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3555         * score/score3.c (score3_output_mi_thunk): Likewise.
3556         * score/score7.c (score7_output_mi_thunk): Likewise.
3557         * mips/mips.c (mips_output_mi_thunk): Likewise.
3558
3559 2008-04-03  Richard Guenther  <rguenther@suse.de>
3560
3561         * tree-vrp.c (extract_range_from_unary_expr): Handle all
3562         conversions.  Simplify code.
3563
3564 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3565
3566         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3567
3568 2008-04-03  Tom Tromey  <tromey@redhat.com>
3569             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3570
3571         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3572         * config/bfin/t-bfin-linux (generated_files): Add
3573         linux-sysroot-suffix.h.
3574         * doc/install.texi (Prerequisites): Require make 3.80.
3575         * doc/sourcebuild.texi (Front End Directory): Document new
3576         variable.
3577         * Makefile.in (generated_files): New variable.
3578         (ALL_HOST_OBJS): New variable.
3579         ($(ALL_HOST_OBJS)): New target.
3580
3581 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3582
3583         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3584         (remap_block): Call id->transform_lang_insert_block instead
3585         of langhook.
3586         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3587         Set id.transform_lang_insert_block to NULL.
3588         (clone_body): Move to cp/optimize.c
3589         * tree-inline.h (struct copy_body_data): Change
3590         transform_lang_insert_block to function pointer.
3591         (copy_generic_body, copy_decl_no_change): Export.
3592         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3593         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3594         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3595
3596         * c-tree.h (insert_block): Kill.
3597         * c-decl.c (insert_block): Kill.
3598
3599 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3600
3601         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3602         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3603         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3604         argument.
3605         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3606         argument, call {push,pop}_function_context from here.
3607         * c-parser.c: Use c_{push,pop}_function_context.
3608
3609         * function.c (push_function_context_to): Move meat ...
3610         (push_function_context): ... here.  Simplify.
3611         * function.c (pop_function_context_from): Move meat ...
3612         (pop_function_context): ... here.  Simplify.
3613         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3614         leave_nested).
3615         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3616         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3617         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3618         * tree.h (push_function_context_to, pop_function_context_from): Remove.
3619
3620 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3621
3622         * expmed.c (extract_force_align_mem_bit_field): Remove.
3623
3624 2008-04-03  Richard Guenther  <rguenther@suse.de>
3625
3626         PR middle-end/35800
3627         * expr.h (try_casesi): Adjust prototype.
3628         * expr.c (try_casesi): Take fallback label as extra parameter.
3629         Use that for gen_casesi if default_label is NULL.
3630         * stmt.c (expand_case): Pass fallback label to try_casesi,
3631         make sure to fill gaps with a fallback label if default_label
3632         is not present.
3633
3634 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
3635
3636         PR target/35801
3637         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
3638
3639 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3640
3641         * expmed.c (extract_split_bit_field): Remove if (0) code.
3642         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
3643         (do_ds_constraint): Likewise.
3644
3645 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
3646
3647         * doc/cppopts.texi (-dU): Document.
3648         * c-common.h (flag_dump_macros): Update comment.
3649         * c-opts.c (handle_OPT_d): Handle -dU.
3650         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
3651         dump_queued_macros, cb_used_define, cb_used_undef): New.
3652         (init_pp_output): Handle -dU.
3653         (cb_line_change): Call dump_queued_macros.
3654         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
3655
3656 2008-04-02  Anatoly Sokolov <aesok@post.ru>
3657
3658         * config/avr/predicates.md (io_address_operand): New predicate. 
3659         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
3660         * config/avr/avr.c (avr_io_address_p): Remove function.
3661         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
3662         'avr_io_address_p' function.
3663         (out_movhi_r_mr): (Ditto.).
3664         (out_movqi_mr_r): (Ditto.).
3665         (out_movhi_mr_r): (Ditto.).
3666         (avr_address_cost): (Ditto.).
3667
3668 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
3669
3670         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
3671         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
3672         in 32bit mode when XMM registers are available to avoid store
3673         forwarding stalls.
3674         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
3675         corresponding post-reload splitters.
3676
3677 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3678
3679         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
3680         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
3681         __builtin_ia32_roundss.
3682         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
3683         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
3684         __builtin_ia32_roundss.
3685         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
3686         IX86_BUILTIN_SHUFPD here.
3687
3688 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3689
3690         * config/i386/i386.md (plogic): New.
3691         (plogicprefix): Likewise.
3692
3693         * config/i386/mmx.md (mmx_<code><mode>3): New.
3694         (mmx_and<mode>3): Removed.
3695         (mmx_ior<mode>3): Likewise.
3696         (mmx_xor<mode>3): Likewise.
3697
3698         * config/i386/sse.md (<code><mode>3): New.
3699         (*<code><mode>3): Likewise.
3700         (*<code><mode>3): Likewise.
3701         (<code><mode>3): Likewise.
3702         (*sse_<code><mode>3): Likewise.
3703         (*sse2_<code><mode>3): Likewise.
3704         (<code>tf3): Likewise.
3705         (*<code>tf3): Likewise.
3706         (and<mode>3): Likewise.
3707         (*and<mode>3): Likewise.
3708         (ior<mode>3): Removed.
3709         (*ior<mode>3): Likewise.
3710         (xor<mode>3): Likewise.
3711         (*xor<mode>3): Likewise.
3712         (*and<mode>3): Likewise.
3713         (*ior<mode>3): Likewise.
3714         (*xor<mode>3): Likewise.
3715         (and<mode>3): Likewise.
3716         (*sse_and<mode>3): Likewise.
3717         (*sse2_and<mode>3): Likewise.
3718         (andtf3): Likewise.
3719         (*andtf3): Likewise.
3720         (ior<mode>3): Likewise.
3721         (*sse_ior<mode>3): Likewise.
3722         (*sse2_ior<mode>3): Likewise.
3723         (iortf3): Likewise.
3724         (*iortf3): Likewise.
3725         (xor<mode>3): Likewise.
3726         (*sse_xor<mode>3): Likewise.
3727         (*sse2_xor<mode>3): Likewise.
3728         (xortf3): Likewise.
3729         (*xortf3): Likewise.
3730
3731 2008-04-02  Richard Guenther  <rguenther@suse.de>
3732
3733         PR tree-optimization/14495
3734         PR tree-optimization/34793
3735         * tree-vrp.c (struct switch_update): New structure.
3736         (to_remove_edges, to_update_switch_stmts): New VECs.
3737         (simplify_switch_using_ranges): New function.  Remove not taken
3738         case labels and edges.
3739         (simplify_stmt_using_ranges): Call it.
3740         (identify_jump_threads): Mark edges we have queued for removal
3741         so we don't thread them.
3742         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
3743         case label vector.
3744         * tree-cfg.c (group_case_labels): Deal with missing default label.
3745         (tree_verify_flow_info): Allow missing default label.
3746         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
3747         (emit_case_nodes): Likewise.
3748         (expand_case): Do not rely on the default label to be present.
3749         * expr.c (try_casesi): Deal with NULL default_label.
3750         (do_tablejump): Likewise.
3751
3752 2008-04-02  Richard Guenther  <rguenther@suse.de>
3753
3754         PR tree-optimization/14495
3755         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
3756         SWITCH_EXPR here ...
3757         (vrp_visit_switch_stmt): ... but here (new function).
3758         (find_case_label_index): New helper function.
3759         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
3760
3761 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3762
3763         * fwprop.c: Fix ISO-C99ism.
3764
3765 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3766
3767         PR bootstrap/35752
3768         * Makefile.in (objdir): Set it here.
3769         * configure.ac: Not here.  Find dynamic linker characteristics.
3770         * exec-tool.in: Use them.
3771         * aclocal.m4: Regenerate.
3772         * configure: Regenerate.
3773
3774 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3775
3776         * expr.c (expand_var): Delete it.
3777         * expr.h (expand_var): Delete prototype.
3778         * function.c (expand_function_start): Use expand_decl instead.
3779         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
3780         langhook.
3781
3782 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
3783
3784         PR rtl-optimization/35542
3785         * fwprop.c (forward_propagate_and_simplify): Replace
3786         loc_reg_mentioned_in_p with reg_mentioned_p.
3787
3788 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3789
3790         PR rtl-optimization/35281
3791         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
3792         (propagate_rtx_1): Handle PR_HANDLE_MEM.
3793         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
3794         (varying_mem_p): Move above propagate_rtx.
3795         (all_uses_available_at): Do not check MEMs.
3796
3797 2008-04-02  Rafael Espindola  <espindola@google.com>
3798
3799         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
3800         (register_edge_assert_for_2): Split the cond argument.
3801         (register_edge_assert_for_1): Adjust for the change in
3802         register_edge_assert_for_2.
3803         (register_edge_assert_for): Split the cond argument.
3804         (find_switch_asserts): Adjust for the change in
3805         register_edge_assert_for.
3806
3807 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
3808
3809         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
3810         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
3811         offsets for 64-bit mingw.
3812         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
3813         abi for x86_64-pc-mingw.
3814
3815 2008-04-02  Richard Guenther  <rguenther@suse.de>
3816
3817         * tree-vrp.c (extract_range_from_assert): Make sure to not
3818         produce range min/max with TREE_OVERFOW set.
3819         If merging a anti-range and a range keep the anti-range if
3820         the range covers all values of the type.
3821         (register_edge_assert_for_2): Only allow sign-changing
3822         conversions in detecting canonical range checks.  Also
3823         register an assert for the unsigned name if useful.
3824
3825         PR tree-optimization/35787
3826         * tree-vrp.c (vrp_val_max): New function.
3827         (vrp_val_min): Likewise.
3828         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
3829         (vrp_val_is_min): Likewise.
3830         (supports_overflow_infinity): Use vrp_val_{min,max}.
3831         (negative_overflow_infinity): Likewise.
3832         (positive_overflow_infinity): Likewise.
3833         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
3834         (is_positive_overflow_infinity): Likewise.
3835         (is_overflow_infinity): Likewise.
3836         (avoid_overflow_infinity): Use vrp_val_{min,max} and
3837         vrp_val_is_{min,max}.
3838         (set_and_canonicalize_value_range): Canonicalize anti-ranges
3839         to ranges if possible.  Avoid empty ranges.
3840
3841 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3842
3843         PR middle-end/35705
3844         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
3845         the expression is a function address.
3846
3847 2008-04-01  George Helffrich  <george@gcc.gnu.org>
3848
3849         PR fortran/35154, fortran/23057
3850         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
3851         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
3852         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
3853         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
3854         in common.
3855         (dbxout_syms): Check for COMMON-based symbol and wrap in
3856         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
3857         in bracket for efficiency.
3858
3859         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
3860         using DW_TAG_common_block + member offset.
3861         (add_pubname_string): New function.
3862         (dw_expand_expr): New function to find block name and offset for
3863         COMMON var.
3864         (common_check): New function to check whether symbol in Fortran COMMON.
3865         (gen_variable_die): If COMMON, use DW_TAG_common_block.
3866
3867 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
3868
3869         PR c/35436
3870         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
3871
3872 2008-04-02  Ben Elliston  <bje@au.ibm.com>
3873
3874         * config/v850/v850.md (casesi): Remove if (0) code.
3875         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3876         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
3877
3878 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
3879
3880         * config/i386/i386.md (rex64suffix): New mode attribute.
3881         (floathi<mode>2): Disable expander for SSE math.
3882         (*floathi<mode>2_1): New insn insn_and_split pattern.
3883         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
3884         corresponding post-reload splitters.
3885         (*floathi<mode>2_i387): New macroized insn pattern.
3886         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
3887         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
3888         insn_and_split pattern.
3889         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
3890         New macroized instruction patterns and corresponding post-reload
3891         splitters.
3892         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
3893         and corresponding post-reload splitters.
3894         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
3895         New macroized instruction patterns.
3896         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
3897         macroized instruction patterns and corresponding post-reload splitters.
3898         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
3899         corresponding post-reload splitters.
3900         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
3901         New macroized instruction patterns.
3902         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
3903         corresponding post-reload splitters.
3904         (*floatsi<mode>2_i387): New macroized instruction patterns.
3905
3906 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
3907
3908         * config/i386/i386.md (smaxmin): New.
3909         (umaxmin): Likewise.
3910         (maxminiprefix): Likewise.
3911         (maxminfprefix): Likewise.
3912         (<code><mode>3): Likewise.
3913         (smin<mode>3): Removed.
3914         (smax<mode>3): Likewise.
3915
3916         * config/i386/mmx.md (mmx_<code>v2sf3): New.
3917         (mmx_<code>v4hi3): Likewise.
3918         (mmx_<code>v8qi3): Likewise.
3919         (mmx_smaxv2sf3): Removed.
3920         (mmx_sminv2sf3): Likewise.
3921         (mmx_umaxv8qi3): Likewise.
3922         (mmx_smaxv4hi3): Likewise.
3923         (mmx_uminv8qi3): Likewise.
3924         (mmx_sminv4hi3): Likewise.
3925
3926         * config/i386/sse.md (<addsub><mode>3): New.
3927         (*<addsub><mode>3): Likewise.
3928         (<sse>_vm<addsub><mode>3): Likewise.
3929         (<maxmin><mode>3): Likewise.
3930         (*<maxmin><mode>3_finite): Likewise.
3931         (*<maxmin><mode>3): Likewise.
3932         (<sse>_vm<maxmin><mode>3): Likewise.
3933         (sse3_h<addsub>v4sf3): Likewise.
3934         (sse3_h<addsub>v2df3): Likewise.
3935         (<maxmin>v16qi3): Likewise.
3936         (*<maxmin>v16qi3): Likewise.
3937         (<maxmin>v8hi3): Likewise.
3938         (*<maxmin>v8hi3): Likewise.
3939         (*sse4_1_<maxmin><mode>3): Likewise.
3940         (*sse4_1_<maxmin><mode>3): Likewise.
3941         (add<mode>3): Removed.
3942         (*add<mode>3): Likewise.
3943         (<sse>_vmadd<mode>3): Likewise.
3944         (sub<mode>3): Likewise.
3945         (*sub<mode>3): Likewise.
3946         (<sse>_vmsub<mode>3): Likewise.
3947         (smin<mode>3): Likewise.
3948         (*smin<mode>3_finite): Likewise.
3949         (*smin<mode>3): Likewise.
3950         (<sse>_vmsmin<mode>3): Likewise.
3951         (smax<mode>3): Likewise.
3952         (*smax<mode>3_finite): Likewise.
3953         (*smax<mode>3): Likewise.
3954         (<sse>_vmsmax<mode>3): Likewise.
3955         (sse3_haddv4sf3): Likewise.
3956         (sse3_haddv2df3): Likewise.
3957         (sse3_hsubv4sf3): Likewise.
3958         (sse3_hsubv2df3): Likewise.
3959         (umaxv16qi3): Likewise.
3960         (*umaxv16qi3): Likewise.
3961         (smaxv8hi3): Likewise.
3962         (*smaxv8hi3): Likewise.
3963         (*sse4_1_smax<mode>3): Likewise.
3964         (*sse4_1_umax<mode>3): Likewise.
3965         (uminv16qi3): Likewise.
3966         (*uminv16qi3): Likewise.
3967         (sminv8hi3): Likewise.
3968         (*sminv8hi3): Likewise.
3969         (*sse4_1_smin<mode>3): Likewise.
3970         (*sse4_1_umin<mode>3): Likewise.
3971
3972 2008-04-01  Rafael Espindola  <espindola@google.com>
3973
3974         * tree-cfg.c (verify_expr): remove in_phi.
3975         (verify_stmt): Don't call walk_tree with verify_expr. Use
3976         is_gimple_min_invariant instead of is_gimple_val.
3977
3978 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
3979
3980         * doc/include/gpl_v3.texi: Update for manpage generation.
3981         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
3982         gpl.texi.
3983         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
3984         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
3985         gpl_v3.texi instead of gpl.texi.
3986         (gpl.pod): New.
3987
3988 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
3989
3990         PR pch/13675
3991         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
3992
3993 2008-04-01  Rafael Espindola  <espindola@google.com>
3994
3995         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
3996         (extract_code_and_val_from_cond): Use
3997         extract_code_and_val_from_cond_with_ops.
3998
3999 2008-04-01  Jan Hubicka  <jh@suse.cz>
4000
4001         * function.c (free_after_compilation): Free epilogue_delay_list.
4002         (prepare_function_start): Assert that previous compilation was freed.
4003
4004 2008-04-01  Jan Hubicka  <jh@suse.cz>
4005             Jim Wilson  <wilson@tuliptree.org>
4006             Andreas Tobler <andreast@gcc.gnu.org>
4007
4008         PR middle-end/35781
4009         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
4010         rtl.emit instead cfun->emit.
4011         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
4012         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
4013
4014 2008-04-01  Ben Elliston  <bje@au.ibm.com>
4015
4016         * doc/c-tree.texi (Function Basics): Fix grammatical error.
4017
4018 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
4019
4020         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
4021         New options
4022         (fprofile-use): Add var flag_profile_use
4023         * coverage.c (coverage_begin_output): Do not open a gcno file for
4024         output only if -ftest-coverage is set.
4025         Do not add getpwd() to gcda file path.
4026         (build_gcov_info): Check the new flag
4027         flag_profile_datafile_relative_path.
4028         (coverage_init): Use profile_data_prefix.
4029         Read profile counter only if flag_profile_use is set.
4030         * opts.c (common_handle_option): New option fprofile-use=,
4031         fprofile-dir=, fprofile-generate=.
4032         * toplev.c (profile_data_prefix): New variable definition.
4033         * toplev.h (profile_data_prefix): New declaration.
4034         * doc/invoke.tex (Option Summary, Optimization Options):
4035         Add new options.
4036
4037 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
4038
4039         * varasm.c (output_constant_pool_1): In LABEL_REF check,
4040         use tmp consistently.
4041
4042         PR target/35695
4043         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
4044         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4045         UNSPEC_FR_RECIP_APPROX_RES.
4046         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
4047
4048 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
4049
4050         PR c/35750
4051         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
4052
4053 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4054
4055         PR middle-end/30186
4056         * fold-const.c (fold_indirect_ref_1): Support accessing non first
4057         element of the vector via a pointer.
4058
4059 2008-03-31  Ian Lance Taylor  <iant@google.com>
4060
4061         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
4062
4063 2008-03-31  Jan Hubicka  <jh@suse.cz>
4064
4065         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4066         get_arg_pointer_save_area.
4067         * expr.c (init_expr): Just clear out rtl.expr.
4068         * function.c (free_after_compilation): Clear out whole RTL structure.
4069         (get_func_frame_size): Merge into ...
4070         (get_frame_size): ... this one.
4071         (assign_stack_local_1): Merge into ...
4072         (assign_stack_local): ... this one.
4073         (expand_function_end): Update call of get_arg_pointer_save_area.
4074         (get_art_pointer_save_area): Remove cfun argument.
4075         * function.h (emit_status): regno_pointer_align does not need length
4076         attribute. Move x_regno_reg_rtx to ...
4077         (regno_reg_rtx): ... new global array.
4078         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
4079         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
4080         apply_args_value, forced_labels, stack_pointer_delta):
4081         Update accestors.
4082         (struct varasm_status): Move here from varasm.c
4083         (struct rtl_data): New. Move here some fields from struct function.
4084         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4085         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4086         used_temp_slots avail_temp_slots, temp_slot_level,
4087         nonlocal_goto_handler_labels): Update accesstors.
4088         (rtl): New global variable.
4089         (struct function): Move some fileds to rtl_data.
4090         (get_arg_pointer_save_area): Update prototype.
4091         * emit-rtl.c (rtl): Declare.
4092         (regno_reg_rtx): Declare.
4093         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4094         Update.
4095         (gen_reg_rtx): Update.
4096         (init_virtual_regs): Do not tate emit_status argument.
4097         (init_emit): Do not allocate emit.
4098         * varasm.c (varasm_statuc): Move to function.h.
4099         (n_deferred_constatns): Update accestor.
4100         (init_varasm_status): Do not allocate varasm_status.
4101         (force_const_mem, get_pool_size, output_constant_pool): Update.
4102         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4103         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4104
4105 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
4106
4107         PR rtl-optimization/35729
4108         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4109         references.
4110
4111 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
4112
4113         PR target/32000
4114         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4115         load/store if memory is unaligned.
4116         (*movti_rex64): Likewise.
4117
4118         * config/i386/predicates.md (misaligned_operand): New.
4119
4120 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
4121
4122         PR tree-opt/35431
4123         * tree-ssa-phiopt.c (conditional_replacement): Return early for
4124         complex types.
4125
4126 2008-03-31  Jan Beulich  <jbeulich@novell.com>
4127
4128         * config/ia64/constraints.md: Add 'j' constraint.
4129         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4130         (movdi_internal): Likewise.
4131
4132 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
4133
4134         PR c/35748
4135         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4136
4137 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4138
4139         PR target/35757
4140         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4141         proper error message for the third argument on blendpd and
4142         blendps.
4143
4144         * config/i386/sse.md (blendbits): New.
4145         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4146
4147 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
4148
4149         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4150
4151 2008-03-30  Richard Guenther  <rguenther@suse.de>
4152
4153         PR middle-end/31023
4154         * fold-const.c (fold_sign_changed_comparison): Do leave
4155         conversions to base-types alone.
4156
4157 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4158
4159         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4160         the link register if one altivec register is be saved.
4161
4162 2008-03-30  Ben Elliston  <bje@au.ibm.com>
4163
4164         * final.c (final_scan_insn): Remove if (0) code.
4165
4166 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
4167
4168         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4169
4170 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
4171
4172         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4173         of V4SFmode to ix86_binary_operator_ok.
4174
4175 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
4176
4177         * config/i386/i386.c (override_options): Initialize
4178         ix86_veclib_handler to ix86_veclibabi_svml when
4179         -mveclibabi=svml is used.
4180         (ix86_veclibabi_svml): New function for SVML ABI style
4181         vectorization support.
4182         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4183
4184 2008-03-28  Rafael Espindola  <espindola@google.com>
4185
4186         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4187         (tree_binary_nonnegative_warnv_p): Make it public.
4188         (tree_single_nonnegative_warnv_p): Make it public.
4189         (tree_invalid_nonnegative_warnv_p): Make it public.
4190         (tree_unary_nonzero_warnv_p): Make it public.
4191         (tree_binary_nonzero_warnv_p): Make it public
4192         (tree_single_nonzero_warnv_p): Make it public.
4193         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4194         (extract_range_from_binary_expr): Split the expr argument.
4195         (extract_range_from_unary_expr): Split the expr argument.
4196         (extract_range_from_comparison): Split the expr argument.
4197         (extract_range_from_expr): Use the new aux functions.
4198         (vrp_evaluate_conditional_warnv): Use
4199         vrp_evaluate_conditional_warnv_with_ops.
4200         * tree.h (tree_unary_nonzero_warnv_p): Declare.
4201         (tree_binary_nonzero_warnv_p): Declare.
4202         (tree_single_nonzero_warnv_p): Declare.
4203         (tree_expr_nonzero_warnv_p): Declare.
4204         (tree_unary_nonnegative_warnv_p): Declare.
4205         (tree_binary_nonnegative_warnv_p): Declare.
4206         (tree_single_nonnegative_warnv_p): Declare.
4207         (tree_invalid_nonnegative_warnv_p): Declare.
4208
4209 2008-03-28  Richard Guenther  <rguenther@suse.de>
4210
4211         PR tree-optimization/30317
4212         PR tree-optimization/30911
4213         PR tree-optimization/34793
4214         * tree-vrp.c (set_and_canonicalize_value_range): New function.
4215         (struct assert_locus_d): New member EXPR.
4216         (register_new_assert_for): Add EXPR parameter to support
4217         ASSERT_EXPR <name, expr OP limit>.
4218         (register_edge_assert_for_1): Adjust callers.
4219         (find_assert_locations): Likewise.
4220         (process_assert_insertions_for): Build condition from expression.
4221         (extract_range_from_assert): Handle ASSERT_EXPRs
4222         of the form ASSERT_EXPR <name, expr OP limit>.
4223         (register_edge_assert_for_2): New helper registering
4224         asserts for comparisons.  Recognize range tests of the form
4225         (unsigned)i - CST1 OP CST2.
4226         (register_edge_assert_for_1): Use it.
4227         (register_edge_assert_for): Likewise.
4228         (needs_overflow_infinity): Integer sub-types
4229         do not need overflow infinities.
4230         (vrp_val_is_max): The extreme values of integer sub-types
4231         are those of the base type.
4232         (vrp_val_is_min): Likewise.
4233         * tree.def (ASSERT_EXPR): Document extra allowed conditional
4234         expressions.
4235
4236 2008-03-28  Nick Clifton  <nickc@redhat.com>
4237
4238         PR target/31110
4239         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
4240         Return GENERAL_REGS for stack adjustment reloads.
4241
4242 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4243
4244         PR target/31334
4245         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4246         const_vector when all the vectors are constant.
4247
4248 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
4249
4250         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4251         comparisons.
4252         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4253         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4254         (scc_sf): New.
4255         (s<code>_sf): Use new scc_sf attribute for opcode names.
4256
4257 2008-03-27  Tom Tromey  <tromey@redhat.com>
4258
4259         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4260         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4261         config/spu/t-spu-elf, config/i386/t-interix,
4262         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4263         config/i386/x-darwin, config/i386/x-mingw32,
4264         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4265         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4266         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4267         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4268         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4269         config/rs6000/x-darwin, config/rs6000/t-rs6000,
4270         config/score/t-score-elf, config/arm/t-strongarm-pe,
4271         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4272         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4273         Revert automatic dependency patch.
4274
4275 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4276
4277         PR target/35657
4278         * config/i386/i386.c (ix86_function_arg_boundary): Align
4279         decimal floating point to its natural boundary.
4280
4281 2008-03-27  Richard Guenther  <rguenther@suse.de>
4282
4283         PR middle-end/35716
4284         * fold-const.c (fold_comparison): Restrict distinct decl
4285         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
4286         solely rely on operand_equal_p.
4287
4288 2008-03-27  Richard Guenther  <rguenther@suse.de>
4289
4290         PR c/32511
4291         * c-common.c (handle_weak_attribute): Reject combination of
4292         weak and inline.
4293
4294 2008-03-27  Richard Guenther  <rguenther@suse.de>
4295
4296         PR tree-optimization/32810
4297         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4298         conversions from DECL_INITIAL.
4299         (fold_const_aggregate_ref): Likewise from constructor elements.
4300
4301 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
4302
4303         * tree-affine.h (aff_combination_expand): Declare.
4304         (get_inner_reference_aff): Likewise.
4305         * tree-affine.c (aff_combination_expand): Split out from
4306         tree_to_aff_combination_expand.
4307         (get_inner_reference_aff): New function.
4308         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
4309         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4310         (struct lim_aux_data): sm_done field removed.
4311         (mem_ref_loc_p, mem_ref_locs_p): New types.
4312         (struct mem_ref): Added id, stored, accesses_in_loop,
4313         indep_loop, dep_loop, indep_ref, dep_ref fields.
4314         Removed is_stored, locs and next fields.
4315         (memory_accesses): New variable.
4316         (movement_possibility): Do not allow moving statements
4317         that store to memory.
4318         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4319         New functions.
4320         (determine_max_movement): For statements with memory references,
4321         find the outermost loop in that the reference is independent.
4322         (move_computations_stmt): Mark the virtual operands for renaming.
4323         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4324         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4325         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4326         add_vop_ref_mapping, create_vop_ref_mapping_loop,
4327         create_vop_ref_mapping, analyze_memory_references,
4328         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4329         get_all_locs_in_loop, ref_always_accessed_p,
4330         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4331         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4332         store_motion_loop, store_motion): New functions.
4333         (struct vop_to_refs_elt): New type.
4334         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4335         memref_hash, memref_eq, hoist_memory_references): Rewritten.
4336         (schedule_sm): Replaced by...
4337         (execute_sm): ... this.
4338         (determine_lsm_ref, hoist_memory_references,
4339         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4340         find_more_ref_vops, free_mem_ref, free_mem_refs,
4341         determine_lsm_loop, determine_lsm): Removed.
4342         (tree_ssa_lim_finalize): Free data structures used by store motion.
4343         (tree_ssa_lim): Call analyze_memory_references.  Use
4344         store_motion instead of determine_lsm.
4345
4346 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4347
4348         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4349         rename tmake_file to m68hc11/t-m68hc11.
4350         (mcore): Set inhibit_libc to true.
4351         * config.host (alpha*-dec-*vms*): Set extra_programs.
4352         (interix3*): Don't use host_xmake_file.
4353         * configure.ac: Let config.gcc override inhibit_libc.
4354         * configure: Regenerate.
4355
4356         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4357         * config/t-openbsd-thread: Remove commented out lines.
4358         
4359         * config/x-interix: Remove.
4360
4361         * config/m68hc11/t-m68hc11-gas: Rename to...
4362         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
4363
4364         * config/mcore/t-mcore: Remove T_CFLAGS.
4365         * config/mcore/t-mcore-pe: Likewise.
4366
4367 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4368
4369         * configure.ac: Replace custom __GNU_SOURCE test with
4370         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
4371         * aclocal.m4: Regenerate.
4372         * configure: Regenerate.
4373         * config.in: Regenerate.
4374
4375 2008-03-27  Richard Guenther  <rguenther@suse.de>
4376
4377         * fold-const.c (target.h): Include.
4378         (fold_comparison): Fold comparison of addresses of decls
4379         that bind locally or of constants.  Consolidate address folding code.
4380         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4381         results from fold_binary_to_constant.
4382         (compare_values_warnv): Likewise.
4383
4384 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
4385
4386         PR middle-end/35429
4387         * fold-const.c (fold_truthop): Check for integeral types when folding
4388         a == 0 && b == 0 and a != 0 || b != 0 .
4389
4390 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4391
4392         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4393
4394 2008-03-26  Andreas Schwab  <schwab@suse.de>
4395
4396         * doc/invoke.texi: Fix use of @item vs. @itemx.
4397
4398 2008-03-26  Tom Tromey  <tromey@redhat.com>
4399
4400         * Makefile.in (build/gensupport.o, build/print-rtl.o,
4401         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4402         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4403         build/gencodes.o, build/genconditions.o, build/genconfig.o,
4404         build/genconstants.o, build/genemit.o, build/genextract.o,
4405         build/genflags.o, build/genmddeps.o, build/genopinit.o,
4406         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4407         options.h.
4408
4409 2008-03-26  Richard Guenther  <rguenther@suse.de>
4410
4411         Revert
4412         2008-03-26  Richard Guenther  <rguenther@suse.de>
4413
4414         * fold-const.c (target.h): Include.
4415         (fold_comparison): Fold comparison of addresses of two decls
4416         that bind locally.  Consolidate address folding code.
4417
4418 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4419
4420         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4421         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4422         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4423         dconstsqrt2, dconstthird, dconste and/or dconst10.
4424         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4425         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4426         dconstsqrt2, dconste): Delete.
4427         (init_emit_once): Likewise.  Simplify initializing dconstm1.
4428         Constify variable.
4429         * real.c (get_real_const): New.
4430         * real.h (dconst3, dconst10, dconstm2, dconstthird,
4431         dconstsqrt2, dconste): Delete.
4432         (real_value_const, get_real_const): New.
4433
4434 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
4435
4436         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4437
4438         * config/i386/i386.c (ix86_function_arg_boundary): Check
4439         BIGGEST_ALIGNMENT instead of 128.
4440         (setup_incoming_varargs_64): Likewise.
4441
4442 2008-03-26  Tom Tromey  <tromey@redhat.com>
4443
4444         * Makefile.in (DEPFILES): Add missing '/'.
4445
4446 2008-03-26  Richard Guenther  <rguenther@suse.de>
4447
4448         * fold-const.c (target.h): Include.
4449         (fold_comparison): Fold comparison of addresses of two decls
4450         that bind locally.  Consolidate address folding code.
4451
4452 2008-03-26  Nick Clifton  <nickc@redhat.com>
4453
4454         PR target/31232
4455         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4456         not allow INT+INT as a legitimate addressing mode.
4457
4458 2008-03-26  Richard Guenther  <rguenther@suse.de>
4459
4460         * tree-flow.h (widen_bitfield): Remove declaration.
4461         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4462         (widen_bitfield): Remove function.
4463         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4464         code.
4465
4466 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4467
4468         PR target/31558
4469         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4470         error_mark_node's.
4471
4472 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4473
4474         PR rtl-optimization/35232
4475         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4476         (forget_old_reloads_1, forget_marked_reloads): Don't clear
4477         reg_reloaded_call_part_clobbered here.
4478         (reload_regs_reach_end_p): New function.
4479         (reload_reg_rtx_for_input): New variable.
4480         (reload_reg_rtx_for_output): Likewise.
4481         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4482         when reassigning a pseudo register.  Load reloadreg from 
4483         reload_reg_rtx_for_input, moving the mode and register
4484         calculation to...
4485         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
4486         instead of the original when deciding whether an input reload
4487         would be a no-op or whether an output reload can be deleted.
4488         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4489         when setting up new_spill_reg_store.  Load it from
4490         reload_reg_rtx_for_output, moving the mode and register
4491         calculation to...
4492         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
4493         instead of the original when deciding whether an output reload
4494         would be a no-op.  Do the same when modifying insn notes.
4495         Use rtx_equal_p instead of == to compare the registers.
4496         (inherit_piecemeal_p): Take a mode and two register numbers
4497         as argument.
4498         (emit_reload_insns): Clear new_spill_reg_store for every hard
4499         register in the reload register.  Remove spill registers
4500         from reg_reloaded_valid before considering whether to record
4501         inheritance information for them.  Use reload_reg_rtx_for_output
4502         instead of reg_rtx when recording output reloads.  Use
4503         reload_reg_rtx_for_input instead of reg_rtx when recording
4504         input reloads.  Set or clear reg_reloaded_call_part_clobbered
4505         at the same time as setting reg_reloaded_valid.
4506         (delete_output_reload): Add a new_reload_reg parameter and use it
4507         instead of rld[j].reg_rtx.
4508         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4509         calls accordingly.
4510
4511 2008-03-25  Tom Tromey  <tromey@redhat.com>
4512
4513         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4514         (build/genattr.o): Likewise.
4515         (build/genattrtab.o): Likewise.
4516         (build/gencodes.o): Likewise.
4517         (build/genconfig.o): Likewise.
4518         (build/genconstants.o): Likewise.
4519         (build/genemit.o): Likewise.
4520         (build/genextract.o): Likewise.
4521         (build/genflags.o): Likewise.
4522
4523 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
4524         
4525         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4526         instead of size_int for integer types.
4527         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
4528         to match type of MINUS_EXPR.
4529         
4530 2008-03-25  Tom Tromey  <tromey@redhat.com>
4531
4532         * configure: Rebuilt.
4533         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4534         Makefile.
4535
4536 2008-03-25  Tom Tromey  <tromey@redhat.com>
4537
4538         * config/x-solaris (host-solaris.o): Update.
4539         * config/x-linux (host-linux.o): Update.
4540         * config/x-hpux (host-hpux.o): Update.
4541         * config/x-darwin (host-darwin.o): Update.
4542         * config/v850/t-v850e (v850-c.o): Update.
4543         * config/v850/t-v850 (v850-c.o): Update.
4544         * config/t-vxworks (vxworks.o): Update.
4545         * config/t-sol2 (sol2-c.o, sol2.o): Update.
4546         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
4547         * config/spu/t-spu-elf (spu-c.o): Update.
4548         (spu.o): Remove.
4549         * config/sh/t-symbian (sh-c.o): Update.
4550         (symbian.o): Update.
4551         * config/sh/t-sh (sh-c.o): Update.
4552         * config/score/t-score-elf (score7.o, score3.o): Update.
4553         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4554         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4555         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4556         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4557         (rs6000.o): Remove.
4558         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4559         * config/m32c/t-m32c (m32c-pragma.o): Update.
4560         * config/ia64/t-ia64 (ia64-c.o): Update.
4561         * config/i386/x-mingw32 (host-mingw32.o): Update.
4562         * config/i386/x-i386 (driver-i386.o): Update.
4563         * config/i386/x-darwin (host-i386-darwin.o): Update.
4564         * config/i386/x-cygwin (host-cygwin.o): Update.
4565         * config/i386/t-nwld (nwld.o): Update.
4566         * config/i386/t-netware (netware.o): Update.
4567         * config/i386/t-interix (winnt.o): Update.
4568         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4569         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4570         msformat-c.o): Update.
4571         * config/bfin/t-bfin-linux (generated_files): Add
4572         linux-sysroot-suffix.h.
4573         * config/arm/t-wince-pe (pe.o): Update.
4574         * config/arm/t-strongarm-pe (pe.o): Update.
4575         * config/arm/t-pe (pe.o): Update.
4576         * config/arm/t-arm (arm-c.o): Update.
4577         * doc/install.texi (Prerequisites): Require make 3.80.
4578         * Makefile.in: Remove .o targets.
4579         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4580         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4581         (simple_generated_h, simple_generated_c): Move earlier.
4582         (generated_files): New variable.
4583         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4584         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4585         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4586         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4587         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4588         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4589         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4590         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4591         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4592         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4593         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4594         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4595         (.c.o): Remove.
4596         (COMPILE.base, COMPILE): New variables.
4597         (%.o): New pattern rule.
4598         (ALL_HOST_OBJS): New variable.
4599         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4600         (dummy-checksum.o, cc1-checksum.o): Remove.
4601         (DRIVER_SHLIB): New variable.
4602         (DRIVER_DEFINES): Use it.
4603         (gencondmd.c): Move out of build/.
4604         (s-conditions): Update.
4605         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4606         (ALL_BUILD_OBJS): Likewise.
4607         (build/%.o): Use BUILDCOMPILE.
4608         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4609         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4610         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4611         build/gencheck.o, build/gencodes.o, build/genconditions.o,
4612         build/genconfig.o, build/genconstants.o, build/genemit.o,
4613         build/genextract.o, build/genflags.o, build/genmddeps.o,
4614         build/genopinit.o, build/genoutput.o, build/genpeep.o,
4615         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4616         build/gen-protos.o, build/scan.o, build/fix-header.o,
4617         build/scan-decls.o): Simplify.
4618         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4619         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4620         prefix.o, toplev.o): Reduce to variable setting.
4621         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
4622         ($(out_object_file), gcc-options.o): New targets.
4623         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
4624         * configure: Rebuilt.
4625         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4626         * doc/sourcebuild.texi (Front End Directory): Document new variable.
4627
4628 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
4629
4630         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4631         complain when we hit an error, return ERROR_MARK_NODE.
4632
4633 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4634
4635         * config/sh/constraints.md (Pso, Psz): New constraints.
4636         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
4637         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
4638
4639 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4640
4641         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
4642         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
4643
4644 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4645
4646         * config/sh/sh.md (prefetch): Add condition for SH2A target.
4647         (prefetch_sh2a): New.   
4648
4649 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4650             Naveen.H.S  <naveen.hs@kpitcummins.com>
4651
4652         * config/sh/constraints.md (I28): New constraint.
4653         * config/sh/sh.c (broken_move): Add support for movi20s.
4654         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
4655
4656 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
4657             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4658             Naveen.H.S  <naveen.hs@kpitcummins.com>
4659
4660         * config/sh/sh.c (SH_ATTRIBUTES): Define.
4661         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
4662         (print_operand): Handle resbank in %@ operand code.
4663         (sh_encode_section_info): New.
4664         (push_regs): Add conditions for resbank.
4665         (sh_expand_epilogue): Likewise.
4666         (sh_insert_attributes): Likewise.
4667         (sh_attribute_table): Likewise.
4668         (sh_handle_resbank_handler_attribute): New.
4669         (sh2a_handle_function_vector_handler_attribute): New.
4670         (sh2a_is_function_vector_call): New.
4671         (sh2a_get_function_vector_number): New.
4672         (sh2a_function_vector_p): New.
4673         (sh_cfun_resbank_handler_p): New.
4674         * config/sh/sh.md (calli): Emit jsr/n if possible.
4675         (calli_tbr_rel): New.
4676         (calli_pcrel): Emit jsr/n if possible.
4677         (return_i): Emit rts/n if possible.
4678         (call_valuei_tbr_rel): New.
4679         (call_valuei_pcrel): Add condition for SH2A target.
4680         (call_value): Likewise.
4681         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
4682         (sh2a_get_function_vector_number): Likewise.
4683         (sh2a_is_function_vector_call): Likewise.
4684         * doc/extend.texi: Document TBR relative addressing of SH2A.
4685         (resbank): Add description for SH2A.
4686
4687 2008-03-24  Richard Guenther  <rguenther@suse.de>
4688
4689         PR c/22371
4690         * gimplify.c (gimplify_modify_expr): For frontend type-correct
4691         pointer assignments change conversions according to middle-end rules.
4692         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
4693         * configure.ac: Include type checking in yes.
4694         * configure: Regenerate.
4695
4696 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4697
4698         * diagnostic.c (diagnostic_count_diagnostic): Delete.
4699         (diagnostic_report_diagnostic): Update. Handle ICEs here.
4700         
4701 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
4702
4703         * gthr-vxworks.h (UNUSED): Define.
4704
4705 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
4706
4707         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
4708
4709 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
4710
4711         * doc/extend.texi (Function Attributes): Add missing comma in the
4712         example of the "alloc_size" attribute.
4713         
4714 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
4715
4716         Revert:
4717         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4718
4719         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4720         32bit host.
4721
4722         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4723
4724         PR target/35496
4725         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4726         of the underlying type of a MS bitfield layout to the natural
4727         alignment of the type.
4728
4729         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4730
4731         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4732         to their natural alignment to avoid store forwarding stalls.
4733
4734 2008-03-22  Richard Guenther  <rguenther@suse.de>
4735
4736         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
4737         For PHI nodes verify the address is invariant.
4738         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
4739         (get_symbol_constant_value): Use is_gimple_min_invariant.
4740         (maybe_fold_stmt_indirect): Likewise.
4741
4742 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4743
4744         PR rtl-optimization/33927
4745         * Makefile.in (dse.o): Depend on $(TM_P_H).
4746         * expr.h (extract_low_bits): Declare.
4747         * expmed.c (extract_low_bits): New function.
4748         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
4749         * dse.c: Include tm_p.h.
4750         (find_shift_sequence): Remove the read_reg argument and return the
4751         read value.  Emit the instructions instead of returning them.
4752         Iterate on new_mode rather than calculating it each time.
4753         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
4754         source to NEW_MODE and extract_low_bits to convert the shifted
4755         value to READ_MODE.
4756         (replace_read): Allow the load and store to have different mode
4757         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
4758         or extraction instructions before trying the replacement.  Update
4759         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
4760
4761 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4762
4763         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4764         to their natural alignment to avoid store forwarding stalls.
4765
4766 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4767
4768         PR target/27946
4769         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
4770         encouraging but not allowing gprs for input;
4771         change the input constraint to !f#r.
4772         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
4773         gprs for output;
4774         change the output constraint to !f#r.
4775
4776 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
4777
4778         PR target/13958
4779         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
4780         corresponding post-reload splitters.
4781         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
4782         when x87 FP math is selected.
4783         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
4784         New function prototype.
4785         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
4786         unreachable function to ease macroization of insn patterns.
4787
4788 2008-03-21  Martin Jambor  <mjambor@suse.cz>
4789
4790         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
4791         reference dumps if ddr is NULL or dependence is unknown.
4792
4793 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4794
4795         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
4796         unsigned extension into account.
4797         (ATOMIC_COMPARE_AND_SWAP): Likewise.
4798         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
4799         Do computations on a scratch register.
4800
4801 2008-03-21  Richard Guenther  <rguenther@suse.de>
4802
4803         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4804         Use is_gimple_min_invariant instead of TREE_INVARIANT.
4805         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
4806         * tree-ssa-dom.c (record_equality): Likewise.
4807         * tree-inline.c (copy_body_r): Likewise.
4808         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
4809         TREE_INVARIANT.
4810
4811 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4812
4813         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
4814         as 'delete_unused' argument.
4815
4816 2008-03-20  Richard Guenther  <rguenther@suse.de>
4817
4818         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
4819         special casing of constant qualifiers.
4820         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
4821         care about them in general.
4822         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
4823         regardless of their type.
4824         (fold_stmt_r): Forcefully fold *& if we end up with that.
4825
4826 2008-03-20  Paul Brook  <paul@codesourcery.com>
4827
4828         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
4829         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
4830         linker flags.
4831         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
4832         definition.
4833         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
4834         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
4835
4836 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
4837
4838         * common.opt (Wmudflap): New option.
4839         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
4840         (mx_register_decls): Likewise.
4841         (mudflap_finish_file): Likewise.
4842         * doc/invoke.texi: Document -Wno-mudflap.
4843
4844 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
4845
4846         * c-format.c (replace_format_name_to_system_name): New.
4847         (cmp_attribs): New.
4848         (convert_format_name_to_system_name): New.
4849         (decode_format_attr): Add use of convert_format_name_to_system_name.
4850         (format_types_orig): Add gnu_ prefix to names.
4851         (check_format_info_main): Special treating of \0 escaped names for
4852         supporting multi-character format specifiers as I32, I64.
4853         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
4854         (gnu_target_overrides_format_attributes): New.
4855         * c-format.h: Add structure target_ovr_attr to hold
4856         system specific formatter names.
4857         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
4858         msformat-c.o file to c_target_objs and cxx_target_objs.
4859         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4860         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
4861         (TARGET_N_FORMAT_TYPES): New.
4862         * config/i386/msformat-c.c: New.
4863         * config/i386/t-cygming: Add build rule for msformat-c.o.
4864         * doc/extend.texi: Add new format names gnu_* and ms_* and
4865         further details.
4866         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4867
4868 2008-03-20  Ira Rosen  <irar@il.ibm.com>
4869
4870         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
4871         optimizations turned on under -O3.
4872         (ftree-vectorize): Add that the flag is turned on with -O3.
4873
4874 2008-03-20  Ben Elliston  <bje@au.ibm.com>
4875
4876         * regmove.c (try_auto_increment): Fix spelling error in comment.
4877         * final.c (final_scan_insn): Likewise.
4878
4879 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
4880
4881         PR target/14552
4882         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
4883         allocator preferences for "y" and "r" class registers.
4884         ("*mov<mode>_internal"): Ditto.
4885         ("*movv2sf_internal_rex64"): Ditto.
4886         ("*movv2sf_internal"): Ditto.
4887
4888 2008-03-19  Michael Matz  <matz@suse.de>
4889
4890         PR middle-end/35616
4891         * calls.c (expand_call): Check overlap of arguments with call
4892         address for sibcalls.
4893
4894 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4895
4896         PR target/35496
4897         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4898         of the underlying type of a MS bitfield layout to the natural
4899         alignment of the type.
4900
4901 2008-03-19  Jan Hubicka  <jh@suse.cz>
4902
4903         PR other/35094
4904         * toplev.c (decode_d_option): Handle all CPP flags.
4905         * tree-vrp.c: Update tree_pass descriptors.
4906         * regrename.c: Update tree_pass descriptors.
4907         * fwprop.c: Update tree_pass descriptors.
4908         * doc/invoke.texi: Remove documentation of dropped -d? flags.
4909         * tree-into-ssa.c: Update tree_pass descriptors.
4910         * tree-dump.c: Update tree_pass descriptors.
4911         * tree-complex.c: Update tree_pass descriptors.
4912         * tree-dump.h: Update tree_pass descriptors.
4913         * see.c: Update tree_pass descriptors.
4914         * cgraphbuild.c: Update tree_pass descriptors.
4915         * tracer.c: Update tree_pass descriptors.
4916         * tree-loop-distribution.c: Update tree_pass descriptors.
4917         * cgraph.c: Update tree_pass descriptors.
4918         * postreload-gcse.c: Update tree_pass descriptors.
4919         * postreload.c: Update tree_pass descriptors.
4920         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
4921         * tree-tailcall.c: Update tree_pass descriptors.
4922         * tree-pass.h (tree_opt_pass): Rename to ...
4923         (opt_pass) ... this one; add "type" field and remove letter field.
4924         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
4925         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
4926         all_lowering_passes): Update declaration.
4927         * ipa-cp.c: Update tree_pass descriptors.
4928         * final.c: Update tree_pass descriptors.
4929         * omp-low.c: Update tree_pass descriptors.
4930         * tree-ssa-dse.c: Update tree_pass descriptors.
4931         * ipa-reference.c: Update tree_pass descriptors.
4932         * tree-ssa-uncprop.c: Update tree_pass descriptors.
4933         * auto-inc-dec.c: Update tree_pass descriptors.
4934         * reorg.c: Update tree_pass descriptors.
4935         * cgraphunit.c: Update tree_pass descriptors.
4936         * tree-ssa-copyrename.c: Update tree_pass descriptors.
4937         * tree-ssa-ccp.c: Update tree_pass descriptors.
4938         * df-core.c: Update tree_pass descriptors.
4939         * mode-switching.c: Update tree_pass descriptors.
4940         * tree-nomudflap.c: Update tree_pass descriptors.
4941         * modulo-sched.c: Update tree_pass descriptors.
4942         * ipa-pure-const.c: Update tree_pass descriptors.
4943         * cse.c: Update tree_pass descriptors.
4944         * web.c: Update tree_pass descriptors.
4945         * tree-stdarg.c: Update tree_pass descriptors.
4946         * tree-ssa-math-opts.c: Update tree_pass descriptors.
4947         * tree-ssa-dom.c: Update tree_pass descriptors.
4948         * tree-nrv.c: Update tree_pass descriptors.
4949         * tree-ssa-alias.c: Update tree_pass descriptors.
4950         * loop-init.c: Update tree_pass descriptors.
4951         * gimple-low.c: Update tree_pass descriptors.
4952         * ipa-inline.c: Update tree_pass descriptors.
4953         * tree-ssa-sink.c: Update tree_pass descriptors.
4954         * global.c: Update tree_pass descriptors.
4955         * ifcvt.c: Update tree_pass descriptors.
4956         * jump.c: Update tree_pass descriptors.
4957         * predict.c: Update tree_pass descriptors.
4958         * tree-ssa-loop.c: Update tree_pass descriptors.
4959         * recog.c: Update tree_pass descriptors.
4960         * dse.c: Update tree_pass descriptors.
4961         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
4962         * tree-eh.c: Update tree_pass descriptors.
4963         * regmove.c: Update tree_pass descriptors.
4964         * local-alloc.c
4965         * function.c: Update tree_pass descriptors.
4966         * tree-vectorizer.c: Update tree_pass descriptors.
4967         * gcse.c: Update tree_pass descriptors.
4968         * ipa-type-escape.c: Update tree_pass descriptors.
4969         * tree-if-conv.c: Update tree_pass descriptors.
4970         * init-regs.c: Update tree_pass descriptors.
4971         * ipa.c: Update tree_pass descriptors.
4972         * tree-ssa-phiopt.c: Update tree_pass descriptors.
4973         * rtl-factoring.c: Update tree_pass descriptors.
4974         * lower-subreg.c: Update tree_pass descriptors.
4975         * bt-load.c: Update tree_pass descriptors.
4976         * tree-dfa.c: Update tree_pass descriptors.
4977         * except.c: Update tree_pass descriptors.
4978         * emit-rtl.c: Update tree_pass descriptors.
4979         * cfgexpand.c: Update tree_pass descriptors.
4980         * tree-cfgcleanup.c: Update tree_pass descriptors.
4981         * cfgcleanup.c: Update tree_pass descriptors.
4982         * tree-ssa-pre.c: Update tree_pass descriptors.
4983         * tree-sra.c: Update tree_pass descriptors.
4984         * tree-mudflap.c: Update tree_pass descriptors.
4985         * tree-ssa-copy.c: Update tree_pass descriptors.
4986         * cfglayout.c: Update tree_pass descriptors.
4987         * tree-ssa-forwprop.c: Update tree_pass descriptors.
4988         * tree-ssa-dce.c: Update tree_pass descriptors.
4989         * tree-ssa.c: Update tree_pass descriptors.
4990         * regclass.c: Update tree_pass descriptors.
4991         * integrate.c: Update tree_pass descriptors.
4992         * tree-optimize.c: Update tree_pass descriptors.
4993         * tree-ssa-phiprop.c: Update tree_pass descriptors.
4994         * tree-object-size.c: Update tree_pass descriptors.
4995         * combine.c: Update tree_pass descriptors.
4996         * tree-outof-ssa.c: Update tree_pass descriptors.
4997         * bb-reorder.c: Update tree_pass descriptors.
4998         * stack-ptr-mod.c: Update tree_pass descriptors.
4999         * var-tracking.c: Update tree_pass descriptors.
5000         * tree-profile.c: Update tree_pass descriptors.
5001         * tree-vect-generic.c: Update tree_pass descriptors.
5002         * reg-stack.c: Update tree_pass descriptors.
5003         * sched-rgn.c: Update tree_pass descriptors.
5004         * tree-ssa-structalias.c: Update tree_pass descriptors.
5005         * tree-cfg.c: Update tree_pass descriptors.
5006         * passes.c (current_pass): Update declaration.
5007         (finish_optimization_passes): Update.
5008         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
5009         (register_one_dump_file, register_dump_files_1, next_pass_1):
5010         Update arguments.
5011         (init_optimization_passes): Update handling of new types.
5012         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
5013         * ipa-struct-reorg.c: Update tree_pass descriptors.
5014         * tree-ssa-reassoc.c: Update tree_pass descriptors.
5015         * combine-stack-adj.c: Update tree_pass descriptors.
5016         * cfgrtl.c: Update tree_pass descriptors.
5017         * dce.c: Update tree_pass descriptors.
5018         * tree-ssanames.c: Update tree_pass descriptors.
5019
5020 2008-03-19  Richard Guenther  <rguenther@suse.de>
5021
5022         PR middle-end/35609
5023         * tree-ssa.c (walk_data): New structure.
5024         (warn_uninitialized_var): If not always_executed warn with "maybe"
5025         instead of "is".
5026         (execute_early_warn_uninitialized): Compute post-dominators.
5027         Initialize always_executed before processing each basic block.
5028
5029 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
5030
5031         PR target/35504
5032         * config/i386/i386.c (x86_this_parameter): Calculate correct location
5033         of "this" pointer when "regparm = N" or "fastcall" is in effect.
5034
5035 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5036
5037         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
5038
5039 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
5040
5041         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
5042         is true.
5043         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
5044         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
5045         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
5046         target after ignore has been set, and move there also the commputation
5047         of subtarget and original_target.
5048         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5049         (LANG_HOOKS_INITIALIZER): Remove it.
5050         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
5051
5052 2008-03-18  Richard Guenther  <rguenther@suse.de>
5053
5054         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
5055         found an expression with constants, note that in the VN for the lhs.
5056         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
5057         fold them to constants if possible.  Run cleanup_cfg if done so.
5058         (execute_pre): Return todo.
5059         (do_pre): Likewise.
5060         (execute_fre): Likewise.
5061         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
5062         of constants.
5063         (get_prop_source_stmt): Look through pointer conversions.
5064
5065 2008-03-18  Jan Hubicka  <jh@suse.cz>
5066
5067         * tree-pretty-print.c: Include predict.h.
5068         (dump_generic_node): Dump predictor.
5069         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
5070         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
5071         * gimple-low.c (lower_stmt): Likewise.
5072         * expr.c (expand_expr_real): Likewise.
5073         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
5074         them.
5075         (build_predict_expr, build_predict_expr): New.
5076         * predict.h (predictor_name, build_predict_expr): Update.
5077         * c-typeck.c (c_finish_bc_stmt): Add prediction.
5078         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
5079         * predict.def (PRED_CONTINUE): Update hitrate.
5080         * tree.def (PREDICT_EXPR): Define.
5081         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
5082         do not handle BIND_EXPR.
5083         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
5084         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
5085         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
5086         operands.
5087
5088 2008-03-18  Michael Matz  <matz@suse.de>
5089
5090         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
5091
5092 2008-03-18  Richard Guenther  <rguenther@suse.de>
5093
5094         * tree-gimple.h (is_gimple_invariant_address): Declare.
5095         (is_gimple_constant): Likewise.
5096         * tree-gimple.c (is_gimple_constant): New function.
5097         (is_gimple_invariant_address): Likewise.
5098         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5099         and is_gimple_invariant_address.
5100         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5101         previous change.
5102         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5103         an addressable base.
5104
5105 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
5106
5107         PR middle-end/35611
5108         * gimplify.c (gimplify_expr): Gimplify second operand of
5109         OMP_ATOMIC_LOAD.
5110
5111 2008-03-17  Richard Guenther  <rguenther@suse.de>
5112
5113         PR tree-optimization/19637
5114         * fold-const.c (fold_unary): Remove restrictions of removing
5115         intermediate pointer-conversions (P2)(P1)P0.
5116         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5117         conversion to void pointer.
5118         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5119
5120 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
5121
5122         PR debug/31510
5123         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5124         emulated thread local variables.
5125
5126 2008-03-16  Richard Guenther  <rguenther@suse.de>
5127
5128         PR middle-end/35607
5129         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5130         expand TREE_INVARIANT operations that are not gimple invariant.
5131
5132 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
5133
5134         * doc/extend.texi (Alignment): Say that the ABI controls
5135         the __alignof__ for non-strict-alignment targets rather
5136         than being a recommendation.
5137
5138 2008-03-15  Paul Brook  <paul@codesourcery.com>
5139
5140         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5141         annotations.
5142         (arm_output_fn_unwind): Mark functions that can not be unwound.
5143
5144 2008-03-15  Paul Brook  <paul@codesourcery.com>
5145
5146         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5147         extension instructions.
5148
5149 2008-03-15  Richard Guenther  <rguenther@suse.de>
5150
5151         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5152         and fold constant aggregate refs.
5153         (fold_const_aggregate_ref): Handle string constants
5154         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
5155         (evaluate_stmt): Simplify now that ccp_fold folds constant
5156         aggregate refs.
5157
5158 2008-03-15  Paul Brook  <paul@codesourcery.com>
5159
5160         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5161         (extzv): Use gen_extzv_t2.
5162         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5163
5164 2008-03-15  Richard Guenther  <rguenther@suse.de>
5165
5166         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5167         (fold_const_aggregate_ref): Likewise.
5168         (get_value): Return NULL if we don't have any values.
5169         (ccp_finalize): Set const_val to NULL after freeing it.
5170         * tree-flow.h (get_symbol_constant_value): Declare.
5171         (fold_const_aggregate_ref): Likewise.
5172         * tree-ssa-sccvn.c (try_to_simplify): Use them.
5173
5174 2008-03-15  Richard Guenther  <rguenther@suse.de>
5175
5176         PR middle-end/35593
5177         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5178         to not produce negative array indices if not allowed.  Add
5179         parameter to indicate that.
5180         (maybe_fold_offset_to_component_ref): Allow negative array
5181         indices only for the first member of a structure.
5182         (maybe_fold_offset_to_reference): Allow negative array indices.
5183         (maybe_fold_stmt_addition): Likewise.
5184
5185 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
5186             Anatoly Sokolov <aesok@post.ru>
5187
5188         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
5189         (avr_arch): Add ARCH_AVR6.
5190         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5191         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
5192         instead of fixed value 2.
5193         (print_operand_address): Use gs() asm specifier instead of pm().
5194         (avr_assemble_integer): (Ditto.).
5195         (avr_output_addr_vec_elt): (Ditto.).
5196         (print_operand): Handle "!" code.
5197         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
5198         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5199         (AVR_HAVE_EIJMP_EICALL): Define.
5200         (AVR_3_BYTE_PC): Redefine.
5201         (AVR_2_BYTE_PC): (Ditto.).
5202         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5203         (LINK_SPEC): Add atmega2560 and atmega2561.
5204         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
5205         (crtm2561.o).
5206         * config/avr/avr.md (call_insn): Use eicall instead of icall 
5207         for 3 byte PC devices.
5208         (call_value_insn): (Ditto.).
5209         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5210         (indirect_jump): Use only for for 2 byte PC devices.
5211         (*tablejump): (Ditto.).
5212         (*indirect_jump_avr6): Add insn.
5213         (*tablejump_rjmp): Don't use for 3 byte PC devices.
5214         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
5215         instead of ijmp for 3 byte PC devices.
5216         (__tablejump2__): (Ditto.).
5217         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
5218         (MULITLIB_DIRNAMES): (Ditto.). 
5219         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5220
5221 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
5222
5223         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5224         "sse2_umulsidi3".  Use V1DI mode for operand 0.
5225         ("mmx_psadbw"): Use V1DI mode for operand 0.
5226         * config/i386/i386-modes.def (V1SI): New vector mode.
5227         * config/i386/i386.c (struct builtin_description)
5228         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5229         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5230         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5231         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5232         v1di_ftype_v8qi_v8qi type.
5233         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5234
5235         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5236         __builtin_ia32_pmuludq]: Fix the mode of return value.
5237
5238 2008-03-15  Richard Guenther  <rguenther@suse.de>
5239
5240         PR middle-end/35595
5241         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5242         being a PHI_NODE.
5243
5244 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
5245         
5246         * doc/invoke.texi (Option Summary, Xtensa Options): Document
5247         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5248         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5249         unless TARGET_SERIALIZE_VOLATILE is enabled.
5250         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5251         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5252         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5253
5254 2008-03-14  Richard Guenther  <rguenther@suse.de>
5255
5256         PR tree-optimization/34172
5257         * tree-flow.h (refs_may_alias_p): Declare.
5258         (get_single_def_stmt): Likewise.
5259         (get_single_def_stmt_from_phi): Likewise.
5260         (get_single_def_stmt_with_phi): Likewise.
5261         * tree-dfa.c (refs_may_alias_p): New function.
5262         (get_single_def_stmt): Likewise.
5263         (get_single_def_stmt_from_phi): Likewise.
5264         (get_single_def_stmt_with_phi): Likewise.
5265         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5266         (vn_reference_lookup_1): New helper function.
5267         (vn_reference_lookup): Walk the virtual use-def chain to
5268         continue searching for a match if the def does not alias the
5269         reference we are looking for.
5270
5271 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
5272
5273         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
5274         archive and Perzl.  Update The Written Word listing.
5275
5276 2008-03-14  Richard Guenther  <rguenther@suse.de>
5277
5278         PR tree-optimization/34043
5279         PR tree-optimization/33989
5280         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5281         when doing FRE.
5282         (bitmap_find_leader): Use extra argument to verify dominance
5283         relationship inside a basic-block.
5284         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5285         (find_leader_in_sets): Adjust.
5286         (create_component_ref_by_pieces): Take extra argument for
5287         dominance check, handle lookup failures.
5288         (find_or_generate_expression): Likewise.
5289         (create_expression_by_pieces): Likewise.
5290         (insert_into_preds_of_block): Adjust.
5291         (create_value_expr_from): If asked for, verify all operands
5292         are in the blocks AVAIL_OUT set.
5293         (make_values_for_stmt): Check for SSA_NAMEs that are life
5294         over an abnormal edge.
5295         (compute_avail): Remove such check.
5296         (do_SCCVN_insertion): New function.
5297         (eliminate): If we do not find a leader suitable for replacement
5298         insert a replacement expression from SCCVN if available.
5299         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5300         (struct vn_ssa_aux): Add needs_insertion flag.
5301         * tree-ssa-sccvn.c (may_insert): New global flag.
5302         (copy_reference_ops_from_ref): Value-number union member access
5303         based on its size, not type and member if insertion is allowed.
5304         (visit_reference_op_load): For a weak match from union type
5305         punning lookup a view-converted value and insert a SSA_NAME
5306         for that value if that is not found.
5307         (visit_use): Make dumps shorter.  Do not disallow value numbering
5308         SSA_NAMEs that are life over an abnormal edge to constants.
5309         (free_scc_vn): Release inserted SSA_NAMEs.
5310         (run_scc_vn): New flag to specify whether insertion is allowed.
5311         Process SSA_NAMEs in forward order.
5312         * tree-ssa-loop-im.c (for_each_index): Handle invariant
5313         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5314         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5315         pointer type to/from integral types that do not change the
5316         precision to regular conversions.
5317
5318 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5319
5320         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5321         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5322         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5323         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5324         input arguments and the mode of return value.  Built-in functions
5325         that operate on whole 64-bit MMX register now use V1DI mode.
5326
5327 2008-03-13  Alon Dayan  <alond@il.ibm.com>
5328             Olga Golovanevsky  <olga@il.ibm.com>
5329
5330         PR tree-optimization/35041
5331         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5332         to locate the right position in a statement.
5333
5334 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5335
5336         PR target/34000
5337         PR target/35553
5338         * config/i386/xmmintrin.h:  Change all static inline functions to
5339         extern inline and add __gnu_inline__ attribute.
5340         * config/i386/bmintrin.h: Ditto.
5341         * config/i386/smmintrin.h: Ditto.
5342         * config/i386/tmmintrin.h: Ditto.
5343         * config/i386/mmintrin-common.h: Ditto.
5344         * config/i386/ammintrin.h: Ditto.
5345         * config/i386/emmintrin.h: Ditto.
5346         * config/i386/pmmintrin.h: Ditto.
5347         * config/i386/mmintrin.h: Ditto.
5348         * config/i386/mm3dnow.h: Ditto.
5349
5350 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
5351
5352         PR middle-end/35185
5353         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5354         (lower_omp_2): New function.
5355         (lower_omp_1, lower_omp): Rewritten.
5356
5357 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
5358
5359         PR 35054
5360         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5361         with the phrase "Microsoft Windows compilers".
5362         (Push/Pop Macro Pragmas): New subsection. Document
5363         #pragma push_macro and pragma pop_macro.
5364
5365 2008-03-12  Paul Brook  <paul@codesourcery.com>
5366
5367         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5368
5369 2008-03-12  Paul Brook  <paul@codesourcery.com>
5370
5371         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5372         (thumb2_alusi3_short): Exclude PLUS and MINUS.
5373         (thumb2_addsi_shortim): Rename ...
5374         (thumb2_addsi_short): ... to this.  Allow register operands.
5375         (thumb2_subsi_short): New pattern.
5376         (thumb2_one_cmplsi2_short,
5377         thumb2_negsi2_short): New patterns and peepholes.
5378
5379 2008-03-12  Paul Brook  <paul@codesourcery.com>
5380
5381         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5382
5383 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
5384
5385         * config/i386/i386.md (int_cond): New code iterator.
5386         (fp_cond): Ditto.
5387         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5388         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5389         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5390         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5391         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5392         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5393         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5394         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5395
5396 2008-03-12  Paul Brook  <paul@codesourcery.com>
5397
5398         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5399         instead of {arm,thumb}_compute_save_reg_mask.
5400         (output_return_instruction): Ditto.
5401         (thumb_unexpanded_epilogue): Ditto.
5402         (thumb1_expand_prologue): Ditto.
5403         (thumb1_output_function_prologue): Ditto.
5404         (arm_set_return_address): Ditto.
5405         (thumb_set_return_address): Ditto.
5406         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
5407         regs to achieve stack alignment.
5408         (thumb1_compute_save_reg_mask): Fix compiler warning.
5409         (arm_output_epilogue): Use offsets->saved_regs_mask.
5410         Adjust stack pointer by poping call clobered registers.
5411         (arm_expand_prologue): Use offsets->saved_regs_mask.
5412         Adjust stack pointer by pushing extra registers.
5413         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
5414
5415 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
5416
5417         PR tree-opt/35422
5418         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5419         conversion to the operands of a multiplication.
5420
5421 2008-03-12  Richard Guenther  <rguenther@suse.de>
5422
5423         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5424         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5425         * timevar.def (TV_TREE_PHIPROP): Add.
5426         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5427         pass description.  Use TV_TREE_PHIPROP.
5428         * tree-ssa-forwprop.c: Remove phiprop code.
5429
5430 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
5431
5432         PR middle-end/35549
5433         * omp-low.c (maybe_lookup_decl): Constify first argument.
5434         (use_pointer_for_field): Change last argument from bool to
5435         omp_context *.  Disallow shared copy-in/out in nested
5436         parallel if decl is shared in outer parallel too.
5437         (build_outer_var_ref, scan_sharing_clauses,
5438         lower_rec_input_clauses, lower_copyprivate_clauses,
5439         lower_send_clauses, lower_send_shared_vars): Adjust callers.
5440
5441 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
5442             Ira Rosen  <irar@il.ibm.com>
5443
5444         * tree-vectorizer.c (free_stmt_vec_info): New function.
5445         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5446         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5447         * tree-vectorizer.h (free_stmt_vec_info): Declare.
5448         * tree-vect-transform.c (vectorizable_conversion): Free
5449         vec_oprnds0 if it was allocated.
5450         (vect_permute_store_chain): Remove unused VECs.
5451         (vectorizable_store): Free VECs that are allocated in the..
5452         function.
5453         (vect_transform_strided_load, vectorizable_load): Likewise.
5454         (vect_remove_stores): Simplify the code.
5455         (vect_transform_loop): Move code to vect_remove_stores().
5456         Call vect_remove_stores() and free_stmt_vec_info().
5457
5458 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5459
5460         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5461         TARGET_HPUX.  Revise comment.
5462         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5463         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5464         Use sr4 variant of `be' instruction when not generating PIC code.
5465         (attr_length_call): Adjust for above change.
5466
5467 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5468
5469         * ipa-reference.c (static_execute): Remove module_statics_const and
5470         associated setting code.
5471
5472 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5473
5474         PR target/35540
5475         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
5476         predicate for operand 1.
5477         (paritysi2_cmp): Use register_operand predicate for operand 2.
5478         Use earlyclobber modifier for operand 1.  Remove support for
5479         memory operands.
5480         (paritydi2_cmp): Use register_operand predicate for operand 3.
5481         Use earlyclobber modifier for operand 1.  Remove support for
5482         memory operands.
5483
5484 2008-03-11  Paul Brook  <paul@codesourcery.com>
5485             Vladimir Prus  <vladimir@codesourcery.com>
5486
5487         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5488         (arm_compute_save_reg0_reg12_mask): Always
5489         check if register 11 must be saved.  Always safe hard frame pointer
5490         when frame_pointer_needeed.
5491         (arm_compute_save_reg_mask): Save IP and PC
5492         only with apcs frames.
5493         (arm_output_epilogue): Adjust Thumb2 codepath to
5494         be also invoked and work for ARM non-apcs frames.
5495         (arm_expand_prologue): Don't bother saving IP
5496         for non-apcs frame, since it's not clobbered by
5497         prologue code.  Implement non-apcs frame
5498         layout.
5499
5500 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5501
5502         PR rtl-optimization/35281
5503         * expr.c (convert_move): Use a new pseudo for the intermediate
5504         from_mode->word_mode result.
5505
5506 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5507
5508         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5509         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5510         * toplev.c (compile_file): Don't call it.
5511
5512 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5513
5514         PR middle-end/35526
5515         * expr.c (store_expr): Call emit_block_move if the mode
5516         of "temp" RTX is BLKmode.
5517
5518 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5519             Richard Guenther  <rguenther@suse.de>
5520
5521         PR tree-optimization/31358
5522         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5523         the step with a NULL_TREE.
5524         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5525         to sizetype if type is a pointer type.
5526         (add_candidate_1): Don't convert the base and step to
5527         the generic type if the orginal type is a pointer type.
5528         (add_iv_value_candidates): Use sizetype for the step
5529         if type is a pointer type.
5530         (cand_value_at): Likewise.
5531         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5532         for pointer types.
5533         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5534         Don't convert the tem affine to the type.
5535         (add_elt_to_tree): Use sizetype for the step if a pointer.
5536         Use POINTER_PLUS_EXPR for pointers.
5537         (aff_combination_to_tree): Use sizetype for the step if a
5538         pointer.
5539
5540 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
5541
5542         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5543         Remove commutativity hint.
5544
5545 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
5546
5547         PR c/35438
5548         PR c/35439
5549         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5550         errorneous type.  Check that v is a VAR_DECL.
5551
5552         PR middle-end/35099
5553         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5554
5555 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
5556
5557         PR tree-optimization/35494
5558         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5559         may be overriden at link and run time.
5560
5561 2008-03-10  Richard Guenther  <rguenther@suse.de>
5562
5563         PR tree-optimization/34677
5564         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5565         (poolify_tree): Likewise.
5566         (modify_expr_template): Likewise.
5567         (poolify_modify_stmt): Likewise.
5568         (insert_fake_stores): Handle all component-ref style stores
5569         in addition to INDIRECT_REF.  Also handle complex types.
5570         Do not poolify the inserted load.
5571         (realify_fake_stores): Do not rebuild the tree but only
5572         make it a SSA_NAME copy.
5573         (init_pre): Remove initialzation of modify_expr_template.
5574         Do not allocate modify_expr_node_pool.
5575         (fini_pre): Do not free modify_expr_node_pool.
5576
5577 2008-03-10  Paul Brook  <paul@codesourcery.com>
5578
5579         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5580         to avoid conflicts.
5581
5582 2008-03-10  Paul Brook  <paul@codesourcery.com>
5583             Mark Shinwell  <shinwell@codesourcery.com>
5584
5585         * config/arm/cortex-r4.md: New.
5586         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5587         insn attributes.
5588         * config/arm/arm.md: Include cortex-r4.md.
5589         (insn): Add smmls, sdiv and udiv values.
5590         (generic_sched): Don't use generic scheduling for Cortex-R4.
5591         (arm_issue_rate): New function.
5592         (TARGET_SCHED_ISSUE_RATE): Define.
5593
5594 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
5595
5596         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5597
5598 2008-03-10  Richard Guenther  <rguenther@suse.de>
5599
5600         * tree-ssa-pre.c (get_sccvn_value): Simplify.
5601         (compute_avail): Do not add stmt uses to AVAIL_OUT.
5602
5603 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
5604
5605         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5606         Set default to true.
5607
5608 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5609
5610         * c.opt (Wsynth): Deprecate.
5611         * doc/invoke.texi (Option Summary, Warning Options): Document
5612         -Wno-format-contains-nul.
5613
5614 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
5615
5616         PR target/35496
5617         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
5618         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5619
5620 2008-03-09  Ira Rosen  <irar@il.ibm.com>
5621
5622         * config/rs6000/rs6000.c (builtin_description): Rename vector
5623         left shift operations.
5624         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5625         (altivec_vsl<VI_char>): Rename to ...
5626         (ashl<mode>3): ... new name.
5627         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5628         gen_ashlv4si3.
5629         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5630
5631 2008-03-08  Richard Guenther  <rguenther@suse.de>
5632
5633         * coverage.h (tree_coverage_counter_addr): Declare.
5634         * coverage.c (tree_coverage_counter_addr): New function.
5635         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
5636         before using again.
5637         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
5638         (tree_gen_one_value_profiler): Likewise.
5639         (tree_gen_ic_profiler): Likewise.
5640         (tree_gen_average_profiler): Likewise.
5641         (tree_gen_ior_profiler): Likewise.
5642
5643 2008-03-08  Richard Guenther  <rguenther@suse.de>
5644
5645         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
5646         (vn_binary_op_insert): Likewise.
5647         (vn_unary_op_lookup): Likewise.
5648         (vn_unary_op_insert): Likewise.
5649         (vn_nary_op_lookup): Declare.
5650         (vn_nary_op_insert): Likewise.
5651         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
5652         and binary hashes, use a single obstack for unary_op_pool
5653         and binary_op_pool.
5654         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
5655         a single struct vn_nary_op_s.  Store tree code length and
5656         a variable number of operands.
5657         (struct vn_reference_op_struct): Remove unused op2.
5658         (vn_reference_op_eq): Do not compare op2.
5659         (vn_reference_op_compute_hash): Do not compute hash of op2.
5660         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
5661         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
5662         with vn_nary_op_compute_hash.
5663         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
5664         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
5665         vn_nary_op_lookup.
5666         (vn_unary_op_insert, vn_binary_op_insert): Replace with
5667         vn_nary_op_insert.
5668         (visit_unary_op): Call nary functions.
5669         (visit_binary_op): Likewise.
5670         (process_scc): Adjust for struct vn_tables_s changes.
5671         (allocate_vn_table): Likewise.
5672         (free_vn_table): Likewise.
5673         * tree-vn.c (vn_add): Call nary functions.
5674         (vn_lookup): Likewise.
5675
5676 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
5677
5678         PR target/35498
5679         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
5680         wdst back after sync_compare_and_swapqhi_internal.
5681
5682 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
5683
5684         PR target/22152
5685         * config/i386/i386-modes.def (V1DI): New vector mode.
5686         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
5687         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
5688         (MMXMODE248): Ditto.
5689         (MMXMODE): Add V1DI mode.
5690         (mmxvecsize): Change DI mode to V1DI mode.
5691         ("mov<mode>): Use MMXMODEI8 mode iterator.
5692         ("*mov<mode>_internal_rex64"): Ditto.
5693         ("*mov<mode>_internal"): Ditto.
5694         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
5695         ("mmx_sub<mode>3"): Ditto.
5696         ("mmx_adddi3"): Remove insn pattern.
5697         ("mmx_subdi3"): Ditto.
5698         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
5699         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
5700         ("mmx_ashl<mode>3"): Ditto.
5701         ("mmx_lshrdi3"): Remove insn pattern.
5702         ("mmx_ashldi3"): Ditto.
5703         * config/i386/i386.c (classify_argument): Handle V1DImode.
5704         (function_arg_advance_32): Ditto.
5705         (function_arg_32): Ditto.
5706         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
5707         mmx_addv1di3 insn pattern.
5708         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
5709         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
5710         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
5711         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
5712         Remove definitions of built-in functions.
5713         (V1DI_type_node): New node.
5714         (v1di_ftype_v1di_int): Ditto.
5715         (v1di_ftype_v1di_v1di): Ditto.
5716         (v2si_ftype_v2si_si): Ditto.
5717         (v4hi_ftype_v4hi_di): Remove node.
5718         (v2si_ftype_v2si_di): Ditto.
5719         (ix86_init_mmx_sse_builtins): Handle V1DImode.
5720         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
5721         Redefine builtins using def_builtin_const with *_ftype_*_int node.
5722         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
5723         Add new builtins using def_builtin_const.
5724         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
5725         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
5726         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
5727         * config/i386/mmintrin.h (__v1di): New typedef.
5728         (_mm_add_si64): Cast arguments to __v1di type.
5729         (_mm_sub_si64): Ditto.
5730         (_mm_sll_pi16): Cast __count to __v4hi type.
5731         (_mm_sll_pi32): Cast __count to __v2si type.
5732         (_mm_sll_si64): Cast arguments to __v1di type.
5733         (_mm_srl_pi16): Cast __count to __v4hi type.
5734         (_mm_srl_pi32): Cast __count to __v2si type.
5735         (_mm_srl_si64): Cast arguments to __v1di type.
5736         (_mm_sra_pi16): Cast __count to __v4hi type.
5737         (_mm_sra_pi32): Cast __count to __v2si type.
5738         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
5739         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
5740         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
5741         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
5742         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
5743         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
5744         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
5745         (_mm_srai_pi32): Use __builtin_ia32_psradi.
5746         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
5747         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5748         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5749         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
5750
5751 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
5752
5753         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
5754
5755 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
5756
5757         PR target/35373
5758         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
5759         reg+const addressing for Altivec modes.  Don't generate reg+reg
5760         addressing for TFmode or TDmode quantities.
5761
5762 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
5763
5764         * c-common.c (vector_types_convertible_p): Call langhook
5765         instead of comptypes.
5766
5767 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5768
5769         PR tree-opt/35402
5770         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
5771         integral and scalar float variables which have a
5772         NULL DECL_INITIAL.
5773
5774 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
5775
5776         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
5777         dwarf_register_span hook when emitting unwind information for
5778         register-to-memory saves.
5779         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
5780         (rs6000_frame_related): Remove call to spe_synthesize_frame.
5781
5782 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
5783
5784         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
5785         for the same VAR_DECL.
5786
5787 2008-03-06  Tom Tromey  <tromey@redhat.com>
5788
5789         * treelang: Delete.
5790         * doc/standards.texi (Standards): Don't mention treelang.
5791         * doc/invoke.texi (Overall Options): Don't mention treelang.
5792         * doc/install.texi (Prerequisites): Don't mention bison or
5793         treelang.
5794         (Configuration): Don't mention treelang.
5795         (Building): Likewise.
5796         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
5797
5798 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
5799
5800         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
5801         word-extractions out of a multi-word object.
5802
5803 2008-03-06  Richard Guenther  <rguenther@suse.de>
5804
5805         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
5806         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
5807         result type and precision.
5808         * expr.c (get_inner_reference): Set unsignedp based on the result
5809         type of BIT_FIELD_REF.
5810         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
5811         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
5812         (try_instantiate_multiple_fields): Likewise.  Use the correct type
5813         for BIT_FIELD_REF.
5814         (sra_build_assignment): Likewise.
5815         (sra_build_elt_assignment): Likewise.
5816         (sra_explode_bitfield_assignment): Likewise.
5817         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
5818         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
5819         set BIT_FIELD_REF_UNSIGNED.
5820         (vectorizable_load): Likewise.
5821
5822 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
5823
5824         * cse.c (cse_extended_basic_block): Invalidate artificial defs
5825         at bb start.
5826
5827 2008-03-06  Richard Guenther  <rguenther@suse.de>
5828
5829         * alias.c (struct alias_set_entry): Move has_zero_child field
5830         to pack with alias_set.
5831
5832 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
5833
5834         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5835         32bit host.
5836
5837 2008-03-05  Ian Lance Taylor  <iant@google.com>
5838
5839         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
5840
5841 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
5842
5843         * fwprop.c (update_df): Support width and offset parameters of
5844         df_ref_create.
5845         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
5846         global_conflicts): Change DF_REF_EXTRACT to either
5847         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5848         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5849         * df-scan.c (df_ref_record, df_defs_record,
5850         df_ref_create_structure, df_def_record_1, df_uses_record,
5851         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
5852         df_bb_refs_collect, df_entry_block_defs_collect,
5853         df_exit_block_uses_collect): Support new width and offset fields.
5854         (ref_extract_pool): New storage pool.
5855         (df_free_ref): New function.
5856         (df_reg_chain_unlink, df_free_collection_rec,
5857         df_sort_and_compress_refs): Call df_free_ref.
5858         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
5859         of df_ref_extract.
5860         (df_ref_create_structure): Allocate df_ref_extract if offset and
5861         width fields are used.
5862         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
5863         (df_uses_record): Get offset and width from ZERO_EXTRACT 
5864         and SIGN_EXTRACT.
5865         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
5866         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5867         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5868         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
5869         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5870         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5871         (df_ref_extract): New structure.
5872         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
5873         (df_ref_create): Add width and offset parameters.
5874         
5875 2008-03-05  Richard Guenther  <rguenther@suse.de>
5876
5877         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5878         Use ranges_overlap_p.
5879         (offset_overlaps_with_access): Rename
5880         to ranges_overlap_p and move ...
5881         * tree-flow-inline.h (ranges_overlap_p): ... here.
5882
5883         * tree.h (get_inner_reference, handled_component_p): Update
5884         comments.
5885
5886         * tree.h (record_component_aliases, get_alias_set,
5887         alias_sets_conflict_p, alias_sets_must_conflict_p,
5888         objects_must_conflict_p): Move declarations ...
5889         * alias.h (record_component_aliases, get_alias_set,
5890         alias_sets_conflict_p, alias_sets_must_conflict_p,
5891         objects_must_conflict_p): ... here.
5892         Include coretypes.h.
5893         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
5894
5895 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
5896
5897         * cfg.c: Include tree-flow.h.
5898         (remove_edge_raw): Call redirect_edge_var_map_clear.
5899         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
5900         * tree-flow-inline.h (redirect_edge_var_map_def): New.
5901         (redirect_edge_var_map_result): New.
5902         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
5903         PENDING_STMT use with redirect_edge_var_map_*.
5904         * tree-ssa.c (edge_var_maps): New definition.
5905         (redirect_edge_var_map_add): New.
5906         (redirect_edge_var_map_clear): New.
5907         (redirect_edge_var_map_dup): New.
5908         (redirect_edge_var_map_vector): New.
5909         (redirect_edge_var_map_destroy): New.
5910         (ssa_redirect_edge): Replace PENDING_STMT use with
5911         redirect_edge_var_map_*.
5912         (flush_pending_stmts): Same.
5913         (delete_tree_ssa): Destroy edge var map.
5914         * tree-flow.h (struct _edge_var_map): New.
5915         Define edge_var_map vector type.
5916         Declare redirect_edge_var_map_* prototypes.
5917         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
5918         * tree-cfg.c (reinstall_phi_args): Replace
5919         PENDING_STMT use with redirect_edge_var_map_*.
5920
5921 2008-03-05  Richard Guenther  <rguenther@suse.de>
5922
5923         PR tree-optimization/35472
5924         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
5925         whose single use_stmt has a overlapping set of loaded and
5926         stored symbols as that use_stmt might be a noop assignment then.
5927
5928 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
5929
5930         * gthr-rtems.h: Implement __gthread_mutex_destroy.
5931
5932 2008-03-05  Richard Guenther  <rguenther@suse.de>
5933
5934         PR c++/35336
5935         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
5936         should be constants.
5937         * tree-cfg.c (verify_expr): Verify it.
5938         * fold-const.c (fold_truthop): Remove code generating
5939         BIT_FIELD_REFs of structure bases.
5940         (fold_binary): Likewise.
5941         (fold_ternary): Position and size of BIT_FIELD_REFs are
5942         always host integers.
5943         (make_bit_field_ref): Remove.
5944         (optimize_bit_field_compare): Remove.
5945         (all_ones_mask_p): Remove.
5946
5947 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
5948
5949         PR gcc/33009
5950         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
5951         (split_block_and_df_analyze): New. Split basic block and rebuild
5952         dataflow.
5953         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
5954         SPLIT_BLOCK.
5955         (split_pattern_seq): Likewise.
5956         (erase_matching_seqs): Likewise.
5957         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
5958
5959 2008-03-04  Geoff Keating  <geoffk@apple.com>
5960
5961         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
5962         declaration and code.
5963         (tree_invalid_nonnegative_warnv_p): Likewise.
5964
5965 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
5966
5967         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
5968         examples.  Truncate option-names then causing overfull hbox.
5969
5970 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5971
5972         PR target/35222
5973         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
5974         on hpux10.
5975         * configure: Rebuilt.
5976
5977 2008-03-04  Rafael Espindola  <espindola@google.com>
5978
5979         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
5980         (tree_unary_nonnegative_warnv_p): New.
5981         (tree_binary_nonnegative_warnv_p): New.
5982         (tree_single_nonnegative_warnv_p): New.
5983         (tree_invalid_nonnegative_warnv_p): New.
5984         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
5985
5986 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5987
5988         PR 28322
5989         * opts.c (handle_option): Postpone 'unknown option' errors only for
5990         warning options.
5991
5992 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
5993
5994         PR target/35453
5995         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
5996         (_SIDD_XXX): This.
5997
5998 2008-03-04  Rafael Espindola  <espindola@google.com>
5999
6000         * fold-const.c (tree_unary_nonzero_warnv_p): New.
6001         (tree_binary_nonzero_warnv_p): New.
6002         (tree_single_nonzero_warnv_p): New.
6003         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
6004
6005 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
6006
6007         PR middle-end/35456
6008         * fold-const.c (fold_cond_expr_with_comparison): Prevent
6009         transformations for modes that have signed zeros.
6010         * ifcvt.c (noce_try_abs): Ditto.
6011
6012 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
6013
6014         * config/i386/i386.c (override_options): Force
6015         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
6016
6017 2008-03-04  Jan Hubicka  <jh@suse.cz>
6018
6019         PR c++/35262
6020         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
6021         in last commit.
6022
6023 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
6024
6025         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
6026         label to probe the stack.
6027
6028 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
6029
6030         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
6031         (__gthr_win32_mutex_destroy): Declare.
6032         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
6033         __gthr_win32_mutex_destroy.
6034         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
6035
6036 2008-03-03  Jan Hubicka  <jh@suse.cz>
6037
6038         PR c++/35262
6039         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
6040         aggressive on inlining cold calls.
6041
6042 2008-03-03  Richard Guenther  <rguenther@suse.de>
6043
6044         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
6045         struct copies into the expression table.
6046         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
6047         (try_to_simplify): Likewise.
6048         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
6049         integral and pointer arguments which do not change the
6050         precision to NOP_EXPRs.
6051         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
6052         VIEW_CONVERT_EXPR case.
6053
6054 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
6055
6056         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
6057         defined in a loop at depth 0 is invariant.
6058         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6059         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
6060         be called at loop depth 0.
6061
6062 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
6063
6064         PR driver/35420
6065         * gcc.c (process_command): Update copyright notice dates.
6066         * gcov.c (print_version): Likewise.
6067         * gcov-dump.c (print_version): Likewise.
6068         * mips-tfile.c (main): Likewise.
6069         * mips-tdump.c (main): Likewise.
6070
6071 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6072
6073         PR 24924
6074         * c-common.c (flag_permissive): Delete.
6075         (constant_expression_warnings): Check flags first.
6076         (constant_expression_error): New.
6077         * c-common.h (flag_permissive): Delete.
6078         (constant_expression_error): Declare.
6079         * flags.h (flag_permissive): Declare. Update description.
6080         * diagnostic.c (pedwarn): Update.
6081         (permerror): New.
6082         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
6083         (permissive_error_kind): New.
6084         * toplev.c (flag_permissive): Define. Update description.
6085         * toplev.h (permissive_error_kind): Declare.
6086         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
6087         (pedwarn_c90): Use pedantic_warning_kind.
6088         * c-opts.c (c_common_post_options): flag_permissive does not affect
6089         flag_pedantic_errors.
6090
6091 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
6092
6093         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
6094         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
6095         __absvsi2, __absvDI2): Use unsigned arithmetic.
6096
6097 2008-03-02  Andi Kleen  <ak@suse.de>
6098             Richard Guenther  <rguenther@suse.de>
6099
6100         * struct-equiv.c: Remove file.
6101         * cfg_cleanup.c (condjump_equiv_p): Remove.
6102         * Makefile.in (OBJS-common): Remove struct-equiv.o.
6103         (struct-equiv.o): Remove rule.
6104         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6105         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
6106         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6107
6108 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6109
6110         * ifcvt.c (noce_process_if_block): Try to handle only the then
6111         block if the else block exists but isn't suitable.
6112
6113 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6114
6115         PR gcc/35063
6116         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6117         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6118         regression from previous patch.
6119
6120 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6121
6122         PR gcc/35063
6123         * gthr.h: Add __gthread_mutex_destroy as a function that must be
6124         implemented.
6125         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6126         * gthr-single.h (__gthread_mutex_destroy): Likewise.
6127         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6128         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6129         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6130         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6131         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6132         (__gthread_mutex_destroy_function): Rename to
6133         __gthread_mutex_destroy.
6134         * gthr-dce.h (__gthread_mutex_destroy): Call
6135         pthread_mutex_destroy.
6136         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6137         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6138         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6139
6140 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6141
6142         * df-scan.c (df_ref_chain_change_bb): Simplify.
6143         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
6144         set_block_for_insn if there's any change.
6145         * df.h ((df_insn_change_bb): Fix prototype.
6146         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6147         df_insn_change_bb, don't call set_block_for_insn.
6148         * emit-rtl.c (reorder_insns): Likewise.
6149         * haifa-sched.c (move_insn): Likewise.
6150
6151 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6152
6153         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6154
6155 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6156
6157         * tree-flow-inline.h (next_readonly_imm_use): Return
6158         NULL_USE_OPERAND_P after the end.
6159
6160 2008-03-01  Richard Guenther  <rguenther@suse.de>
6161
6162         PR tree-optimization/35411
6163         * tree-sra.c (sra_build_assignment): Split conversion to
6164         final type to a separate statement if we are not assigning
6165         to a register.
6166
6167 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6168
6169         * fold-const.c (fold_convertible_p): Correct the logic to follow
6170         that in fold_convert().
6171
6172 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
6173
6174         PR c++/35315
6175         * tree-inline.c (build_duplicate_type): When we make a
6176         duplicate type, make it unique in the canonical types system.
6177
6178 2008-02-29  Tom Tromey  <tromey@redhat.com>
6179
6180         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6181         input_file_stack_history, input_file_stack_restored): Remove.
6182         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6183         * input.h (struct file_stack): Remove.
6184         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6185         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6186         Likewise.
6187         * diagnostic.h (struct diagnostic_context) <last_module>: Change
6188         type.
6189         (diagnostic_last_module_changed): Add 'map' argument.
6190         (diagnostic_set_last_function): Likewise.
6191         * diagnostic.c (undiagnostic_report_current_module): Iterate using
6192         line map, not input_file_stack.
6193         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6194
6195 2008-02-29  Paul Brook  <paul@codesourcery.com>
6196
6197         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6198
6199 2008-02-29  Paul Brook  <paul@codesourcery.com>
6200
6201         * config/arm/ieee754-df.S (muldf3): Use RET macros.
6202
6203 2008-02-29  Richard Guenther  <rguenther@suse.de>
6204
6205         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6206         vn_lookup_or_add.
6207         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6208         value for comparing for a store match.
6209         (simplify_unary_expression): Do nothing for SSA_NAMEs.
6210         (try_to_simplify): Do not do a full-blown reference lookup.
6211
6212 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6213
6214         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6215         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6216
6217         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6218
6219 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
6220
6221         * tree-loop-linear.c (try_interchange_loops): Compare memory access
6222         strides against cache sizes.
6223
6224 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6225
6226         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6227         constant to fpul.
6228
6229 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
6230
6231         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6232         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6233         is smaller than the original promoted value.
6234         (simplify_subreg): If OP is a SUBREG, try to preserve its
6235         SUBREG_PROMOTED_VAR_P information.
6236
6237 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
6238
6239         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6240         (VN_INFO_GET): Allocate new objects on the obstack.
6241         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
6242         for rpo_numbers_temp, for consistency.
6243         (free_scc_vn): Free the obstack.
6244
6245 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
6246
6247         * doc/invoke.texi: Document -ftree-loop-distribution.
6248         * tree-loop-distribution.c: New.
6249         * tree-pass.h (pass_loop_distribution): New.
6250         * graphds.h (struct graph): Add htab_t indices.
6251         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6252         * tree-vectorizer.c (rename_variables_in_loop): Extern.
6253         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6254         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6255         * tree-data-ref.c (debug_data_dependence_relations): New.
6256         (dump_data_dependence_relation): Also print data references.
6257         (free_data_ref): Extern.
6258         (same_access_functions): Moved...
6259         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6260         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6261         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6262         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6263         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6264         (stmts_from_loop): Skip LABEL_EXPR.
6265         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6266         New.
6267         (build_rdg): Initialize rdg->indices htab.
6268         (free_rdg, stores_from_loop, ref_base_address,
6269         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6270         have_similar_memory_accesses_1, ref_base_address_1,
6271         remove_similar_memory_refs): New.
6272         * tree-data-ref.h: Depend on tree-chrec.h.
6273         (debug_data_dependence_relations, free_data_ref): Declared.
6274         (same_access_functions): ... here.
6275         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6276         New.
6277         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6278         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6279         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6280         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6281         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6282         rdg_vertex_for_stmt): Declared.
6283         (struct rdg_edge): Add level.
6284         (RDGE_LEVEL): New.
6285         (free_rdg, stores_from_loop, remove_similar_memory_refs,
6286         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6287         Declared.
6288         (rdg_has_similar_memory_accesses): New.
6289         * tree-vect-analyze.c: Remove unused static decls.
6290         * lambda.h (dependence_level): New.
6291         * common.opt (ftree-loop-distribution): New.
6292         * tree-flow.h (mark_virtual_ops_in_bb, 
6293         slpeel_tree_duplicate_loop_to_edge_cfg,
6294         rename_variables_in_loop): Declared.
6295         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6296         (OBJS-common): Add tree-loop-distribution.o.
6297         (tree-loop-distribution.o): New rule.
6298         * tree-cfg.c (mark_virtual_ops_in_bb): New.
6299         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6300         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6301
6302 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
6303
6304         PR target/33963
6305         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6306         other than structures and unions.
6307
6308 2008-02-28  Richard Guenther  <rguenther@suse.de>
6309
6310         Revert:
6311         2008-02-26  Richard Guenther  <rguenther@suse.de>
6312
6313         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6314         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6315         (lookup_decl_from_uid): Declare.
6316         (remove_decl_from_map): Likewise.
6317         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6318         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6319         (decl_for_uid_map): New global hashtable mapping DECL_UID
6320         to the decl tree.
6321         (init_ttree): Allocate it.
6322         (insert_decl_to_uid_decl_map): New helper function.
6323         (make_node_stat): Insert new decls into the map.
6324         (copy_node_stat): Likewise.
6325         (lookup_decl_from_uid): New function.
6326         (remove_decl_from_map): Likewise.
6327         (print_decl_for_uid_map_statistics): New helper.
6328         (dump_tree_statistics): Call it.
6329
6330         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6331         (referenced_var_iterator): Adjust.
6332         (FOR_EACH_REFERENCED_VAR): Adjust.
6333         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6334         (num_referenced_vars): Adjust.
6335         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6336         (first_referenced_var): Remove.
6337         (end_referenced_vars_p): Likewise.
6338         (next_referenced_var): Likewise.
6339         (referenced_var_iterator_set): New helper function.
6340         * tree-dfa.c (referenced_var_lookup): Adjust.
6341         (referenced_var_check_and_insert): Likewise.
6342         (remove_referenced_var): Likewise.
6343         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6344         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6345         (verify_call_clobbering): Likewise.
6346         (verify_memory_partitions): Likewise.
6347         (init_tree_ssa): Allocate bitmap instead of hashtable for
6348         referenced_vars.
6349         (delete_tree_ssa): Adjust.
6350         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6351         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6352         (compute_tag_properties): Likewise.
6353         (set_initial_properties): Likewise.
6354         (find_partition_for): Likewise.
6355         (update_reference_counts): Likewise.
6356         (dump_may_aliases_for): Likewise.
6357         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6358         (add_call_clobber_ops): Likewise.
6359         (add_call_read_ops): Likewise.
6360         (get_asm_expr_operands): Likewise.
6361         * tree-into-ssa.c (dump_decl_set): Likewise.
6362         (update_ssa): Likewise.
6363         * tree-sra.c (scan_function): Likewise.
6364         (decide_instantiations): Likewise.
6365         (scalarize_parms): Likewise.
6366         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6367         (dsa_named_for): Likewise.
6368         * tree-ssa-structalias.c (update_alias_info): Likewise.
6369         (merge_smts_into): Likewise.
6370
6371 2008-02-27  David Daney  <ddaney@avtrex.com>
6372
6373         PR target/34409
6374         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6375         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6376         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6377         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6378         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6379
6380 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
6381
6382         PR target/25477
6383         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6384         (BUILT_IN_NEXTTOWARD): Remove.
6385         (BUILT_IN_NEXTTOWARDF): Ditto.
6386         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6387         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
6388
6389 2008-02-27  Tom Tromey  <tromey@redhat.com>
6390
6391         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6392         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6393
6394 2008-02-27  Jan Beulich  <jbeulich@novell.com>
6395
6396         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6397         update the respective field on newdecl.
6398
6399 2008-02-27  Revital Eres  <eres@il.ibm.com>
6400
6401         PR rtl-optimization/34999
6402         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6403         crossing edges that ends with a call insn.
6404         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6405         call insn and clear the EDGE_CROSSING flag of the crossing edge
6406         when fixing fallthru edges.
6407
6408 2008-02-27  Richard Guenther  <rguenther@suse.de>
6409
6410         PR middle-end/35390
6411         * fold-const.c (fold_unary): Return the correct argument,
6412         converted to the result type.
6413
6414 2008-02-27  Richard Guenther  <rguenther@suse.de>
6415
6416         PR middle-end/34971
6417         * expr.c (expand_expr_real_1): Assert on rotates that operate
6418         on partial modes.
6419         * fold-const.c (fold_binary): Use the types precision, not the
6420         bitsize of the mode if folding rotate expressions.  Build rotates
6421         only for full modes.
6422
6423 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
6424
6425         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6426         and CPP_PRAGMA_EOL.
6427         * c-pragma.c (pragma_ns_name): New typedef.
6428         (registered_pp_pragmas): New variable.
6429         (c_pp_lookup_pragma): New function.
6430         (c_register_pragma_1): If flag_preprocess_only, do nothing
6431         for non-expanded pragmas, for expanded ones push pragma's
6432         namespace and name into registered_pp_pragmas vector.
6433         (c_invoke_pragma_handler): Register OpenMP pragmas even when
6434         flag_preprocess_only, don't register GCC pch_preprocess
6435         pragma if flag_preprocess_only.
6436         * c-opts.c (c_common_init): Call init_pragma even if
6437         flag_preprocess_only.
6438         * c-pragma.c (c_pp_lookup_pragma): New prototype.
6439         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6440         cpp_register_pragma if flag_preprocess_only.
6441
6442 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6443
6444         PR c/28800
6445         * c-parser.c (c_parser_translation_unit): Warn for empty
6446         translation unit, not empty source file.
6447
6448 2008-02-26  Paul Brook  <paul@codesourcery.com>
6449
6450         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6451         operand for Thumb-2.
6452         * config/arm/arm.h (reg_class): Add CORE_REGS.
6453         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6454         (BASE_REG_CLASS): Use CORE_REGS.
6455         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6456         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6457         (REGNO_OK_FOR_INDEX_P): Exclude SP.
6458         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
6459         ARM_REGNO_OK_FOR_INDEX_P.
6460         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6461         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6462         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6463         (ldm/stm peepholes): Ditto.
6464         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6465         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6466         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6467         * config/arm/constraints.md: Enable "k" constraint on ARM.
6468
6469 2008-02-27  Ben Elliston  <bje@au.ibm.com>
6470
6471         * config/rs6000/rs6000.c: Annotate cache line size field in all
6472         instances of struct processor_costs.
6473
6474 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
6475
6476         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6477         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6478         jump_bypass): New counters.
6479         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6480         * dce.c (gate_ud_dce): Same.
6481         (gate_fast_dce): Same.
6482         * dse.c (gate_dse1): New function.
6483         (gate_dse2): New function.
6484         (gate_dse): Merge results of new gate functions.
6485         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6486         (gate_handle_jump_bypass): Add dbg_cnt.
6487         (gate_handle_gcse): Add dbg_cnt.
6488         * ifcvt.c (gate_handle_if_conversion): Same.
6489         (gate_handle_if_after_combine): Same.
6490         (gate_handle_if_after_reload): Same.
6491         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6492
6493 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
6494
6495         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6496         line sizes.
6497         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6498
6499 2008-02-26  Jason Merrill  <jason@redhat.com>
6500
6501         PR c++/35315
6502         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
6503         alone if it's the naming decl for the type's main variant.
6504
6505 2008-02-26  Tom Tromey  <tromey@redhat.com>
6506
6507         * system.h (USE_MAPPED_LOCATION): Poison.
6508         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6509         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6510         (make_goto_expr_edges): Likewise.
6511         (remove_bb): Likewise.
6512         (execute_warn_function_return): Likewise.
6513         * basic-block.h (struct edge_def) <goto_locus>: Change type to
6514         location_t.
6515         * c-common.c (fname_decl): Remove old location code.
6516         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6517         location code.
6518         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6519         variant.
6520         (ASM_INPUT_SOURCE_LOCATION): Likewise.
6521         (gen_rtx_ASM_INPUT): Likewise.
6522         (gen_rtx_ASM_INPUT_loc): Likewise.
6523         (get_rtx_asm_OPERANDS): Remove.
6524         * cfglayout.c (insn_locators_alloc): Remove old location code.
6525         (set_curr_insn_source_location): Likewise.
6526         (curr_insn_locator): Likewise.
6527         * print-tree.c (print_node): Remove old location code.
6528         * tree-mudflap.c (mf_varname_tree): Remove old location code.
6529         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6530         * cfgexpand.c (expand_gimple_cond_expr): Don't use
6531         location_from_locus.
6532         (construct_exit_block): Remove old location code.
6533         * emit-rtl.c (force_next_line_note): Remove old location code.
6534         * profile.c (branch_prob): Remove old location code.
6535         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6536         LOC_LINE): Remove old-location variants.
6537         * langhooks.c (lhd_print_error_function): Remove old location
6538         code.
6539         * configure, config.in: Rebuilt.
6540         * configure.ac (--enable-mapped-location): Remove.
6541         * c-decl.c (c_init_decl_processing): Remove old location code.
6542         (finish_function): Likewise.
6543         * recog.c (decode_asm_operands): Remove old location code.
6544         * c-pch.c (c_common_read_pch): Remove old location code.
6545         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6546         variants.
6547         * gimple-low.c (lower_function_body): Remove old location code.
6548         * toplev.c (unknown_location): Remove.
6549         (push_srcloc): Remove old-location variant.
6550         (process_options): Remove old location code.
6551         (lang_dependent_init): Likewise.
6552         * input.h (UNKNOWN_LOCATION): Move definition.
6553         (location_t): Undeprecate.
6554         (source_locus): Remove.
6555         (location_from_locus): Remove.
6556         (struct location_s): Remove.
6557         Remove all old-location code.
6558         (input_line, input_filename): Remove.
6559         * final.c (final_scan_insn): Remove old location code.
6560         * diagnostic.c (diagnostic_build_prefix): Remove
6561         USE_MAPPED_LOCATION test.
6562         * tree.h (gimple_stmt) <locus>: Now a location_t.
6563         (tree_exp) <locus>: Likewise.
6564         (DECL_IS_BUILTIN): Remove old-location variant.
6565         (annotate_with_file_line, annotate_with_locus): Likewise.
6566         (expr_locus, set_expr_locus): Update.
6567         * tree.c (build1_stat): Remove old location code.
6568         (last_annotated_node): Remove.
6569         (annotate_with_file_line): Remove old-location variant.
6570         (annotate_with_locus): Likewise.
6571         (expr_location): Remove old location code.
6572         (set_expr_location): Likewise.
6573         (expr_has_location): Likewise.
6574         (expr_locus): Likewise.
6575         (set_expr_locus): Likewise.
6576         (expr_filename): Don't use location_from_locus.
6577         (expr_lineno): Likewise.
6578         * rtl-error.c (location_for_asm): Remove old location code.
6579         * c-lex.c (cb_line_change): Remove old location code.
6580         (fe_file_change): Likewise.
6581         (cb_def_pragma): Likewise.
6582         (c_lex_with_flags): Likewise.
6583         * gengtype.c (do_typedef): Don't special-case location types.
6584         (define_location_structures): Remove.
6585         (main): Don't call define_location_structures.
6586         * tree-pretty-print.c (dump_implicit_edges): Remove old location
6587         code.
6588
6589 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6590
6591         PR 26264
6592         * builtins.def (BUILT_IN_STDARG_START): Remove.
6593         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6594         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6595         * tree-inline.c (inline_forbidden_p_1): Likewise.
6596         
6597 2008-02-26  Richard Guenther  <rguenther@suse.de>
6598
6599         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6600         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6601         (lookup_decl_from_uid): Declare.
6602         (remove_decl_from_map): Likewise.
6603         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6604         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6605         (decl_for_uid_map): New global hashtable mapping DECL_UID
6606         to the decl tree.
6607         (init_ttree): Allocate it.
6608         (insert_decl_to_uid_decl_map): New helper function.
6609         (make_node_stat): Insert new decls into the map.
6610         (copy_node_stat): Likewise.
6611         (lookup_decl_from_uid): New function.
6612         (remove_decl_from_map): Likewise.
6613         (print_decl_for_uid_map_statistics): New helper.
6614         (dump_tree_statistics): Call it.
6615
6616         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6617         (referenced_var_iterator): Adjust.
6618         (FOR_EACH_REFERENCED_VAR): Adjust.
6619         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6620         (num_referenced_vars): Adjust.
6621         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6622         (first_referenced_var): Remove.
6623         (end_referenced_vars_p): Likewise.
6624         (next_referenced_var): Likewise.
6625         (referenced_var_iterator_set): New helper function.
6626         * tree-dfa.c (referenced_var_lookup): Adjust.
6627         (referenced_var_check_and_insert): Likewise.
6628         (remove_referenced_var): Likewise.
6629         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6630         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6631         (verify_call_clobbering): Likewise.
6632         (verify_memory_partitions): Likewise.
6633         (init_tree_ssa): Allocate bitmap instead of hashtable for
6634         referenced_vars.
6635         (delete_tree_ssa): Adjust.
6636         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6637         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6638         (compute_tag_properties): Likewise.
6639         (set_initial_properties): Likewise.
6640         (find_partition_for): Likewise.
6641         (update_reference_counts): Likewise.
6642         (dump_may_aliases_for): Likewise.
6643         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6644         (add_call_clobber_ops): Likewise.
6645         (add_call_read_ops): Likewise.
6646         (get_asm_expr_operands): Likewise.
6647         * tree-into-ssa.c (dump_decl_set): Likewise.
6648         (update_ssa): Likewise.
6649         * tree-sra.c (scan_function): Likewise.
6650         (decide_instantiations): Likewise.
6651         (scalarize_parms): Likewise.
6652         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6653         (dsa_named_for): Likewise.
6654         * tree-ssa-structalias.c (update_alias_info): Likewise.
6655         (merge_smts_into): Likewise.
6656
6657 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6658
6659         PR 34351
6660         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
6661         * c-opts.c (c_common_handle_option): Wall enables
6662         Wvolatile-register-var.
6663         * common.opt: Move Wvolatile-register-var to...
6664         * c.opt: ...here.
6665         
6666 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6667
6668         * common.opt (Wlarger-than=): New.
6669         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
6670         -Wlarger-than=.
6671         * opts.c (common_handle_option): Handle -Wlarger-than=.
6672         * optc-gen.awk: Likewise.
6673         * opth-gen.awk: Likewise.
6674         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
6675         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6676         
6677 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6678
6679         * c-common.c (match_case_to_enum_1): Add appropriate
6680         OPT_W* parameter to warning.
6681         (c_do_switch_warnings): Likewise.
6682         * c-typeck.c (warning_init): Add one more parameter following
6683         'warning' function.
6684         (push_init_level): Update call to warning_init.
6685         (pop_init_level): Likewise.
6686         (add_pending_init): Likewise.
6687         (output_init_element: Likewise.
6688
6689 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6690
6691         PR 28322
6692         * toplev.c (toplev_main): If there are warnings or error, print
6693         errors for ignored options.
6694         * opts.c (ignored_options): New static variable.
6695         (postpone_unknown_option_error): New.
6696         (print_ignored_options): New.
6697         (handle_option): Postpone errors for unknown -Wno-* options.
6698         * opts.h (print_ignored_options): Declare.
6699         
6700 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6701
6702         * config/mips/mips.md (loadgp_blockage, blockage): Change type
6703         to "ghost".
6704
6705 2008-02-25  Richard Guenther  <rguenther@suse.de>
6706
6707         Revert:
6708         2008-02-25  Richard Guenther  <rguenther@suse.de>
6709
6710         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6711         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6712         (lookup_decl_from_uid): Declare.
6713         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6714         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6715         (decl_for_uid_map): New global hashtable mapping DECL_UID
6716         to the decl tree.
6717         (init_ttree): Allocate it.
6718         (insert_decl_to_uid_decl_map): New helper function.
6719         (make_node_stat): Insert new decls into the map.
6720         (copy_node_stat): Likewise.
6721         (lookup_decl_from_uid): New function.
6722         (print_decl_for_uid_map_statistics): New helper.
6723         (dump_tree_statistics): Call it.
6724
6725         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6726         (referenced_var_iterator): Adjust.
6727         (FOR_EACH_REFERENCED_VAR): Adjust.
6728         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6729         (num_referenced_vars): Adjust.
6730         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6731         (first_referenced_var): Remove.
6732         (end_referenced_vars_p): Likewise.
6733         (next_referenced_var): Likewise.
6734         (referenced_var_iterator_set): New helper function.
6735         * tree-dfa.c (referenced_var_lookup): Adjust.
6736         (referenced_var_check_and_insert): Likewise.
6737         (remove_referenced_var): Likewise.
6738         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6739         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6740         (verify_call_clobbering): Likewise.
6741         (verify_memory_partitions): Likewise.
6742         (init_tree_ssa): Allocate bitmap instead of hashtable for
6743         referenced_vars.
6744         (delete_tree_ssa): Adjust.
6745         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6746         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6747         (compute_tag_properties): Likewise.
6748         (set_initial_properties): Likewise.
6749         (find_partition_for): Likewise.
6750         (update_reference_counts): Likewise.
6751         (dump_may_aliases_for): Likewise.
6752         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6753         (add_call_clobber_ops): Likewise.
6754         (add_call_read_ops): Likewise.
6755         (get_asm_expr_operands): Likewise.
6756         * tree-into-ssa.c (dump_decl_set): Likewise.
6757         (update_ssa): Likewise.
6758         * tree-sra.c (scan_function): Likewise.
6759         (decide_instantiations): Likewise.
6760         (scalarize_parms): Likewise.
6761         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6762         (dsa_named_for): Likewise.
6763         * tree-ssa-structalias.c (update_alias_info): Likewise.
6764         (merge_smts_into): Likewise.
6765
6766 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
6767
6768         PR fortran/29549
6769         * doc/invoke.texi (-fcx-limited-range): Document new option.
6770         * toplev.c (process_options): Handle -fcx-fortran-rules.
6771         * common.opt: Add documentation for -fcx-fortran-rules.
6772
6773 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
6774
6775         PR c/35162
6776         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
6777         actual behaviour and C99.
6778         
6779 2008-02-26  Ben Elliston  <bje@au.ibm.com>
6780
6781         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
6782         (ASM_CPU_POWER6_SPEC): Likewise.
6783         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
6784         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
6785         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
6786
6787 2008-02-25  Richard Guenther  <rguenther@suse.de>
6788
6789         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6790         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6791         (lookup_decl_from_uid): Declare.
6792         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6793         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6794         (decl_for_uid_map): New global hashtable mapping DECL_UID
6795         to the decl tree.
6796         (init_ttree): Allocate it.
6797         (insert_decl_to_uid_decl_map): New helper function.
6798         (make_node_stat): Insert new decls into the map.
6799         (copy_node_stat): Likewise.
6800         (lookup_decl_from_uid): New function.
6801         (print_decl_for_uid_map_statistics): New helper.
6802         (dump_tree_statistics): Call it.
6803
6804         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6805         (referenced_var_iterator): Adjust.
6806         (FOR_EACH_REFERENCED_VAR): Adjust.
6807         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6808         (num_referenced_vars): Adjust.
6809         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6810         (first_referenced_var): Remove.
6811         (end_referenced_vars_p): Likewise.
6812         (next_referenced_var): Likewise.
6813         (referenced_var_iterator_set): New helper function.
6814         * tree-dfa.c (referenced_var_lookup): Adjust.
6815         (referenced_var_check_and_insert): Likewise.
6816         (remove_referenced_var): Likewise.
6817         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6818         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6819         (verify_call_clobbering): Likewise.
6820         (verify_memory_partitions): Likewise.
6821         (init_tree_ssa): Allocate bitmap instead of hashtable for
6822         referenced_vars.
6823         (delete_tree_ssa): Adjust.
6824         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6825         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6826         (compute_tag_properties): Likewise.
6827         (set_initial_properties): Likewise.
6828         (find_partition_for): Likewise.
6829         (update_reference_counts): Likewise.
6830         (dump_may_aliases_for): Likewise.
6831         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6832         (add_call_clobber_ops): Likewise.
6833         (add_call_read_ops): Likewise.
6834         (get_asm_expr_operands): Likewise.
6835         * tree-into-ssa.c (dump_decl_set): Likewise.
6836         (update_ssa): Likewise.
6837         * tree-sra.c (scan_function): Likewise.
6838         (decide_instantiations): Likewise.
6839         (scalarize_parms): Likewise.
6840         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6841         (dsa_named_for): Likewise.
6842         * tree-ssa-structalias.c (update_alias_info): Likewise.
6843         (merge_smts_into): Likewise.
6844
6845 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
6846
6847         PR target/35258
6848         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
6849         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
6850         * alias.h (nonoverlapping_memrefs_p): Likewise.
6851
6852 2008-02-25  Jan Beulich  <jbeulich@novell.com>
6853
6854         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
6855         * config/i386/netware-libgcc.exp: Add __bswap?i2,
6856         __emultls_get_address, __emultls_register_common,
6857         __floatundi?f, and _Unwind_GetIPInfo.
6858         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
6859         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
6860         (gen_regparm_prefix): Likewise.
6861         (i386_nlm_encode_section_info): Sync with
6862         config/i386/winnt.c:i386_pe_encode_section_info().
6863         (i386_nlm_maybe_mangle_decl_assembler_name): New.
6864         i386_nlm_mangle_decl_assembler_name): New.
6865         (netware_override_options): New.
6866         * config/i386/netware.h (netware_override_options): Declare.
6867         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
6868         (i386_nlm_mangle_decl_assembler_name): Declare.
6869         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
6870
6871 2008-02-25  Ben Elliston  <bje@au.ibm.com>
6872
6873         PR other/32948
6874         * c-decl.c (grokdeclarator): Remove unused local variables
6875         `typedef_type' and `type_as_written'.
6876         * bb-reorder.c
6877         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
6878         unused local variable `has_hot_blocks'.
6879         (fix_crossing_conditional_branches): Remove unused local variable
6880         `prev_bb'.
6881         
6882 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
6883
6884         PR middle-end/19984
6885         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
6886         using DEF_C99_BUILTIN.
6887         (BUILT_IN_NANF): Ditto.
6888         (BUILT_IN_NANL): Ditto.
6889
6890 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
6891             Revital Eres  <eres@il.ibm.com>
6892
6893         * modulo-sched.c (calculate_must_precede_follow): Address TODO
6894         regarding the order of two dependent insns in the same row.
6895
6896 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6897
6898         * stor-layout.c (layout_decl): Do not bump the alignment of a
6899         bit-field to more than byte alignment if it is packed.
6900
6901 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
6902
6903         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
6904         e300c2 and e300c3.
6905
6906 2008-02-24  Diego Novillo  <dnovillo@google.com>
6907
6908         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
6909
6910         PR 33738
6911         * tree-vrp.c (vrp_evaluate_conditional): With
6912         -Wtype-limits, emit a warning when comparing against a
6913         constant outside the natural range of OP0's type.
6914         * c.opt (Wtype-limits): Move ...
6915         * common.opt (Wtype-limits): ... here.
6916
6917 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
6918
6919         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
6920         * config/rs6000/e300c2c3.md: New file.
6921         * config/rs6000/rs6000.c (processor_costs): Add new costs for
6922         e300c2 and e300c3.
6923         (rs6000_override_options): Add e300c2 and e300c3 cases to
6924         processor_target_table. Do not allow usage of Altivec or Spe
6925         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
6926         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
6927         * config/rs6000/rs6000.h (processor_type): Add
6928         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
6929         (ASM_CPU_SPEC): Add e300c2 and e300c3.
6930         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
6931         and ppce300c3. Include e300c2c3.md.
6932
6933 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
6934
6935         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
6936         instead of TARGET_STRICT_ALIGN.
6937
6938 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
6939
6940         * explow.c (memory_address): Assert that the generated address is
6941         valid.
6942
6943 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6944
6945         PR target/25477
6946         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
6947         * config/darwin-ppc-ldouble-patch.def: New file.
6948         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
6949         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
6950         SUBTARGET_INIT_BUILTINS if defined.
6951         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
6952         New functions.
6953
6954 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6955
6956         PR rtl-opt/33512
6957         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
6958         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
6959
6960 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6961
6962         PR pch/35027
6963         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
6964         file" warning condtional on -Winvalid-PCH.
6965
6966 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
6967
6968         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
6969
6970 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
6971
6972         PR target/22076
6973         PR target/34256 
6974         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
6975         prevent reload from using MMX registers.
6976         (*mov<mode>_internal): Ditto.
6977         (*movv2sf_internal_rex64): Ditto.
6978         (*movv2sf_internal): Ditto.
6979
6980 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6981
6982         PR documentation/31569
6983         * doc/install.texi2html: Use makeinfo --no-number-sections.
6984
6985 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6986
6987         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
6988         ensure that we can address an entire entity > 8 bytes.  Don't
6989         generate reg+reg addressing for such data.
6990
6991 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6992
6993         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
6994         strings when optimizing for size, unless the target cares about
6995         alignment.
6996
6997 2008-02-22  Tom Tromey  <tromey@redhat.com>
6998
6999         * regclass.c (current_pass): Remove declaration.
7000
7001 2008-02-22  Anatoly Sokolov <aesok@post.ru>
7002
7003         * config/avr/libgcc.S (__RAMPZ__): Define.
7004         (__do_copy_data): Add for devices with 128KB code memory.
7005
7006 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7007
7008         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
7009         Use spe_abi.
7010         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7011
7012 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
7013
7014         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
7015         GENNONACR_REGS.
7016
7017 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7018
7019         PR c/19999
7020         * c-typeck.c (build_binary_op): Warn about floating point
7021         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
7022
7023 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
7024
7025         PR target/34526
7026         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
7027         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
7028         add vrsave.
7029         (rs6000_override_options): Set altivec_abi as default, not override,
7030         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
7031         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
7032         is used; use new member spe_abi.
7033         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
7034         spe_abi and altivec_abi.
7035
7036 2008-02-22  Tomas Bily  <tbily@suse.cz>
7037
7038         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
7039
7040 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7041
7042         PR bootstrap/35273
7043         * config.build (build_file_translate): Set to `CMD //c' only if
7044         it works.
7045         * Makefile.in (build_file_translate): Improve comment.
7046
7047 2008-02-21  Jan Hubicka  <jh@suse.cz>
7048
7049         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
7050         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
7051         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
7052
7053 2008-02-21  Michael Matz  <matz@suse.de>
7054
7055         PR target/35264
7056         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
7057
7058 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
7059
7060         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
7061         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
7062         as insn constraint.
7063         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
7064         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
7065         SSE_VEC_FLOAT_MODE_P as insn constraint.
7066         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
7067         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
7068         sse4a_movntdf using MODEF mode iterator.
7069         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
7070         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
7071         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
7072         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
7073         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
7074         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
7075         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
7076
7077 2008-02-21  Richard Guenther  <rguenther@suse.de>
7078
7079         * tree.def (PAREN_EXPR): New tree code.
7080         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
7081         and PAREN_EXPR.
7082         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
7083         * expr.c (expand_expr_real_1): Likewise.
7084         * tree-inline.c (estimate_num_insns_1): Likewise.
7085         * tree-complex.c (expand_complex_move): Likewise.
7086         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
7087         as plain x.
7088
7089 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7090
7091         PR target/35225
7092         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
7093
7094 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7095
7096         PR target/35190
7097         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7098
7099         * config/sh/sh.c (find_barrier): Don't go past
7100         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7101
7102 2008-02-20  DJ Delorie  <dj@redhat.com>
7103
7104         * config/h8300/h8300.md (insv): Force source operand to be a register.
7105
7106         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7107         as a jump, not as a plain insn.
7108         
7109 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
7110
7111         * doc/invoke.texi (Warning Options): Add new option
7112         -Wframe-larger-than=.
7113         (-Wframe-larger-than): Document.
7114
7115         * flags.h (warn_frame_larger_than, frame_larger_than_size):
7116         Add declarations for new option variables.
7117
7118         * final.c (final_start_function): Check the frame size
7119         before emission and issue a Wframe-larger-than warning.
7120
7121         * opts.c (warn_frame_larger_than, frame_larger_than_size):
7122         Add definitions for new option variables.
7123         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7124
7125         * common.opt (Wframe-larger-than=): New option.
7126
7127 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7128
7129         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7130         (<sse>_div<mode>3): Ditto.
7131         (<sse>_vmdiv<mode>3): Ditto.
7132         (<sse>_vmsqrt<mode>2): Ditto.
7133         (*smax<mode>3): Ditto.
7134         (sse5_frcz<mode>2): Ditto.
7135         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
7136         as insn constraint.
7137
7138 2008-02-20  Richard Guenther  <rguenther@suse.de>
7139
7140         PR middle-end/35265
7141         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7142         be happy with INTEGRAL_TYPE_P.
7143
7144 2008-02-20  Richard Guenther  <rguenther@suse.de>
7145
7146         * fold-const.c (split_tree): Associate floatig-point expressions
7147         if flag_associative_math is set.
7148
7149 2008-02-20  Richard Guenther  <rguenther@suse.de>
7150
7151         * tree.h (fold_real_zero_addition_p): Declare.
7152         * fold-const.c (fold_real_zero_addition_p): Export.
7153         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7154         floating-point operations with zero and one.
7155
7156 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
7157
7158         * doc/install.texi: Correct references to CFLAGS, replacing them
7159         with BOOT_CFLAGS.  Document flags used during bootstrap for
7160         target libraries.
7161                                 
7162 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7163
7164         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7165         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7166         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7167         insn constraint.
7168         (smin<mode>3): Ditto from similar patterns.
7169         (smax<mode>3): Ditto.
7170         (*ieee_smin<mode>3): Ditto.
7171         (*ieee_smax<mode>3): Ditto.
7172         * config/i386/sse.md (sse): New mode attribute.
7173         (mov<mode>): Macroize expander from movv4sf and movv2df using
7174         SSEMODEF2P mode iterator.
7175         (<sse>_movnt<mode>): Ditto from similar patterns. Use
7176         SSE_VEC_FLOAT_MODE_P as insn constraint.
7177         (storent<mode>): Ditto.
7178         (storent<mode>): Macroize expander from storentsf and storentdf using
7179         MODEF mode iterator.
7180         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7181         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7182         (abs<mode>2): Ditto from similar patterns.
7183         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7184         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7185         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7186         (<sse>_vmsqrt<mode>2): Ditto.
7187         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7188         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7189         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7190         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7191         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7192         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7193         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7194         insn constraint.
7195         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7196         iterator and SSE_FLOAT_MODE_P as insn constraint.
7197         (<sse>_ucomi): Ditto from similar patterns.
7198         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7199         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7200         SSE_VEC_FLOAT_MODE_P as insn constraint.
7201         (vcond<mode>): Ditto from similar patterns.
7202         (and<mode>3, *and<mode>3): Ditto.
7203         (<sse>_nand<mode>3): Ditto.
7204         (ior<mode>3, *ior<mode>3): Ditto.
7205         (xor<mode>3, *xor<mode>3): Ditto.
7206         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7207         iterator and SSE_FLOAT_MODE_P as insn constraint.
7208         (*nand<mode>3): Ditto from similar patterns.
7209         (*ior<mode>3): Ditto.
7210         (*xor<mode>3): Ditto.
7211
7212 2008-02-20  Ira Rosen  <irar@il.ibm.com>
7213
7214         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7215         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7216         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7217
7218 2008-02-19  Jan Hubicka  <jh@suse.cz>
7219
7220         * predict.c (tree_bb_level_predictions): Remove variable next
7221         mistakely introduced by previous commit.
7222
7223 2008-02-19  Jan Hubicka  <jh@suse.cz>
7224
7225         * predict.c (predict_paths_leading_to): Rewrite.
7226         (predict_paths_for_bb): New.
7227         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7228
7229 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7230
7231         PR bootstrap/35218
7232         * Makefile.in (build_file_translate): New.
7233         (gcc-vers.texi): Use it for translating $(abs_srcdir).
7234         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7235         * configure.ac (build_file_translate): Substitute it.
7236         * configure: Regenerate.
7237
7238 2008-02-19  Jan Hubicka  <jh@suse.cz>
7239
7240         PR rtl-optimization/34408
7241         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7242         invalid sharing.
7243
7244 2008-02-19  Jan Hubicka  <jh@suse.cz>
7245
7246         PR middle-end/28779
7247         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7248         call_expr.
7249
7250 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7251
7252         PR Ada/35186
7253         * config/i386/i386-modes.def: Revert the last DI alignment
7254         change until Ada people can look into it.
7255
7256 2008-02-19  Nick Clifton  <nickc@redhat.com>
7257
7258         * opts.c (print_specific_help): Fix typo in --help text.
7259
7260 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
7261
7262         PR target/35239
7263         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7264         32-bit inline asm without asm alternatives for host GCC < 3.0.
7265
7266 2008-02-19  Richard Guenther  <rguenther@suse.de>
7267
7268         PR tree-optimization/34989
7269         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7270         Allow propagation to INDIRECT_REF if we can simplify only.
7271
7272 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7273
7274         * c-common.c (warn_for_collisions_1): Use appropriate option when
7275         warning.
7276
7277 2008-02-19  Nick Clifton  <nickc@redhat.com>
7278
7279         PR other/31349
7280         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
7281         (handle_options): Fix indentation.
7282         (print_filtered_help): If no language-specific options were
7283         displayed tell the user how to list all the options supported by
7284         the language's front-end.
7285         (print_specific_help): Fix indentation and remove duplicate line.
7286         (common_handle_option): Handle the -v option.
7287         For --help enable the display of undocumented options if the -v
7288         switch has been included on the command line.
7289         For --help= check for overlaps in the arguments between the option
7290         classes and the language names and issue a warning when they
7291         cannot be disambiguated.
7292         * c.opt (v): Pass on to the common option handler.
7293
7294 2008-02-19  Revital Eres  <eres@il.ibm.com> 
7295
7296         * modulo-sched.c (sms_schedule): Change dump message when
7297         create_ddg function fails.
7298         (try_scheduling_node_in_cycle): Rename row to cycle.
7299         (print_partial_schedule): Rename CYCLE to ROW.
7300
7301 2008-02-19  Christian Bruel  <christian.bruel@st.com>
7302             Zdenek Dvorak  <ook@ucw.cz>
7303
7304         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7305
7306 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         PR target/33555
7309         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7310         (*x86_movdicc_0_m1_se): Ditto.
7311
7312 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7313
7314         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7315         (CMPtype): Define as __gcc_CMPtype.
7316         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7317         (CMPtype): Define as __gcc_CMPtype.
7318
7319 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
7320
7321         Support valgrind 3.3 for --enable-checking=valgrind.
7322         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7323         here.
7324         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7325         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7326         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7327         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7328         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7329         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7330         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7331         respectively.
7332         * ggc-zone.c: Similar.
7333         * ggc-page.c: Similar.
7334
7335 2008-02-19  Paul Brook  <paul@codesourcery.com>
7336
7337         PR target/35071
7338         * config/arm/ieee754-df.S: Fix do_it typo.
7339         * config/arm/ieee754-sf.S: Fix do_it typo.
7340
7341 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7342
7343         PR target/35189
7344         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7345         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7346         (OPTION_MASK_ISA_SSE_SET): Likewise.
7347         (OPTION_MASK_ISA_SSE2_SET): Likewise.
7348         (OPTION_MASK_ISA_SSE3_SET): Likewise.
7349         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7350         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7351         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7352         (OPTION_MASK_ISA_SSE4_SET): Likewise.
7353         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7354         (OPTION_MASK_ISA_SSE5_SET): Likewise.
7355         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7356         (OPTION_MASK_ISA_MMX_UNSET): Updated.
7357         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7358         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7359         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7360         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7361         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7362         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7363         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7364         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7365         (OPTION_MASK_ISA_SSE4): Removed.
7366         (ix86_handle_option): Turn on bits in ix86_isa_flags and
7367         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
7368         (override_options): Don't turn on implied SSE/MMX bits in
7369         ix86_isa_flags.
7370
7371 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7372
7373         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7374         32bit host.
7375
7376 2008-02-18  Joey Ye  <joey.ye@intel.com>
7377
7378         PR middle-end/34921
7379         * tree-nested.c (insert_field_into_struct): Set type alignment
7380         to field alignment if the former is less than the latter.
7381
7382 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
7383
7384         * BASE-VER: Set to 4.4.0.
7385
7386 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7387
7388         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7389         * doc/cfg.texi: Likewise.
7390         * doc/extend.texi: Likewise.
7391         * doc/gty.texi: Likewise.
7392         * doc/invoke.texi: Likewise.
7393         * doc/loop.texi: Likewise.
7394         * doc/md.texi: Likewise.
7395         * doc/passes.texi: Likewise.
7396         * doc/rtl.texi: Likewise.
7397         * doc/sourcebuild.texi: Likewise.
7398         * doc/tm.texi: Likewise.
7399         * doc/tree-ssa.texi: Likewise.
7400
7401 2008-02-17  Richard Guenther  <rguenther@suse.de>
7402
7403         PR middle-end/35227
7404         * tree-complex.c (init_parameter_lattice_values): Handle parameters
7405         without default definition.
7406
7407 2008-02-17  Richard Guenther  <rguenther@suse.de>
7408
7409         PR tree-optimization/35231
7410         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7411         if A | B != 1.
7412
7413 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
7414
7415         Revert:
7416         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
7417         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7418         libgcc_cmp_return mode.
7419
7420 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7421
7422         PR c/28368
7423         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7424
7425 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
7426
7427         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7428         multilibs.
7429
7430 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7431
7432         * doc/c-tree.texi: Use `@.' where appropriate.
7433         * doc/extend.texi: Likewise.
7434         * doc/install.texi: Likewise.
7435         * doc/invoke.texi: Likewise.
7436         * doc/loop.texi: Likewise.
7437         * doc/makefile.texi: Likewise.
7438         * doc/md.texi: Likewise.
7439         * doc/passes.texi: Likewise.
7440         * doc/standards.texi: Likewise.
7441         * doc/tm.texi: Likewise.
7442
7443 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7444
7445         PR middle-end/35196
7446         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7447         in entry_bb.
7448         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7449         rather than in entry_bb.
7450
7451 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7452
7453         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7454         libgcc_cmp_return mode.
7455
7456 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7457
7458         PR middle-end/35130
7459         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7460         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7461
7462 2008-02-15  Richard Guenther  <rguenther@suse.de>
7463             Zdenek Dvorak  <ook@ucw.cz>
7464
7465         PR tree-optimization/35164
7466         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7467         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7468         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7469         Only propagate addresses which do not have abnormal SSA_NAMEs
7470         in their operands.
7471
7472 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
7473
7474         PR target/35088
7475         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7476
7477 2008-02-15  Jan Hubicka  <jh@suse.cz>
7478
7479         PR middle-end/35149
7480         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7481
7482 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7483
7484         PR middle-end/34621
7485         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7486         when calculating alignment_pad.
7487
7488 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7489
7490         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7491         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7492         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7493         and STACK_BOUNDARY define.
7494
7495 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
7496
7497         PR preprocessor/35061
7498         * c-pragma.c (handle_pragma_pop_macro): Check that
7499         pushed_macro_table has been allocated.
7500
7501 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7502
7503         PR middle-end/35136
7504         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7505         (force_gimple_operand): Likewise.
7506         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7507         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7508         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7509         (find_interesting_uses_address): Check addressability and alignment
7510         of the base expression only after substituting bases of IVs into it.
7511
7512 2008-02-14  Michael Matz  <matz@suse.de>
7513
7514         PR target/34930
7515         * function.c (instantiate_virtual_regs_in_insn): Reload address
7516         before falling back to reloading the whole operand.
7517
7518 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7519
7520         * config/s390/s390.c (s390_mainpool_start): Emit the pool
7521         before the first section switch note.
7522
7523 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7524
7525         * doc/bugreport.texi: Update copyright years.
7526         * doc/c-tree.texi: Likewise.
7527         * doc/cfg.texi: Likewise.
7528         * doc/cpp.texi: Likewise.
7529         * doc/cppinternals.texi: Likewise.
7530         * doc/fragments.texi: Likewise.
7531         * doc/frontends.texi: Likewise.
7532         * doc/gcc.texi: Likewise.
7533         * doc/gty.texi: Likewise.
7534         * doc/hostconfig.texi: Likewise.
7535         * doc/implement-c.texi: Likewise.
7536         * doc/libgcc.texi: Likewise.
7537         * doc/loop.texi: Likewise.
7538         * doc/makefile.texi: Likewise.
7539         * doc/options.texi: Likewise.
7540         * doc/passes.texi: Likewise.
7541         * doc/rtl.texi: Likewise.
7542         * doc/sourcebuild.texi: Likewise.
7543         * doc/standards.texi: Likewise.
7544         * doc/tree-ssa.texi: Likewise.
7545         * doc/trouble.texi: Likewise.
7546
7547         * doc/extend.texi: Use @: or add comma where appropriate.
7548         * doc/invoke.texi: Likewise.
7549         * doc/tm.texi: Likewise.
7550
7551 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
7552
7553         PR target/34393
7554         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7555         to a reg.
7556
7557 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
7558
7559         * doc/md.texi (clz, ctz): Add reference.
7560         * doc/rtl.texi (clz, ctz): Likewise.
7561
7562 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7563
7564         PR other/35148
7565         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7566         srcdir.
7567
7568 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
7569
7570         * config/s390/s390.c (struct constant_pool): New field
7571         emit_pool_after added.
7572         (s390_mainpool_start): Set the emit_pool_after flag according
7573         to the section switch notes.
7574         (s390_mainpool_finish): Consider emit_pool_after when emitting
7575         the literal pool at the end of the function.
7576         (s390_chunkify_start): Force literal pool splits at section
7577         switch notes.
7578
7579 2008-02-13  Michael Matz  <matz@suse.de>
7580
7581         PR debug/35065
7582         * var-tracking.c (clobber_variable_part): Correctly traverse the
7583         list.
7584
7585 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7586
7587         PR 29673
7588         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7589         Add -fdump-ipa-inline.
7590         * tree-dump.c (dump_files): Remove tree-inlined dump.
7591         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7592         
7593 2008-02-12  Richard Guenther  <rguenther@suse.de>
7594
7595         PR tree-optimization/35171
7596         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7597         default defs.
7598
7599 2008-02-12  Richard Guenther  <rguenther@suse.de>
7600
7601         PR middle-end/35163
7602         * fold-const.c (fold_widened_comparison): Use get_unwidened in
7603         value-preserving mode.  Disallow final truncation.
7604
7605 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7606
7607         PR middle-end/35136
7608         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7609         code from here to...
7610         (force_gimple_operand): ...here.
7611
7612 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
7613
7614         PR c++/35144
7615         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7616         non-compatible pointers.
7617         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7618         different FIELD_DECLs, try harder by comparing field offsets, sizes
7619         and types.
7620
7621         PR inline-asm/35160
7622         * function.c (match_asm_constraints_1): Don't replace the same input
7623         multiple times.
7624
7625 2008-02-12  Anatoly Sokolov <aesok@post.ru>
7626
7627         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7628         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7629         (expand_epilogue): Restore RAMPZ register.
7630         * config/avr/avr.md (RAMPZ_ADDR): New constant.
7631
7632 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
7633
7634         * config/i386/cygwin.asm: (__alloca): Correct calling
7635         convention and alignment.
7636         (__chkstk): Force 8 byte stack alignment.
7637
7638 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
7639             Richard Guenther  <rguenther@suse.de>
7640
7641         PR tree-optimization/33992
7642         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
7643         the zero we compare against.
7644
7645 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7646
7647         PR libfortran/35063
7648         * gthr-win32.h (__gthread_mutex_destroy_function): New function
7649         to CloseHandle after unlocking to prevent accumulation of handle
7650         count.
7651
7652 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7653
7654         PR middle_end/34150
7655         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
7656         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
7657         and update LABEL_NUSES during and after reload.
7658
7659 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
7660
7661         PR middle-end/34627
7662         * combine.c (simplify_if_then_else): Make sure the comparison is
7663         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
7664
7665 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7666
7667         PR bootstrap/35051
7668         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
7669         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
7670         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
7671         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
7672         * tree.h (get_type_static_bounds): Likewise.
7673
7674 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7675
7676         * doc/invoke.texi (Option Summary, C++ Dialect Options)
7677         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7678         Make -Wfoo language annotations match what the compiler outputs.
7679
7680 2008-02-08  Sa Liu  <saliu@de.ibm.com>
7681
7682         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
7683         intrinsics spu_convts, spu_convtu, spu_convtf.
7684
7685 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
7686
7687         * doc/extend.texi (Function Attributes) <noinline>: Mention
7688         asm ("") as method to keep calls.
7689
7690 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7691
7692         PR other/32754
7693         * doc/options.texi (Options): Replace references to opts.sh with
7694         optc-gen.awk.
7695         * opts-common.c: Likewise.
7696         * optc-gen.awk: Likewise.
7697         
7698 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7699
7700         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
7701
7702 2008-02-07  Richard Henderson  <rth@redhat.com>
7703
7704         PR rtl-opt/33410
7705         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
7706         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
7707         funny mode.
7708
7709 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
7710
7711         PR tree-optimization/35085
7712         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
7713         for operand entry oe2 in addition to operand entry oe3 in order to
7714         expose more opportunities for vectorizer sum reduction.
7715
7716 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7717
7718         PR other/35107
7719         * Makefile.in (LIBS): Remove $(GMPLIBS).
7720         (cc1-dummy, cc1): Add $(GMPLIBS).
7721
7722 2008-02-06  Jan Hubicka  <jh@suse.cz>
7723
7724         PR target/23322
7725         * i386.md (moddf_integer): Do not produce partial memory stalls for
7726         targets where it hurts.
7727
7728 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
7729
7730         PR target/35083
7731         * optabs.c (expand_float): Do not check for decimal modes when
7732         expanding unsigned integer through signed conversion.
7733
7734 2008-02-06  Nick Clifton  <nickc@redhat.com>
7735
7736         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
7737         inside the clobber with a match_operand and duplicated operand
7738         number in the constraint.
7739         (ineqbranchsi): Delete redundant comment.
7740
7741 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
7742
7743         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
7744         builtin_define ("__USE_INIT_FINI__").
7745         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
7746         -msx multilibs.
7747         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
7748
7749 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7750
7751         PR documentation/30330
7752         * doc/invoke.texi (C++ Dialect Options)
7753         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7754         For each warning option -Wfoo that allows -Wno-foo, ensure both
7755         -Wfoo and -Wno-foo are listed in the option index.  Fix index
7756         entry of -Wswitch-default, index -Wnormalized= including the
7757         `=', and -Wlarger-than-@var{len} including @var{len}.
7758
7759 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
7760
7761         * config/i386/i386.md (floatunssisf2): Use
7762         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
7763         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
7764         Macroize expander using MODEF mode iterator.
7765
7766 2008-02-05  Diego Novillo  <dnovillo@google.com>
7767
7768         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
7769
7770         PR 33738
7771         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
7772
7773 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7774
7775         PR other/35070
7776         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
7777
7778 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
7779
7780         PR target/35084
7781         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
7782         to indicate if a message should be generated.
7783         (init_cumulative_args): Updated.
7784         (function_value_32): Likewise.
7785
7786 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
7787
7788         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
7789
7790 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
7791
7792         PR target/35083
7793         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
7794         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
7795
7796 2008-02-04  Diego Novillo  <dnovillo@google.com>
7797
7798         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
7799
7800         PR 33738
7801         * tree-vrp.c (vrp_evaluate_conditional): With
7802         -Wtype-limits, emit a warning when comparing against a
7803         constant outside the natural range of OP0's type.
7804
7805 2008-02-04  Richard Guenther  <rguenther@suse.de>
7806
7807         PR middle-end/33631
7808         * expr.c (count_type_elements): Give for unions instead of
7809         guessing.
7810
7811 2008-02-04  Richard Guenther  <rguenther@suse.de>
7812
7813         PR middle-end/35043
7814         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
7815         to TYPE_DOMAINs base type instead of using bitsizetype here.
7816
7817 2008-02-03  Jason Merrill  <jason@redhat.com>
7818
7819         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
7820
7821 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7822
7823         PR other/29972
7824         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
7825         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
7826         (RS/6000 and PowerPC Options): Fix typos and markup.
7827         * doc/passes.texi (Tree-SSA passes): Likewise.
7828
7829 2008-02-02  Michael Matz  <matz@suse.de>
7830
7831         PR target/35045
7832         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
7833         from record_last_reg_set_info.
7834         (record_last_reg_set_info): Take an RTX argument, iterate over all
7835         constituent hardregs.
7836         (record_last_set_info, record_opr_changes): Change calls to
7837         new signature or to record_last_reg_set_info_regno.
7838
7839 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7840
7841         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
7842
7843 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
7844
7845         PR rtl-optimization/34773
7846         * reg-notes.def (EQUAL): Mention significance of combination of
7847         REG_EQUAL and REG_RETVAL.
7848         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
7849         insn that has a REG_RETVAL.
7850
7851 2008-02-01  Roger Sayle  <roger@eyesopen.com>
7852
7853         PR bootstrap/33781
7854         * configure.ac (--enable-fixed-point): Disable unless explicitly
7855         requested on IRIX.
7856         * configure: Regenerate.
7857
7858 2008-02-01  Richard Guenther  <rguenther@suse.de>
7859
7860         PR other/35042
7861         * invoke.texi (-finline-limit): Remove no longer true parts
7862         of the documentation.  Note that there is no default value.
7863
7864 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
7865             Mark Mitchell  <mark@codesourcery.com>
7866             Ben Elliston  <bje@au.ibm.com>
7867
7868         PR c/29326
7869         * doc/extend.texi (Other Builtins): Document.
7870
7871 2008-01-31  Tom Browder <tom.browder@gmail.com>
7872
7873         * doc/c-tree.texi (Types): Fix grammar.
7874         (Expression trees): Ditto.
7875         * doc/passes.texi (Tree-SSA passes): Ditto.
7876         
7877         * doc/configterms.texi (Configure Terms): Fix typo.
7878         * doc/cpp.texi (Common Predefined Macros): Ditto.
7879         * doc/md.texi (Machine Constraints): Ditto.
7880         
7881         * doc/makefile.texi (Makefile): Add comma.
7882
7883 2008-01-31  Tom Browder  <tom.browder@gmail.com>
7884             Gerald Pfeifer  <gerald@pfeifer.com>
7885         
7886         * doc/sourcebuild.texi (Front End): Remove references to CVS
7887         and CVSROOT/modules.
7888         (Texinfo Manuals): Replace reference to CVS by one to SVN.
7889         (Back End): Remove reference to CVS.
7890
7891 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
7892
7893         PR target/34900
7894         * config/mips/mips.c (gen_load_const_gp): New function, taking a
7895         comment from...
7896         (mips16_gp_pseudo_reg): ...here.
7897         * config/mips/mips.md (load_const_gp): Replace with...
7898         (load_const_gp_<mode>): ...this :P-based insn.
7899
7900 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7901
7902         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
7903         options. Minor fixes.
7904         (-std): Move reference to standards closer to where language
7905         standards are first mentioned.
7906         
7907 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
7908
7909         PR rtl-optimization/34995
7910         * reload.c (alternative_allows_const_pool_ref): Take an rtx
7911         parameter and return a bool.  If the rtx parameter is nonnull,
7912         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
7913         (find_reloads): Update call accordingly.  Pass the new operand
7914         if it needed no address reloads, otherwise pass null.
7915
7916 2008-01-30  Richard Henderson  <rth@redhat.com>
7917
7918         PR c/34993
7919         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
7920         for unbounded arrays.
7921
7922 2008-01-30  Silvius Rus  <rus@google.com>
7923
7924         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
7925
7926 2008-01-30  Jan Hubicka  <jh@suse.cz>
7927
7928         PR target/34982
7929         * i386.c (init_cumulative_args): Use real function declaration when
7930         calling locally.
7931
7932 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
7933
7934         PR rtl-optimization/34998
7935         * global.c (build_insn_chain): Treat non-subreg_lowpart
7936         SUBREGs of pseudos as clobbering all the words covered by the
7937         SUBREG, not just all the bytes.
7938         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
7939         original df_ref rather than an extract parameter.
7940         (global_conflicts): Update call accordingly.
7941
7942 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
7943
7944         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
7945         the overflow check to make it easier to read.
7946         (__fixtfdi): Change the type of the ll member in union
7947         long_double to UDItype_x.
7948
7949 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
7950
7951         PR middle-end/34969
7952         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
7953         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
7954         * tree-inline.c (fold_marked_statements): Call
7955         cgraph_update_edges_for_call_stmt if folding a call statement.
7956         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
7957         debug_generic_stmt calls, reset it back afterwards.
7958
7959         PR c/35017
7960         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
7961         static decls.
7962         * c-typeck.c (build_external_ref): Don't pedwarn about
7963         static vars in current function's scope.
7964
7965 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
7966
7967         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
7968
7969 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
7970
7971         PR c/35002
7972         * ipa-struct-reorg.c: Fix spelling.
7973         * params.def: Ditto.
7974
7975 2008-01-29  Richard Guenther  <rguenther@suse.de>
7976
7977         PR middle-end/35006
7978         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
7979         field.
7980         * tree-inline.c (remap_type): Increment remapping_type_depth
7981         around remapping types.
7982         (copy_body_r): Only add referenced variables if they are referenced
7983         from code, not types.
7984
7985 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
7986
7987         PR c++/34055
7988         PR c++/34103
7989         PR c++/34219
7990         PR c++/34606
7991         PR c++/34753
7992         PR c++/34754
7993         PR c++/34755
7994         PR c++/34919
7995         PR c++/34961
7996         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
7997         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
7998
7999 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
8000
8001         PR target/34412
8002         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
8003         pointer for tiny stack.
8004
8005 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
8006
8007         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
8008
8009 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
8010
8011         * config/vx-common.h: Fix typo in comment.
8012
8013 2008-01-28  Ian Lance Taylor  <iant@google.com>
8014
8015         PR c++/34862
8016         PR c++/33407
8017         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8018         coalesce pointers if they have different DECL_NO_TBAA_P values.
8019         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
8020         between variables with different DECL_NO_TBAA_P values.
8021
8022 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
8023
8024         PR 31535
8025         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
8026         are not legitimate small data references on SPE targets.
8027
8028 2008-01-28  David Daney  <ddaney@avtrex.com>
8029
8030         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
8031
8032 2008-01-28  David Daney  <ddaney@avtrex.com>
8033
8034         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
8035
8036 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
8037
8038         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
8039         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
8040         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
8041         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
8042         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8043         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
8044         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
8045         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
8046
8047 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8048
8049         * basic-block.h (condjump_equiv_p): Fix comment.
8050
8051 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8052
8053         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
8054         print_generic_stmt_indented): Fix comment.
8055
8056 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8057
8058         * configure.ac (__stack_chk_fail): Add detecion for availability
8059         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
8060         * configure: Regenerate.
8061
8062 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
8063
8064         PR middle-end/34688
8065         * final.c (output_addr_const): Handle TRUNCATE.
8066
8067 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
8068
8069         PR target/34711
8070         * tree-ssa-loop-ivopts.c (comp_cost): New type.
8071         (zero_cost, infinite_cost): New constants.
8072         (struct cost_pair): Change type of cost to comp_cost.
8073         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
8074         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
8075         New functions.
8076         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
8077         split_address_cost, ptr_difference_cost, difference_cost,
8078         get_computation_cost_at, get_computation_cost,
8079         determine_use_iv_cost_generic, determine_use_iv_cost_address,
8080         determine_use_iv_cost_condition, determine_use_iv_costs,
8081         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
8082         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
8083         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
8084         Change type of cost to comp_cost.
8085         (determine_iv_cost): Increase cost of non-original ivs, instead
8086         of decreasing the cost of original ones.
8087         (get_address_cost): Indicate the complexity of the addressing mode 
8088         in comp_cost.
8089         (try_add_cand_for): Prefer using ivs not specific to some object.
8090         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
8091
8092 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
8093             Janis Johnson  <janis187@us.ibm.com>
8094
8095         PR target/34814
8096         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8097         (TARGET_INSTANTIATE_DECLS): Likewise.
8098         * target.h (expand_to_rtl_hook): New target hook.
8099         (instantiate_decls): Likewise.
8100         * function.c (instantiate_decl): Make non-static.  Rename to...
8101         (instantiate_decl_rtl): ... this.
8102         (instantiate_expr): Use instantiate_decl_rtl.
8103         (instantiate_decls_1): Likewise.
8104         (instantiate_decls): Likewise.
8105         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8106         * function.h (instantiate_decl_rtl): Add prototype.
8107         * cfgexpand.c (target.h): New include.
8108         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8109         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8110         (TARGET_INSTANTIATE_DECLS): Likewise.
8111         (TARGET_INITIALIZER): New target hooks added.
8112         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8113         New prototype.
8114         * config/rs6000/rs6000.c (tree-flow.h): New include.
8115         (machine_function): Add sdmode_stack_slot field.
8116         (rs6000_alloc_sdmode_stack_slot): New function.
8117         (rs6000_instantiate_decls): Likewise.
8118         (rs6000_secondary_memory_needed_rtx): Likewise.
8119         (rs6000_check_sdmode): Likewise.
8120         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8121         (TARGET_INSTANTIATE_DECLS): Likewise.
8122         (rs6000_hard_regno_mode_ok): Allow SDmode.
8123         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
8124         (rs6000_emit_move): Handle SDmode.
8125         (function_arg_advance): Likewise.
8126         (function_arg): Likewise.
8127         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
8128         SDmode var args for 32-bit compiles.
8129         (rs6000_secondary_reload_class): Handle SDmode.
8130         (rs6000_output_function_epilogue): Likewise.
8131         (rs6000_function_value): Simplify if statement.
8132         (rs6000_libcall_value): Likewise.
8133         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8134         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8135         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8136         (movsd_hardfloat): New define_insn.
8137         (movsd_softfloat): Likewise.
8138         (movsd_store): Likewise.
8139         (movsd_load): Likewise.
8140         (extendsddd2): Likewise.
8141         (extendsdtd2): Likewise.
8142         (truncddsd2): Likewise.
8143         (movdd_hardfloat64): Fixup comment.
8144         (UNSPEC_MOVSD_LOAD): New constant.
8145         (UNSPEC_MOVSD_STORE): Likewise.
8146
8147 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
8148
8149         PR c++/34965
8150         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8151         TRUTH_XOR_EXPR.
8152         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8153         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8154         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8155         and TRUTH_XOR_EXPR.
8156
8157 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
8158
8159         PR target/34794
8160         * config.gcc: Separate AIX 5.3 from AIX 6.1.
8161         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8162         __LONGDOUBLE128 too.
8163         * config/rs6000/aix61.h: New file.
8164
8165 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8166
8167         PR rtl-optimization/34959
8168         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8169         popcount and parity rtxes the same mode as their operand.
8170         Truncate or extend the result to the return value's mode
8171         if necessary.
8172
8173 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8174
8175         PR target/34981
8176         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8177         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8178         to GOT_VERSION_REGNUM.
8179         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8180         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8181         * config/mips/mips.c (mips_emit_call_insn): New function.
8182         (mips_call_tls_get_addr): Call mips_expand_call directly.
8183         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8184         emit_call_insn.
8185         (mips16_build_call_stub): Likewise.  Return the call insn or null.
8186         (mips_expand_call): Update the call to mips16_build_call_stub
8187         accordingly and a remove redundant condition.  Assert that MIPS16
8188         stubs do not use lazy binding.  Use mips_emit_call_insn and return
8189         the call insn.
8190         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8191         TARGET_USE_GOT.
8192         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8193         (mips_avoid_hazard): Remove hazard_set handling.
8194         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8195         (UNSPEC_RESTORE_GP): ...this.
8196         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8197         (FAKE_CALL_REGNO): Rename to...
8198         (GOT_VERSION_REGNUM): ...this.
8199         (type): Add "ghost" value.  Add an associated insn reservation.
8200         (hazard_set): Remove.
8201         (exception_receiver): Rename to...
8202         (restore_gp): ...this and update the unspec identifier accordingly.
8203         (exception_receiver, nonlocal_got_receiver): New expanders.
8204         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
8205         FAKE_CALL_REGNO.  Remove hazard_set attribute.
8206         (set_got_version, update_got_version): New patterns.
8207
8208 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
8209
8210         PR target/34970
8211         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8212
8213 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8214
8215         PR other/31955
8216         * doc/install.texi2html: Generate gcc-vers.texi.
8217
8218 2008-01-25  DJ Delorie  <dj@redhat.com>
8219
8220         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8221
8222 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8223
8224         * config/c4x: Remove directory.
8225         * config.gcc (crx-*, mt-*): Mark obsolete.
8226         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8227         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8228         sh-*-rtemscoff*): Remove cases.
8229         * defaults.h (C4X_FLOAT_FORMAT): Remove.
8230         * real.c (encode_c4x_single, decode_c4x_single,
8231         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8232         c4x_extended_format): Remove.
8233         * real.h (c4x_single_format, c4x_extended_format): Remove.
8234         * doc/extend.texi (interrupt, naked): Remove mention of attributes
8235         on C4x.
8236         (Pragmas): Remove comment about c4x pragmas.
8237         * doc/install.texi (c4x): Remove target-specific instructions.
8238         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8239         * doc/md.texi (Machine Constraints): Remove C4x documentation.
8240         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8241         refer to C4x source files as examples.
8242         (C4X_FLOAT_FORMAT): Remove documentation.
8243
8244 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
8245
8246         * config/bfin/bfin.c (override_options): Reorder tests so that
8247         flag_pic gets enabled for -msep-data.
8248
8249 2008-01-25  Richard Guenther  <rguenther@suse.de>
8250
8251         PR middle-end/32244
8252         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8253         to its bitfield precision if required.
8254
8255 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8256
8257         PR middle-end/33880
8258         * tree-nested.c (walk_omp_for): New function.
8259         (convert_nonlocal_reference, convert_local_reference): Call
8260         walk_omp_for on OMP_FOR.
8261         (convert_call_expr): Call walk_body on OMP_FOR's
8262         OMP_FOR_PRE_INIT_BODY.
8263
8264 2008-01-25  Richard Guenther  <rguenther@suse.de>
8265
8266         PR tree-optimization/34966
8267         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8268         default defs and PHI_NODEs we have to insert after the
8269         defining statement.
8270
8271 2008-01-24  Nick Clifton  <nickc@redhat.com>
8272
8273         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8274         Provide a default definition.
8275         (LIBGCC2_UNITS_PER_WORD): Likewise.
8276
8277         * config/stormy16/stormy16.c: Include df.h for the prototype
8278         for df_regs_ever_live_p.
8279         (xstormy16_expand_builtin_va_start): Convert the stack offset
8280         into a component_ref and then use POINTER_PLUS_EXPR to add it
8281         to the incoming_virtual_args_rtx.
8282         (xstormy16_gimplify_va_arg_expr): Rename to
8283         xstormy16_gimplify_va_arg_expr.
8284         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8285         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8286         xstormy16_gimplify_va_arg_expr.
8287         Fix up some formatting issues.
8288
8289         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8290         Move to predicates.md.
8291         (xs_hi_general_operand): Likewise.
8292         (xs_hi_nonmemory_operand): Likewise.
8293         * config/stormy16/predicates.md:
8294         (xstormy16_carry_plus_operand): New predicate.
8295         (xs_hi_general_operand): New predicate.
8296         (xs_hi_nonmemory_operand): New predicate.
8297         * config/stormy16/stormy16-protos.h:
8298         (xstormy16_carry_plus_operand): Delete prototype.
8299         (xs_hi_general_operand): Likewise.
8300         (xs_hi_nonmemory_operand): Likewise.
8301
8302         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8303         modifiers as they are no longer needed and they can trigger
8304         reload spill failures.
8305
8306         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8307         with a match_operand in order to help reload.
8308
8309         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8310         constraint with 'e' for the 8th alternative as this version of
8311         the mov.w instruction only accepts the lower 8 registers.
8312
8313 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
8314
8315         PR target/34856
8316         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8317         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8318         vector elements.
8319
8320 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8321
8322         PR middle-end/33333
8323         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8324
8325 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8326
8327         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8328         New functions.
8329         (remove_structure): Update allocations list before removing structure.
8330         
8331 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8332
8333         * ipa-struct-reorg.c (is_safe_cond_expr, 
8334         create_new_stmts_for_cond_expr): Use integer_zerop function,
8335         that recognize not only zero-pointer, but zero-integer too.
8336
8337 2008-01-25  Ben Elliston  <bje@au.ibm.com>
8338
8339         PR other/22232
8340         * fixproto: Escape "." in sed expression that strips leading "./".
8341
8342 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8343
8344         PR driver/34904
8345         * gcc.c (SWITCH_OK): Removed.
8346         (SWITCH_LIVE): Changed to bit.
8347         (SWITCH_FALSE): Likewise.
8348         (SWITCH_IGNORE): Likewise.
8349         (switchstr): Change live_cond to unsigned int.
8350         (process_command): Replace SWITCH_OK with 0.
8351         (do_self_spec): Likewise.
8352         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8353         (give_switch): Likewise.
8354         (used_arg): Likewise.
8355         (do_spec_1): Set the SWITCH_IGNORE bit.
8356         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8357         bits.  Set the SWITCH_LIVE bit.
8358
8359 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8360
8361         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8362
8363 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
8364
8365         PR tree-optimization/34472
8366         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8367         parameter to a "bool *" and set *DATA to false if there is
8368         an unsafe access.  Do not delete the structure here.
8369         (check_cond_exprs): Delete it here instead.
8370         (check_cond_exprs, exclude_cold_structs): Do not increase
8371         I when removing a structure.
8372
8373 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
8374
8375         PR target/34856
8376         * config/i386/i386.c (ix86_expand_vector_init): Consider only
8377         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8378
8379 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
8380
8381         PR middle-end/34934
8382         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8383         a fixed vector for stack.
8384
8385 2008-01-24  Ben Elliston  <bje@au.ibm.com>
8386
8387         PR c++/25701
8388         * doc/gcc.texi (Software development): Add a direntry for g++.
8389         
8390 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
8391
8392         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8393         stale and straggling -fforce-addr comments above.
8394
8395         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8396         define.
8397         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8398         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8399
8400 2008-01-23  Michael Matz  <matz@suse.de>
8401
8402         PR debug/34895
8403         * dwarf2out.c (force_type_die): Use modified_type_die instead of
8404         gen_type_die.
8405
8406 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
8407
8408         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8409         malloc result type.
8410
8411 2008-01-23 Anatoly Sokolov <aesok@post.ru>
8412
8413         * config/avr/avr.c (avr_current_arch): New variable.
8414         (avr_arch_types): Add 'avr31' and 'avr51' entries.
8415         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8416         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8417         (avr_override_options): Init 'avr_current_arch'. 
8418         (base_arch_s): Move from here...
8419         * config/avr/avr.h (base_arch_s): ... here. Add new members 
8420         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
8421         'mega' to 'have_jmp_call'.
8422         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
8423         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
8424         macros.
8425         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
8426         architectures.
8427         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
8428         MULTILIB_MATCHES): (Ditto.).
8429
8430 2008-01-23  Richard Guenther  <rguenther@suse.de>
8431
8432         PR middle-end/31529
8433         * cgraphunit.c (cgraph_reset_node): Always mark the node
8434         not reachable if it is not queued already.
8435
8436 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
8437
8438         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8439         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8440         (cputype_selected): New static variable.
8441         (bfin_handle_option): Set it if -mcpu is used.
8442         (override_option): Select default set of workarounds if no cpu type
8443         selected on the command line.
8444         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
8445
8446         From  Michael Frysinger  <michael.frysinger@analog.com>
8447         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8448         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8449
8450         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8451         for bf547, bf523, bf524, and bf526.
8452         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
8453         bf526.
8454         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8455         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8456         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8457         __ADSPBF547__ and __ADSPBF54x__ for bf547.
8458         * doc/invoke.texi (Blackfin Options): Document that
8459         -mcpu now accept bf547, bf523, bf524, and bf526.
8460
8461 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8462
8463         PR rtl-optimization/34628
8464         * combine.c (try_combine): Stop and undo after the first combination
8465         if an autoincrement side-effect on the first insn has effectively
8466         been lost.
8467
8468 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
8469
8470         PR target/34529
8471         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8472         Offset addresses are not valid for Altivec or paired float modes.
8473
8474 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
8475
8476         PR c++/34607
8477         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8478         if DECL_INITIAL (decl) is error_mark_node.
8479
8480         PR c++/34914
8481         * c-common.c (handle_vector_size_attribute): Only allow
8482         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
8483         the same way as pointer, array etc. types.
8484         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8485
8486         PR c++/34917
8487         * tree.c (build_type_attribute_qual_variant): Call
8488         build_qualified_type if attributes are equal, but quals are not.
8489
8490 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8491
8492         PR 32102
8493         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8494         * flags.h (warn_strict_aliasing): Remove.
8495         (warn_strict_overflow): Remove.
8496         * opts.c (warn_strict_aliasing): Remove.
8497         (warn_strict_overflow): Remove.
8498         * c-opts.c (c_common_handle_option): -Wall only sets
8499         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8500         (c_common_post_options): Give default values to -Wstrict-aliasing
8501         and -Wstrict-overflow if they are uninitialized.
8502         * common.opt (Wstrict-aliasing): Specify Var and Init.
8503         (Wstrict-overflow): Likewise.
8504
8505 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
8506
8507         PR rtl-optimization/26854
8508         PR rtl-optimization/34400
8509         PR rtl-optimization/34884
8510         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8511         DF_RD->gen.
8512         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8513         (df_rd_bb_info.expanded_lr_out): Deleted
8514         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8515         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
8516         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8517         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8518         Removed code to allocate, initialize or free expanded_lr_out.
8519         (df_rd_bb_local_compute_process_def): Restructured to make more
8520         understandable.
8521         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8522         sets if the sets are being trimmed.
8523
8524 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8525
8526         PR bootstrap/32287
8527         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8528         (as_vers): Likewise.
8529         * configure: Regenerated.
8530
8531 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8532
8533         PR middle-end/33092
8534         * tree-pass.h (pass_build_alias): New pass.
8535         * tree-ssa-alias.c (gate_build_alias): New.
8536         (pass_build_alias): New.
8537         * passes.c (init_optimization_passes): Add pass_build_alias after
8538         pass_create_structure_vars.
8539
8540 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
8541
8542         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8543         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8544         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8545         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8546         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8547         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8548         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8549         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8550         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8551         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8552         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8553         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8554         * config/s390/s390.md (FP_ALL): New mode iterator.
8555         (_d): New mode attribute.
8556         ("*signbit<mode>2>"): Changed mode of first operand.
8557         ("isinf<mode>2"): Changed mode of first operand.
8558         ("*TDC_insn"): Adaptation for DFP modes.
8559
8560 2008-01-22  Ben Elliston  <bje@au.ibm.com>
8561
8562         * tree.c (check_qualified_type): Improve function description.
8563
8564 2008-01-21  Jason Merrill  <jason@redhat.com>
8565
8566         PR c++/34196
8567         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8568         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8569         if it is set.
8570
8571 2008-01-21  DJ Delorie  <dj@redhat.com>
8572
8573         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8574         return zero.
8575
8576 2008-01-21  Richard Guenther  <rguenther@suse.de>
8577
8578         PR middle-end/34856
8579         * tree-cfg.c (verify_expr): Allow all invariant expressions
8580         instead of just constant class ones as reference argument.
8581         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8582         like any other constant.
8583         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8584
8585 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
8586
8587         * regmove.c (fixup_match_1): Update call crossed frequencies.
8588
8589 2008-01-21  Richard Guenther  <rguenther@suse.de>
8590
8591         PR c/34885
8592         * tree-inline.c (setup_one_parameter): Deal with mismatched
8593         types using a VIEW_CONVERT_EXPR.
8594
8595 2008-01-21  Alon Dayan  <alond@il.ibm.com>
8596             Olga Golovanevsky  <olga@il.ibm.com>
8597         
8598         PR tree-optimization/34701
8599         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8600         when the structure size is not a power of 2.
8601
8602 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
8603
8604         * doc/install.texi: Add doc for --enable-checking=df.
8605         
8606 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8607
8608         PR rtl-optimization/34808
8609         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8610
8611 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8612
8613         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8614         input.
8615
8616 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
8617
8618         PR rtl-optimization/26854
8619         PR rtl-optimization/34400
8620         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8621         DF_RD->gen.
8622         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8623         (df_rd_bb_info.expanded_lr_out): New.
8624         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8625         * loop_iv.c (iv_analysis_loop_init): Ditto.
8626         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8627         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8628         Added code to allocate, initialize or free expanded_lr_out.
8629         (df_rd_bb_local_compute_process_def): Restructured to make
8630         more understandable.
8631         (df_rd_confluence_n): Add code to do nothing with fake edges and
8632         code to no apply invalidate_by_call sets if the sets are being trimmed.
8633         (df_lr_local_finalize): Renamed to df_lr_finalize.
8634         (df_live_local_finalize): Renamed to df_live_finalize.
8635
8636 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8637
8638         PR target/34831
8639         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
8640         deciding whether to use reciprocal instructions.
8641
8642 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
8643
8644         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
8645         dwarf2out_note_section_used if cold_text_section is NULL.
8646
8647 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
8648
8649         PR gcov-profile/34610
8650         * tree-cfg.c (make_edges): Mark both outgoing edges from
8651         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
8652         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
8653         from OMP_FOR and OMP_CONTINUE outgoing edges.
8654
8655         * tree-profile.c (tree_profiling): Return early if
8656         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
8657         at the end.
8658         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
8659         from cfun to child_cfun.
8660         * function.h (struct function): Add after_tree_profile bit.
8661
8662 2008-01-19 Anatoly Sokolov <aesok@post.ru>
8663
8664         * config/avr/avr.S (_exit): Disable interrupt.
8665
8666 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
8667             Steven Bosscher  <stevenb.gcc@gmail.com>
8668
8669         PR rtl-optimization/26854
8670         PR rtl-optimization/34400
8671         * df-problems.c (df_live_scratch): New scratch bitmap.
8672         (df_live_alloc): Allocate df_live_scratch when doing df_live.
8673         (df_live_reset): Clear the proper bitmaps.
8674         (df_live_bb_local_compute): Only process the artificial defs once
8675         since the order is not important.
8676         (df_live_init): Init the df_live sets only with the variables
8677         found live by df_lr.
8678         (df_live_transfer_function): Use the df_lr sets to prune the
8679         df_live sets as they are being computed.  
8680         (df_live_free): Free df_live_scratch.
8681
8682 2008-01-18  Ian Lance Taylor  <iant@google.com>
8683
8684         * common.opt: Add fmerge-debug-strings.
8685         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
8686         flag_merge_debug_strings rather than flag_merge_constants.
8687         * doc/invoke.texi (Option Summary): Mention
8688         -fmerge-debug-strings.
8689         (Debugging Options): Document -fmerge-debug-strings.
8690
8691 2008-01-18  Ian Lance Taylor  <iant@google.com>
8692
8693         PR c++/33407
8694         * tree.h (DECL_IS_OPERATOR_NEW): Define.
8695         (struct tree_function_decl): Add new field operator_new_flag.
8696         * tree-inline.c (expand_call_inline): When inlining a call to
8697         operator new, force the return value to go into a variable, and
8698         set DECL_NO_TBAA_P on that variable.
8699         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
8700
8701 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
8702
8703         PR debug/34484
8704         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
8705         DWARF2_DEBUGGING_INFO.
8706         (dwarf2out_note_section_used): Ditto.  Add prototype.
8707         (have_multiple_function_sections, text_section_used,
8708         cold_text_section_used, *cold_text_sections): Move declarations
8709         before their uses.
8710
8711 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
8712
8713         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
8714         field and add signal_ra.
8715         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
8716         assignments to frame state pc.  Move end of stack check after
8717         MD_FALLBACK_FRAME_STATE_FOR.
8718         (uw_update_context_1): Use frame state signal_regs if set, instead
8719         of checking signal_frame flag.
8720         (uw_update_context): Use frame state signal_ra if set.
8721         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
8722         * config/xtensa/linux-unwind.h: New file.
8723
8724 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
8725
8726         * modulo-sched.c (get_sched_window): Fix comment typo.
8727
8728 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
8729
8730         PR tree-optimization/34648
8731         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
8732
8733 2008-01-17  Anatoly Sokolov <aesok@post.ru>
8734
8735         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
8736         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
8737
8738 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
8739
8740         PR rtl-optimization/34400
8741         * df-core.c (df_worklist_dataflow_overeager,
8742         df_worklist_dataflow_doublequeue): New functions.
8743         (df_worklist_dataflow): Two different worklist solvers.
8744         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
8745         New param.
8746
8747 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8748
8749         PR testsuite/34821
8750         * doc/invoke.texi: Document the dependence on pthread for fopenmp
8751         and ftree-parallelize-loops.
8752
8753 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
8754
8755         PR rtl-optimization/34826
8756         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
8757
8758 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8759
8760         * global.c (find_reg): Mark the eh regs as used if necessary.
8761         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
8762         * ra.h (struct allocno): no_eh_reg field added.  Changed
8763         no_stack_reg type to bitfield.
8764
8765 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8766
8767         * tree.c (substitute_in_expr): Add missing 'break'.
8768
8769 2008-01-17  Richard Guenther  <rguenther@suse.de>
8770
8771         PR tree-optimization/34825
8772         * tree-ssa-math-opts.c (is_division_by): Do not recognize
8773         x / x as division to handle.
8774
8775 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8776
8777         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
8778         "-pthread" is specified.
8779         * pa-hpux11.h (LIB_SPEC): Likewise.
8780
8781 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
8782             Peter Bergner  <bergner@vnet.ibm.com>
8783
8784         PR rtl-optimization/33796
8785         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
8786
8787 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8788
8789         PR libgfortran/34699
8790         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
8791         static links.
8792         * pa-hpux10.h (LINK_SPEC): Likewise.
8793         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
8794
8795 2008-01-16  Richard Guenther  <rguenther@suse.de>
8796
8797         PR middle-end/32628
8798         * fold-const.c (fold_convert_const_int_from_int): Do not
8799         set overflow if that occured only because of a sign extension
8800         change when converting from/to a sizetype with the same
8801         precision and signedness.
8802
8803 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
8804
8805         PR debug/34249
8806         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
8807         location address to the correct place.  Update copyright year.
8808
8809 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8810
8811         * lambda-code.c (lambda_transform_legal_p): Handle the case of
8812         no dependences in the dependence_relations vector.
8813
8814 2008-01-16  Jan Hubicka  <jh@suse.cz>
8815
8816         PR rtl-optimization/31396
8817         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
8818         * cfg.c (dump_reg_info): Print it.
8819         * regs.h (struct reg_info_t): add freq_calls_crossed.
8820         (REG_FREQ_CALLS_CROSSED): New macro.
8821         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
8822         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
8823         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
8824         regmove_optimize): Update call crossed frequencies.
8825         * local-alloc.c (struct qty): Add freq_calls_crossed.
8826         (alloc_qty): Copute freq_calls_crossed.
8827         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
8828         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
8829         * ra.h (struct allocno): Add freq_calls_crossed.
8830
8831 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8832
8833         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
8834         libgomp when compiling with ftree-parallelize-loops.
8835         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
8836
8837 2008-01-16  Richard Guenther  <rguenther@suse.de>
8838
8839         PR tree-optimization/34769
8840         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
8841         * tree.c (int_cst_value): Instead make this function more
8842         permissive in what it accepts as valid input.  Document this
8843         function always sign-extends the value.
8844
8845 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
8846             Richard Guenther  <rguenther@suse.de>
8847
8848         PR c/34668
8849         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
8850         (gimple_fold_indirect_ref_rhs): ... this.
8851         (gimple_fold_indirect_ref): New function with foldings
8852         that preserve lvalueness.
8853         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
8854         * tree-flow.h (gimple_fold_indirect_ref): Declare.
8855         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
8856         to fold an INDIRECT_REF, fall back to the old use of
8857         fold_indirect_ref_1.
8858
8859 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8860
8861         * tree-data-ref.c (subscript_dependence_tester_1): Call 
8862         free_conflict_function.
8863         (compute_self_dependence): Same.
8864
8865 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
8866
8867         PR debug/34249
8868         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
8869         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
8870         function global.
8871         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
8872         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
8873         for DWARF2_UNWIND_INFO targets.
8874
8875 2008-01-16  Richard Guenther  <rguenther@suse.de>
8876
8877         PR c/34768
8878         * c-typeck.c (common_pointer_type): Do not merge inconsistent
8879         type qualifiers for function types.
8880
8881 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
8882
8883         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
8884         loop_iterator li from previous commit.
8885
8886 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
8887
8888         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
8889
8890 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
8891
8892         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
8893         (parallelize_loops): Don't parallelize irreducible components.
8894
8895 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8896
8897         PR c++/24924
8898         * c-opts (c_common_post_options): Do not enable CPP
8899         flag_pedantic_errors by default.
8900         
8901 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
8902
8903         PR rtl-optimization/31944
8904         * cse.c (remove_pseudo_from_table): New function.
8905         (merge_equiv_classes): Use above function to remove pseudo-registers.
8906         (invalidate): Likewise.
8907
8908 2008-01-13  Richard Guenther  <rguenther@suse.de>
8909
8910         PR middle-end/34601
8911         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
8912         instead of TYPE_MODE to deal with calls from expand_one_error_var.
8913
8914 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
8915
8916         * gcse.c (cprop_jump): Call validate_unshare_change instead of
8917         validate_change to unshare the source of the PC set.
8918
8919 2008-01-12  Jan Hubicka  <jh@suse.cz>
8920
8921         PR middle-end/32135
8922         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
8923         references above array bounds.  This might trigger bounds checks for
8924         pointers to arrays.
8925
8926 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
8927
8928         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
8929         new_replaceable_dependencies.
8930
8931 2008-01-12  Doug Kwan  <dougkwan@google.com>
8932
8933         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
8934         instead of OPT_Wreturn_type in warning due to ignored return type
8935         qualifiers.
8936         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
8937         options included in -Wextra.
8938         * c.opt: New option -Wignored_qualifiers.
8939         * doc/invoke.texi (Warning Options, -Wextra): Add new option
8940         -Wignore_qualifiers.
8941         (-Wignored-qualifiers): Document.
8942         (-Wreturn-type): Remove description of functionality now handled
8943         by -Wignored-qualifiers.
8944
8945 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8946
8947         PR ada/33788
8948         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
8949         NOP_EXPR if it is between integral types with the same precision.
8950
8951 2008-01-12  Jan Hubicka  <jh@suse.cz>
8952
8953         PR other/28023
8954         * invoke.texi (max-inline-recursive-depth): Fix default value.
8955
8956 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
8957
8958         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
8959         correct type.
8960
8961 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
8962         
8963         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
8964         
8965 2008-01-11  James E. Wilson  <wilson@specifix.com>
8966
8967         PR target/26015
8968         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
8969
8970 2008-01-11  Anatoly Sokolov <aesok@post.ru>
8971
8972         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
8973         save/restore frame pointer register and don't use 'call-prologues' 
8974         optimization in function with "OS_task" attribute.
8975
8976 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
8977
8978         PR middle-end/31309
8979         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
8980         when copying to memory.
8981
8982 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8983
8984         PR rtl-optimization/30905
8985         * cfgcleanup.c: Include dce.h
8986         (crossjumps_occured): New global variable.
8987         (try_crossjump_bb): Exit loop after finding a fallthru edge.
8988         If something changed, set crossjumps_occured to true.
8989         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
8990         Don't add/remove fake edges to exit here...
8991         (cleanup_cfg): ...but do it here, when crossjumping.
8992         Run a fast DCE when successful crossjumps occured in the latest
8993         iteration of try_optimize_cfg.
8994
8995 2008-01-11  Richard Guenther  <rguenther@suse.de>
8996
8997         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
8998         (struct vn_unary_op_s): Likewise.
8999         (vn_reference_insert): Free old reference on hash collision.
9000
9001 2008-01-10  Raksit Ashok  <raksit@google.com>
9002
9003         PR rtl-optimization/27971
9004         * combine.c (find_split_point): Split PLUS expressions which are
9005         inside a MEM rtx, and whose first operand is complex.
9006
9007 2008-01-10  DJ Delorie  <dj@redhat.com>
9008
9009         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
9010         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
9011         (m32c_hard_regno_ok): Call the underlying function.
9012
9013 2008-01-10  Richard Guenther  <rguenther@suse.de>
9014
9015         PR middle-end/34683
9016         * tree-cfg.c (tree_merge_blocks): Do not go through the
9017         full-blown folding and stmt updating path if we just deal
9018         with virtual operands.
9019         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
9020         test for abnormal SSA_NAMEs.
9021
9022 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9023
9024         PR middle-end/34641
9025         * reload.c (push_reload): Add assertions.  All constants from
9026         reg_equiv_constant should have been used for replacing the respective
9027         pseudo earlier.
9028         (find_reloads_address): Invoke find_reloads_address_part for
9029         constant taken from the reg_equiv_constant array.
9030
9031 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
9032
9033         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
9034         field (valnum) the first in the struct.  Replace bools with
9035         unit bit fields.
9036
9037 2008-01-10  Richard Guenther  <rguenther@suse.de>
9038
9039         PR tree-optimization/34651
9040         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
9041         types and ordering for masking and converting.
9042
9043 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
9044
9045         PR tree-optimization/34017
9046         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
9047         also for PHI_NODE expressions.
9048
9049 2008-01-09  Jan Hubicka  <jh@suse.cz>
9050
9051         PR tree-optimization/34708
9052         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
9053         based on number of case labels.
9054         (init_inline_once): Remove switch_cost.
9055         * tree-inline.h (eni_weights_d): Remove switch_cost.
9056
9057 2008-01-09  Richard Guenther  <rguenther@suse.de>
9058         Andrew Pinski  <andrew_pinski@playstation.sony.com>
9059
9060         PR middle-end/30132
9061         * gimplify.c (gimplify_cond_expr): Do not create an addressable
9062         temporary if an rvalue is ok or an lvalue is not required.
9063
9064 2008-01-09  Richard Guenther  <rguenther@suse.de>
9065
9066         PR middle-end/34458
9067         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
9068         adjust return type.
9069
9070 2008-01-09  Richard Guenther  <rguenther@suse.de>
9071
9072         PR middle-end/34679
9073         * tree.c (host_integerp): Check for sizetype only if the
9074         type is an integer type.
9075
9076 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
9077
9078         PR debug/26364
9079         * opts.c (decode_options): Disable inlining of functions called
9080         once if not in unit-at-a-time mode.
9081
9082 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
9083
9084         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
9085
9086 2008-01-08  Richard Guenther  <rguenther@suse.de>
9087
9088         PR middle-end/31863
9089         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
9090         out early if the result will be unused.
9091
9092 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9093
9094         PR target/34709
9095         Revert:
9096
9097         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9098         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9099         for TARGET_RECIP.       
9100         
9101 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
9102         
9103         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9104         for vectorization tuned.
9105         
9106 2008-01-08  Richard Guenther  <rguenther@suse.de>
9107
9108         PR tree-optimization/34683
9109         * tree-ssa-operands.c (operand_build_cmp): Export.
9110         * tree-ssa-operands.h (operand_build_cmp): Declare.
9111         * tree-vn.c (vuses_compare): Remove.
9112         (sort_vuses): Use operand_build_cmp.
9113         (sort_vuses_heap): Likewise.
9114         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9115         to re-use old VEC if available.  Do not sort already sorted VUSEs.
9116         (vdefs_to_vec): Do not sort already sorted VDEFs.
9117
9118 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
9119
9120         PR middle-end/34694
9121         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9122
9123 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9124
9125         PR target/34702
9126         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9127         limitations of reciprocal sequences on x86 targets.
9128
9129 2008-01-08  Richard Guenther  <rguenther@suse.de>
9130
9131         PR tree-optimization/34683
9132         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9133
9134 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
9135
9136         PR target/34622
9137         * config/darwin.c (darwin_mergeable_string_section): Don't use
9138         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9139
9140 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
9141
9142         PR target/34682
9143         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9144         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
9145         predicates of op0 and op1 to register_operand.
9146         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
9147         expander using X87MODEF mode iterator.  Change predicates of
9148         op0 and op1 to register_operand.
9149         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9150         corresponding patterns and macroize using MODEF macro.  Change
9151         predicates of op0 and op1 to register_operand and remove
9152         "m" constraint. Disparage "r" alternative with "!".
9153         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9154         macroize using X87MODEF macro.  Change predicates of op0 and op1
9155         to register_operand and remove "m" constraint.  Disparage "r"
9156         alternative with "!".
9157         (absneg splitter with memory operands): Remove.
9158         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9159         patterns and macroize using X87MODEF mode iterator.
9160         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9161         Change predicate of op1 to register_operand.
9162         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
9163         for memory operands.
9164
9165 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
9166
9167         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9168
9169 2008-01-07  Richard Guenther  <rguenther@suse.de>
9170
9171         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9172         fields.
9173
9174 2008-01-07  Richard Guenther  <rguenther@suse.de>
9175
9176         PR tree-optimization/34683
9177         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9178         VOPs of the needed size to save memory.  Use VEC_quick_push
9179         to save compile-time.
9180         (vdefs_to_vec): Likewise.
9181
9182 2008-01-07  Sa Liu  <saliu@de.ibm.com>
9183
9184         * config/spu/spu.md (divdf3): Genetate inline code for double
9185         division.  The implementation doesn't handle INF or NAN, therefore it
9186         only applies when -ffinite-math-only is given.
9187
9188 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
9189
9190         PR libstdc++/34680
9191         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9192         * doc/cpp.texi ([Common Predefined Macros]): Document.
9193
9194 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
9195
9196         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9197         order to use commutative addition instead of subtraction.
9198
9199 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9200             Mircea Namolaru  <namolaru@il.ibm.com>
9201             Vladimir Yanovsky  <yanov@il.ibm.com>
9202             Revital Eres  <eres@il.ibm.com>
9203
9204         PR tree-optimization/34263
9205         * tree-outof-ssa.c (process_single_block_loop_latch,
9206         contains_tree_r): New functions.
9207         (analyze_edges_for_bb): Call process_single_block_loop_latch
9208         function to empty single-basic-block latch block if possible.
9209
9210 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9211
9212         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9213         for TARGET_RECIP.
9214         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9215
9216 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9217
9218         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9219
9220 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9221
9222         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9223
9224 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
9225
9226         PR tree-optimization/34618
9227         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9228         flag from T.
9229
9230 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9231
9232         PR target/34673
9233         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9234         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
9235         Update copyright year.
9236
9237         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9238         Update copyright year.
9239         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9240         using NR fixup.
9241
9242 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
9243
9244         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9245         edge does not point to current bb before changing need_assert.
9246
9247 2008-01-04  Richard Guenther  <rguenther@suse.de>
9248
9249         PR middle-end/34029
9250         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9251         for verifying purposes if they are is_gimple_min_invariant.
9252
9253 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
9254
9255         PR tree-optimization/34448
9256         PR tree-optimization/34465
9257         * gimplify.c (gimplify_init_constructor): Add new parameter
9258         notify_temp_creation.  Use it.
9259         (gimplify_modify_expr_rhs): Take volatiles into account when
9260         optimizing constructors.
9261         Do not optimize constructors if gimplify_init_constructor will dump to
9262         memory.
9263         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9264         * gcc.c-torture/compile/pr34448.c: New.
9265
9266 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
9267
9268         PR gcov-profile/34609
9269         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9270         return_slot if result is TREE_ADDRESSABLE.
9271
9272 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
9273
9274         * config/mips/mips.md (sqrt_condition): Tweak comment.
9275         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
9276
9277 2008-01-03  Tom Tromey  <tromey@redhat.com>
9278
9279         PR c/34457
9280         * c-common.c (c_type_hash): Handle VLAs.
9281
9282 2008-01-03  Jan Hubicka  <jh@suse.cz>
9283
9284         PR tree-optimization/31081
9285         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9286         0 when inlining and not inlining to first basic block.
9287         (remap_decl): When var is initialized to 0, don't set default_def.
9288         (expand_call_inline): Set entry_bb.
9289         * tree-inline.h (copy_body_data): Add entry_bb.
9290
9291 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9292
9293         PR c++/34619
9294         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9295         before returning.
9296
9297         PR tree-optimization/29484
9298         * tree-inline.c (inline_forbidden_p_2): New function.
9299         (inline_forbidden_p): Disallow inlining if some static var
9300         has an address of a local LABEL_DECL in its initializer.
9301         * doc/extend.texi (Labels as Values): Document &&foo behaviour
9302         vs. inlining.
9303
9304 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9305
9306         PR tree-optimization/34635
9307         * tree-data-ref.c (add_other_self_distances): Make sure that the
9308         evolution step is constant.
9309
9310 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9311
9312         PR middle-end/34608
9313         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
9314
9315 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
9316
9317         * tree-sra.c (scalarize_init): Insert the generate_element_init
9318         statements after the generate_element_zero statements.
9319
9320 2008-01-02  Richard Guenther  <rguenther@suse.de>
9321
9322         PR middle-end/34093
9323         PR middle-end/31976
9324         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9325         for very large number of operands instead of ICEing.
9326
9327 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
9328
9329         PR target/34013
9330         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
9331         while stack probing.
9332
9333 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
9334
9335         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
9336         in C++0x mode.
9337
9338 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
9339
9340         PR libmudflap/26442
9341         * tree-mudflap.c (mx_register_decls): Guard warning by
9342         !DECL_ARTIFICIAL check.
9343
9344 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
9345
9346         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9347         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9348         sse5_perm<mode>): Fix constraints.