OSDN Git Service

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