OSDN Git Service

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