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