OSDN Git Service

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