1 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
4 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
6 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
9 * tree.c (build_type_attribute_qual_variant): Set canonical types
10 on the final, unqualified attribute variant before building the
13 2007-08-29 Jie Zhang <jie.zhang@analog.com>
15 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
16 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
18 2007-08-29 Jie Zhang <jie.zhang@analog.com>
21 2007-08-29 Jie Zhang <jie.zhang@analog.com>
22 * config/bfin/bfin.md (composev2hi): Put operands into vector
25 2007-08-29 Jie Zhang <jie.zhang@analog.com>
27 * config/bfin/bfin.md (composev2hi): Put operands into vector
30 2007-08-29 Jie Zhang <jie.zhang@analog.com>
32 * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
33 attribute when appropriate.
34 (bfin_handle_l1_text_attribute): New.
35 (bfin_handle_l1_data_attribute): New.
36 (bfin_attribute_table): Add attributes: l1_text, l1_data,
37 l1_data_A and l1_data_B.
38 * doc/extend.texi (node Function Attributes): Document l1_text
40 (Variable Attributes): Add Blackfin subsection. Document l1_data,
41 l1_data_A and l1_data_B variable attributes.
43 2007-08-28 Jie Zhang <jie.zhang@analog.com>
45 * config/bfin/bfin.opt (minline-plt): Add.
46 * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
47 call to global functions.
48 * doc/invoke.texi (Option Summary): Mention -minline-plt.
49 (Blackfin Options): Document -minline-plt.
51 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
53 * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
55 (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
57 2007-08-28 DJ Delorie <dj@redhat.com>
59 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
61 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
63 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
65 2007-08-28 Richard Guenther <rguenther@suse.de>
67 * tree.h (struct tree_function_decl): Increase size of
68 function_code bitfield.
70 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
71 Kazu Hirata <kazu@codesourcery.com>
73 * gcc/config/m68k/linux.h
74 (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
75 * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
76 (m68k_return_in_memory): New.
77 * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
80 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
83 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
84 Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
85 operand) when top VEC_SELECT extracts scalar element.
86 * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
87 (*vec_extract_v4sf_mem): Ditto.
89 2007-08-28 Jakub Jelinek <jakub@redhat.com>
92 * passes.c (init_optimization_passes): Move pass_df_finish
93 after pass_postreload sublist.
95 PR rtl-optimization/33148
96 * simplify-rtx.c (simplify_unary_operation_1): Only optimize
97 (neg (lt X 0)) if X has scalar int mode.
100 * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
101 initializer, use build_vector_from_ctor if possible to create
102 VECTOR_CST out of it. If vector initializer is not VECTOR_CST
103 even after this, return NULL.
105 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
107 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
109 2007-08-28 Richard Guenther <rguenther@suse.de>
111 * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
112 (struct tree_function_decl): Make function_code a bitfield.
113 Add disregard_inline_limits flag.
114 * cgraphunit.c (cgraph_process_new_functions): Check
115 DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
116 (cgraph_preserve_function_body_p): Likewise.
117 * ipa-inline.c (compute_inline_parameters): Likewise.
118 * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
119 for GNU C extern inline functions.
120 (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
121 * tree-inline.c (disregard_inline_limits_p): Remove.
122 * tree-inline.h (disregard_inline_limits_p): Likewise.
123 * c-common.c (handle_always_inline_attribute): Set
124 DECL_DISREGARD_INLINE_LIMITS.
125 * langhooks.c (add_builtin_function): Verify the function code
126 fits in the bitfield.
128 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com>
129 Vladimir Yanovsky <yanov@il.ibm.com>
130 Revital Eres <eres@il.ibm.com>
131 Andrey Belevantsev <abel@ispras.ru>
133 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
135 * modulo-sched.c: Add documentation regarding do-loop.
136 (doloop_register_get): Change number of arguments to support
137 the new do-loop pattern and check whether COUNT_REG has no other
138 occurences in the loop besides in the control part.
139 (duplicate_insns_of_cycles): Do not duplicate the insn which
140 changes count_reg as it is already adjusted.
141 (generate_prolog_epilog): New argument to support the new
142 do-loop pattern. Change the subtract instruction to use
143 expand_simple_binop. Call duplicate_insns_of_cycles with new
145 (sms_schedule): Call doloop_register_get and
146 generate_prolog_epilog with new argument. Do not handle loops
147 with single sets insns with subreg in their lhs.
148 * loop-doloop.c (doloop_optimize): Support for another do-loop
150 (doloop_condition_get): Gets an instruction instead of a pattern
151 and change the return condition when the do-loop pattern is
153 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
154 deps when considering to not create edges.
156 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
158 * doc/extend.texi (gnu_inline funtion attribute): Document C++
161 2007-08-27 Jason Merrill <jason@redhat.com>
164 * gimplify.c (gimplify_modify_expr): Discard the assignment of
165 zero-sized types after calling gimplify_modify_expr_rhs.
167 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
169 * regclass.c (init_reg_autoinc): Fix typo.
171 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
173 Fix PR tree-optimization/33173
174 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
176 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
179 * config/i386/i386.h (VALID_DFP_MODE_P): New.
180 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
183 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
184 David Ung <davidu@mips.com>
185 Nigel Stephens <nigel@mips.com>
187 Separate target-specific initialization from general
188 back-end initialization.
190 * toplev.c (init_alignments): New, split out from...
191 (process_options): ...here.
192 (backend_init_target): New, split out from...
193 (backend_init): ...here.
194 (lang_dependent_init_target): New, split out from...
195 (lang_dependent_init): ...here.
196 (target_reinit): New.
197 * toplev.h (target_reinit): Declare.
198 * expr.c (init_expr_target): Renamed from init_expr_once, since it
199 now can be called more than once. Update comments.
200 * expr.h (init_expr_target): Likewise.
201 * alias.c (init_alias_target): Renamed from init_alias_once, since it
202 now can be called more than once. Explicitly zero
203 static_reg_base_value.
204 * emit-rtl.c (init_emit_regs): New, split out from...
205 (init_emit_once): Here.
206 * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
207 non-const, so that changes from command-line arguments can overwrite
208 values provided by the static initializers.
209 (initial_call_really_used_regs): New, used similarly to the above.
210 (initial_reg_names): Likewise.
211 (last_mode_for_init_move_cost): Promoted function-local static to
212 file-scope static to make it accessible outside init_move_cost.
213 (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
214 Do not initialize inv_reg_alloc_order yet, either. Do initialize
215 reg_names since it is needed for parsing command-line options.
216 (init_move_cost): Use last_mode_for_init_move_cost instead of
217 function-local static.
218 (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
219 call_really_used_regs now. Reinitialize reg_names. Also
220 initialize inv_reg_alloc_order. Zero reg_class_subunion and
221 reg_class_superunion. Clear losing_caller_save_reg_set.
222 Preserve global registers if called more than once. Reset
223 move cost, may_move_in_cost, may_move_out_cost, and
224 last_mode_for_init_move_cost.
225 (init_reg_modes_target): Renamed from init_reg_modes_once, since it
226 can now be invoked more than once. Update comments.
227 (init_regs): Update comments.
228 (fix_register): Update initial_fixed_regs, initial_call_used_regs,
229 and initial_call_really_used_regs, instead of the non-initial
230 variables. This allows us to save the command-line register settings
231 after target reinitialization.
232 (init_reg_autoinc): Zero forbidden_inc_dec_classes.
233 * rtl.h (init_emit_regs): Declare.
234 (init_reg_modes_target, init_alias_target): Renamed as described
236 * reload1.c (init_reload): Update comments.
237 * optabs.c (init_optabs): Likewise.
238 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
240 2007-08-26 Chao-ying Fu <fu@mips.com>
242 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
245 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
247 * alias.c (memory_modified_1, memory_modified_in_insn_p):
249 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
251 * bb-reorder.c (copy_bb_p): Likewise.
252 * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
253 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
254 block_ends_with_condjump_p): Likewise.
255 * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
256 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
257 block_ends_with_condjump_p): Likewise.
258 * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
259 * cfgrtl.c (can_delete_note_p, can_delete_label_p,
260 rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
261 rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
262 need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
263 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
264 debug_true_const_tree instad of debug_true_tree.
265 * debug.c (do_nothing_debug_hooks): Likewise.
266 * debug.h (ignore_block, debug_true_const_tree): Constify.
267 * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
268 dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
269 decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
270 same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
271 dbx_reg_number, is_based_loc, field_type,
272 simple_type_align_in_bits, simple_decl_align_in_bits,
273 simple_type_size_in_bits, field_byte_offset, insert_float,
274 type_tag, member_declared_type, is_redundant_typedef,
275 secname_for_decl, is_inlined_entry_point): Likewise.
276 * emit-rtl.c (const_next_insn, const_previous_insn,
277 const_next_nonnote_insn, const_prev_nonnote_insn,
278 const_next_real_insn, const_prev_real_insn,
279 const_next_active_insn, const_prev_active_insn, const_next_label,
280 const_prev_label): Likewise.
281 * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
283 * haifa-sched.c (may_trap_exp, haifa_classify_insn,
284 find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
285 sched_insn_is_legitimate_for_speculation_p): Likewise.
286 * jump.c (reversed_comparison_code_parts,
287 reversed_comparison_code, reversed_comparison, condjump_label):
289 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
290 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
292 * rtl.h (const_previous_insn, const_next_insn,
293 const_prev_nonnote_insn, const_next_nonnote_insn,
294 const_prev_real_insn, const_next_real_insn,
295 const_prev_active_insn, const_next_active_insn, const_prev_label,
296 const_next_label, modified_between_p, modified_in_p,
297 const_note_storeskeep_with_call_p, condjump_label,
298 reversed_comparison, reversed_comparison_code,
299 reversed_comparison_code_parts, memory_modified_in_insn_p,
300 stack_regs_mentioned): Likewise.
301 * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
302 keep_with_call_p): Likewise.
303 * sched-deps.c (deps_may_trap_p, sched_get_condition,
304 conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
305 sd_lists_size, sd_lists_empty_p): Likewise.
306 * sched-int.h (sched_insns_conditions_mutex_p,
307 haifa_classify_insn, no_real_insns_p,
308 sched_insn_is_legitimate_for_speculation_p, sd_next_list,
309 sd_lists_size, sd_lists_empty_p): Likewise.
310 * sdbout.c (sdb_debug_hooks): Likewise.
311 * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
312 stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
313 -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
315 * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
316 tree_can_throw_internal): Likewise.
317 * tree-flow-inline.h (phi_nodes): Likewise.
318 * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
319 tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
320 * tree-gimple.c (const_get_call_expr_in): Likewise.
321 * tree-gimple.h (const_get_call_expr_in): Likewise.
322 * tree.c (const_lookup_attribute, attribute_list_equal,
323 attribute_list_contained): Likewise.
324 * tree.h (attribute_list_equal, attribute_list_contained,
325 const_lookup_attribute): Likewise.
326 * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
328 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
330 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
331 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
333 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
336 * config/alpha/constraints.md: Delete "svn:mime-type" property
337 with svn propdel "svn:mime-type".
339 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
342 * ifcvt.c (noce_get_alt_condition): Make sure that the previous
343 non NOTE insn doesn't cross basic block.
344 (noce_try_abs): Likewise.
345 (noce_process_if_block): Likewise.
347 2007-08-26 David Edelsohn <edelsohn@gnu.org>
350 * config/rs6000/predicates.md (offsettable_mem_operand): Memory
351 operand without auto-inc-dec.
352 * config/rs6000/rs6000.md (floatsidf2_internal): Use
353 offsettable_mem_operand.
354 (floatunssidf2_internal): Same.
355 (fix_truncdfsi2_internal): Same.
356 (floatsidf_ppc64): Same.
357 (floatunssidf_ppc64): Same.
358 (fix_trunctfsi2_internal): Same.
360 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
363 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
364 pass defines needed for version.c.
366 2007-08-25 Joseph Myers <joseph@codesourcery.com>
368 * configure.ac (--debug-prefix-map check): Change assembler
369 version presumed to have feature to 2.18.
370 * configure: Regenerate.
372 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
374 * c-common.c (vector_types_convertible_p,
375 decl_with_nonnull_addr_p, c_promoting_integer_type_p,
376 self_promoting_args_p): Constify.
377 * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
378 c_promoting_integer_type_p, self_promoting_args_p,
379 anon_aggr_type_p, vector_types_convertible_p): Likewise.
380 * c-decl.c (anon_aggr_type_p): Likewise.
381 * * c-dump.c (dump_stmt): Likewise.
382 * c-objc-common.c (has_c_linkage): Likewise.
383 * c-tree.h (same_translation_unit_p): Likewise.
384 * c-typeck.c (null_pointer_constant_p,
385 tagged_types_tu_compatible_p, function_types_compatible_p,
386 type_lists_compatible_p, lvalue_or_else, lvalue_p,
387 comptypes_internal, struct tagged_tu_seen_cache,
388 same_translation_unit_p, alloc_tagged_tu_seen_cache,
389 c_size_in_bytes): Likewise.
390 * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
391 hash_ptr, eq_ptr): Likewise.
392 * langhooks-def.h (lhd_decl_ok_for_sibcall,
393 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
394 * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
395 * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
397 * optabs.c (optab_for_tree_code): Likewise.
398 * optabs.h (optab_for_tree_code): Likewise.
399 * rtl.h (simplify_rtx): Likewise.
400 * simplify-rtx.c (simplify_rtx): Likewise.
401 * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
402 dump_flag, dump_node): Likewise.
403 * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
404 queue_and_dump_type, dump_flag): Likewise.
405 * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
406 * tree-pass.h (dump_node): Likewise.
407 * tree-vectorizer.c (vect_can_force_dr_alignment_p,
408 supportable_narrowing_operation): Likewise.
409 * tree-vectorizer.h (vect_can_force_dr_alignment_p,
410 supportable_narrowing_operation): Likewise.
411 * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
412 is_negative_overflow_infinity, is_positive_overflow_infinity,
413 is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
414 nonnull_arg_p, get_value_range, vrp_operand_equal_p,
415 update_value_range, add_equivalence, ssa_name_nonnegative_p,
416 ssa_name_nonzero_p, fp_predicate): Likewise.
417 * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
418 * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
419 ssa_name_nonnegative_p): Likewise.
421 2007-08-25 Hans Kester <hans.kester@ellips.nl>
423 * config.gcc : Add x86_64-elf target.
425 2007-08-25 Jakub Jelinek <jakub@redhat.com>
427 * expr.c (store_expr): Fix order of store_by_pieces arguments.
429 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
430 Nigel Stephens <nigel@mips.com>
434 * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
435 (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
436 * expr.c (SET_BY_PIECES_P): Define.
437 (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
438 it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
439 (store_expr): Pass MEMSETP argument to can_store_by_pieces and
441 * expr.h (SET_RATIO): Define.
442 (can_store_by_pieces, store_by_pieces): Update prototypes.
443 * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
444 can_store_by_pieces/store_by_pieces.
445 (expand_builtin_memcpy_args): Likewise.
446 (expand_builtin_strncpy): Likewise.
447 (expand_builtin_memset_args): Likewise. Also remove special case
448 for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
449 decide what to do instead.
450 * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
451 to can_store_by_pieces.
453 * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
454 * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
456 * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
457 * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
458 * config/mips/mips.h (MIPS_CALL_RATIO): Define.
459 (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
460 (STORE_BY_PIECES_P): Define.
462 2007-08-24 Tom Tromey <tromey@redhat.com>
464 * varpool.c (varpool_last_needed_node): Fix comment typo.
465 * c-decl.c (duplicate_decls): Fix comment typo.
466 (clone_underlying_type): Update comment.
468 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
470 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
471 alpha_in_small_data_p, alpha_split_complex_arg,
472 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
474 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
475 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
477 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
478 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
479 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
480 * config/darwin.c (darwin_binds_local_p): Likewise.
481 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
483 * config/i386/i386-protos.h (i386_pe_binds_local_p,
484 i386_pe_valid_dllimport_attribute_p): Likewise.
485 * config/i386/i386.c (ix86_function_regparm,
486 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
487 x86_can_output_mi_thunk, ix86_mangle_type,
488 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
489 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
490 i386_pe_binds_local_p): Likewise.
492 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
493 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
494 ia64_invalid_conversion, ia64_invalid_unary_op,
495 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
497 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
498 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
499 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
500 * config/mips/mips.c (mips_use_blocks_for_constant_p,
501 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
502 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
503 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
504 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
505 * config/pa/pa.c (pa_commutative_p): Likewise.
506 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
508 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
509 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
510 rs6000_use_blocks_for_constant_p,
511 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
512 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
513 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
514 * config/s390/s390.c (s390_mangle_type,
515 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
517 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
518 th_in_small_data_p): Likewise.
519 * config/sh/sh.c (sh_ms_bitfield_layout_p,
520 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
522 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
523 sparc_mangle_type): Likewise.
524 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
525 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
526 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
528 * hooks.c (hook_bool_mode_const_rtx_false,
529 hook_bool_mode_const_rtx_true,
530 hook_bool_const_tree_hwi_hwi_const_tree_false,
531 hook_bool_const_tree_hwi_hwi_const_tree_true,
532 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
533 hook_constcharptr_const_tree_null,
534 hook_constcharptr_const_rtx_null,
535 hook_constcharptr_const_tree_const_tree_null,
536 hook_constcharptr_int_const_tree_null,
537 hook_constcharptr_int_const_tree_const_tree_null): New.
538 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
539 hook_bool_tree_hwi_hwi_tree_false,
540 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
541 hook_int_tree_tree_1, hook_constcharptr_tree_null,
542 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
543 hook_constcharptr_int_tree_null,
544 hook_constcharptr_int_tree_tree_null): Delete.
545 (default_can_output_mi_thunk_no_vcall): Constify.
546 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
547 hook_bool_tree_hwi_hwi_tree_false,
548 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
549 hook_int_tree_tree_1, hook_constcharptr_tree_null,
550 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
551 hook_constcharptr_int_tree_null,
552 hook_constcharptr_int_tree_tree_null): Delete.
553 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
554 hook_bool_const_tree_hwi_hwi_const_tree_false,
555 hook_bool_const_tree_hwi_hwi_const_tree_true,
556 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
557 hook_constcharptr_const_tree_null,
558 hook_constcharptr_const_rtx_null,
559 hook_constcharptr_const_tree_const_tree_null,
560 hook_constcharptr_int_const_tree_null,
561 hook_constcharptr_int_const_tree_const_tree_null): New.
562 (default_can_output_mi_thunk_no_vcall): Constify.
563 * integrate.c (function_attribute_inlinable_p): Likewise.
564 * integrate.h (function_attribute_inlinable_p): Likewise.
565 * jump.c (rtx_renumbered_equal_p): Likewise.
566 * output.h (decl_readonly_section, categorize_decl_for_section,
567 default_use_anchors_for_symbol_p, default_binds_local_p,
568 default_binds_local_p_1): Likewise.
569 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
571 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
572 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
573 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
574 TARGET_COMP_TYPE_ATTRIBUTES,
575 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
576 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
577 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
578 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
579 TARGET_DWARF_CALLING_CONVENTION): Likewise.
580 * target.h (can_output_mi_thunk, needs_block_p,
581 first_cycle_multipass_dfa_lookahead_guard_spec,
582 vector_alignment_reachable, comp_type_attributes,
583 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
584 commutative_p, use_blocks_for_constant_p,
585 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
586 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
587 invalid_within_doloop, valid_dllimport_attribute_p,
588 split_complex_arg, invalid_arg_for_unprototyped_fn,
589 invalid_conversion, invalid_unary_op, invalid_binary_op):
591 * targhooks.c (default_invalid_within_doloop,
592 hook_invalid_arg_for_unprototyped_fn,
593 default_builtin_vector_alignment_reachable): Likewise.
594 (hook_bool_rtx_commutative_p): Delete.
595 (hook_bool_const_rtx_commutative_p): New.
596 * targhooks.h (default_invalid_within_doloop,
597 default_builtin_vector_alignment_reachable,
598 hook_invalid_arg_for_unprototyped_fn): Constify.
599 (hook_bool_rtx_commutative_p): Delete.
600 (hook_bool_const_rtx_commutative_p): New.
601 * varasm.c (bss_initializer_p, decl_default_tls_model,
602 categorize_decl_for_section, decl_readonly_section,
603 default_use_anchors_for_symbol_p, default_binds_local_p,
604 default_binds_local_p_1): Constify.
606 2007-08-24 Jie Zhang <jie.zhang@analog.com>
608 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
609 __NO_BUILTIN if -fno-builtin.
611 2007-08-24 Jie Zhang <jie.zhang@analog.com>
613 * config/bfin/bfin.c (print_operand): Report error instead of
614 ICE for wrong operand.
616 2007-08-24 Michael Matz <matz@suse.de>
618 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
620 2007-08-24 Richard Guenther <rguenther@suse.de>
623 * tree-ssa.c (useless_type_conversion_p): Split into a
624 recursive and a non-recursive part.
625 (useless_type_conversion_p_1): New function.
626 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
627 from maybe_fold_offset_to_reference is trivially convertible
628 to the desired type before doing the simplification.
630 2007-08-24 Jakub Jelinek <jakub@redhat.com>
632 * expr.c (store_expr): Optimize initialization of an array
634 * expr.h (builtin_strncpy_read_str): New prototype.
635 * builtins.c (builtin_strncpy_read_str): Remove prototype.
638 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
641 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
642 field when initializing if_info structure.
644 2007-08-24 Richard Guenther <rguenther@suse.de>
646 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
648 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
649 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
650 * tree-inline.c (inlinable_function_p): Fold in common parts of
651 the cannot_inline_tree_fn langhook.
652 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
653 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
654 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
655 cannot_inline_tree_fn langhook.
656 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
657 cannot_inline_tree_fn member.
659 2007-08-24 Richard Guenther <rguenther@suse.de>
661 * expr.c (get_inner_reference): Do computation of bitoffset
662 from offset in a way we can detect overflow reliably.
664 2007-08-24 Jie Zhang <jie.zhang@analog.com>
666 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
668 2007-08-24 Jie Zhang <jie.zhang@analog.com>
670 * config/bfin/bfin.opt (mfast-fp): Add.
671 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
672 libbffastfp override libgcc if -mfast-fp.
673 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
674 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
675 (Blackfin Options): Document -mfast-fp.
677 2007-08-24 Jakub Jelinek <jakub@redhat.com>
679 PR tree-optimization/32573
681 * tree-data-ref.c (initialize_data_dependence_relation): Clear
682 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
683 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
684 (build_classic_dist_vector): Return false rather than true if
685 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
686 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
687 returned false. Don't call save_dist_v before calling
688 build_classic_dist_vector_1.
689 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
690 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
691 DDR_DIR_VECTS vectors.
693 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
695 * configure.ac (leb128): Modify sed statement to work with any
696 binutils version string.
697 * configure: Regenerate
699 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
701 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
702 Wrap in RTX_CODE macro guard.
703 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
704 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
705 arm_mark_dllimport, arm_pe_encode_section_info,
706 arm_pe_unique_section): Use ISO-C function declarations.
707 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
708 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
709 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
711 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
712 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
714 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
716 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
717 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
718 (register_move_cost): Use ISO-C function declarations.
719 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
720 * config/score/score-protos.h (score_declare_object): Add
722 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
724 * final.c (profile_function): Avoid empty if-bodies.
727 * calls.c (must_pass_in_stack_var_size,
728 must_pass_in_stack_var_size_or_pad): Constify.
729 * config/alpha/alpha-protos.h (function_value): Likewise.
730 * config/alpha/alpha.c (alpha_return_in_memory,
731 alpha_pass_by_reference, function_value,
732 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
733 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
735 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
736 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
737 TARGET_PROMOTE_PROTOTYPES): Likewise.
738 * config/arm/arm-protos.h (arm_return_in_memory,
739 arm_pad_arg_upward, arm_function_value): Likewise.
740 * config/arm/arm.c (arm_pass_by_reference,
741 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
742 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
743 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
745 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
746 * config/avr/avr-protos.h (avr_function_value): Likewise.
747 * config/avr/avr.c (avr_return_in_memory,
748 gas_output_limited_string, gas_output_ascii, avr_function_value,
749 avr_return_in_memory): Likewise.
750 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
751 * config/bfin/bfin.c (bfin_pass_by_reference,
752 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
753 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
755 * config/cris/cris.c (cris_pass_by_reference,
756 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
757 * config/crx/crx.c (crx_return_in_memory): Likewise.
758 * config/darwin.c (function_base, machopic_function_base_name):
760 * config/fr30/fr30.c (fr30_must_pass_in_stack,
761 TARGET_PROMOTE_PROTOTYPES): Likewise.
762 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
763 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
764 * config/i386/i386-protos.h (ix86_return_in_memory,
765 ix86_sol10_return_in_memory): Likewise.
766 * config/i386/i386.c (ix86_function_value,
767 ix86_function_sseregparm, ix86_must_pass_in_stack,
768 type_natural_mode, classify_argument, examine_argument,
769 construct_container, ix86_pass_by_reference, function_value_32,
770 function_value_64, ix86_function_value_1, return_in_memory_32,
771 return_in_memory_64, return_in_memory_ms_64,
772 ix86_return_in_memory, ix86_sol10_return_in_memory,
773 TARGET_PROMOTE_PROTOTYPES): Likewise.
774 * config/ia64/ia64-protos.h (ia64_function_value,
775 ia64_hpux_function_arg_padding): Likewise.
776 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
777 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
778 ia64_hpux_function_arg_padding): Likewise.
779 * config/iq2000/iq2000-protos.h (function_arg,
780 iq2000_function_value): Likewise.
781 * config/iq2000/iq2000.c (iq2000_return_in_memory,
782 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
783 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
784 function_arg, iq2000_function_value): Likewise.
785 * config/m32c/m32c-protos.h (m32c_function_value,
786 m32c_promote_function_return): Likewise.
787 * config/m32c/m32c.c (m32c_pass_by_reference,
788 m32c_promote_prototypes, m32c_promote_function_return,
789 m32c_function_value): Likewise.
790 * config/m32r/m32r.c (m32r_return_in_memory,
791 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
792 m32r_in_small_data_p): Likewise.
793 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
795 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
796 m68hc11_function_arg_padding): Likewise.
797 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
798 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
799 m68k_function_value): Likewise.
800 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
801 mcore_function_value): Likewise.
802 * config/mcore/mcore.c (handle_structs_in_regs,
803 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
804 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
805 mcore_num_arg_regs, mcore_function_value): Likewise.
806 * config/mips/mips-protos.h (mips_pad_arg_upward,
807 mips_function_value): Likewise.
808 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
809 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
810 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
811 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
812 mips_function_value): Likewise.
813 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
815 * config/mmix/mmix.c (mmix_pass_by_reference,
816 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
817 mmix_encode_section_info): Likewise.
818 * config/mn10300/mn10300-protos.h (mn10300_function_value):
820 * config/mn10300/mn10300.c (mn10300_return_in_memory,
821 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
822 mn10300_function_value): Likewise.
823 * config/mt/mt-protos.h (mt_function_value): Likewise.
824 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
825 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
826 * config/pa/pa-protos.h (function_arg_padding, function_value,
827 pa_return_in_memory): Likewise.
828 * config/pa/pa.c (pa_pass_by_reference,
829 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
830 function_arg_padding, function_value, pa_return_in_memory):
832 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
833 * config/rs6000/rs6000-protos.h (rs6000_function_value,
834 function_arg_padding): Likewise.
835 * config/rs6000/rs6000.c (rs6000_return_in_memory,
836 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
837 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
838 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
839 function_arg_padding, altivec_expand_dst_builtin,
840 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
841 altivec_init_builtins, rs6000_common_init_builtins,
842 rs6000_function_value): Likewise.
843 * s390/s390-protos.h (s390_function_value): Likewise.
844 * config/s390/s390.c (s390_function_arg_size,
845 s390_pass_by_reference, s390_return_in_memory,
846 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
847 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
848 * config/score/score-protos.h (score_function_value): Likewise.
849 * config/score/score.c (score_arg_partial_bytes,
850 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
851 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
852 score_pass_by_reference, score_add_offset, score_function_value):
854 * config/sh/sh-protos.h (sh_attr_renesas_p,
855 sh_promote_prototypes): Likewise.
856 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
857 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
858 sh_attr_renesas_p): Likewise.
859 * config/sparc/sparc-protos.h (function_value,
860 function_arg_padding): Likewise.
861 * config/sparc/sparc.c (sparc_promote_prototypes,
862 sparc_return_in_memory, sparc_pass_by_reference,
863 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
864 function_arg_record_value_2, function_arg_record_value_1,
865 function_arg_record_value, function_arg_record_value,
866 function_arg_padding, function_value): Likewise.
867 * config/spu/spu-protos.h (spu_function_value): Likewise.
868 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
869 spu_function_value): Likewise.
870 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
872 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
873 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
874 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
876 * config/v850/v850.c (v850_return_in_memory,
877 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
878 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
879 * config/xtensa/xtensa.c (xtensa_return_in_msb,
880 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
881 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
883 * explow.c (promote_mode, hard_function_value): Likewise.
884 * expr.h (hard_function_value, promote_mode): Likewise.
885 * function.c (aggregate_value_p): Likewise.
886 * hooks.c (hook_bool_const_tree_true): New.
887 * hooks.h (hook_bool_const_tree_true): New.
888 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
889 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
890 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
891 TARGET_RETURN_IN_MSB): Likewise.
892 * target.h (promote_function_args, promote_function_return,
893 promote_prototypes, return_in_memory, return_in_msb,
894 pass_by_reference, must_pass_in_stack, callee_copies,
895 function_value): Likewise.
896 * targhooks.c (default_return_in_memory,
897 hook_pass_by_reference_must_pass_in_stack,
898 hook_callee_copies_named,
899 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
900 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
901 default_function_value): Likewise.
902 * targhooks.h (default_return_in_memory,
903 hook_pass_by_reference_must_pass_in_stack,
904 hook_callee_copies_named,
905 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
906 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
907 default_function_value): Likewise.
908 * tree-ssa-structalias.c (const_equiv_class_label_t): New.
909 (equiv_class_label_hash, equiv_class_label_eq): Constify.
910 * tree-vectorizer.c (bb_in_loop_p): Likewise.
911 * tree.c (needs_to_live_in_memory): Likewise.
912 * tree.h (struct tree_type, needs_to_live_in_memory,
913 aggregate_value_p, must_pass_in_stack_var_size,
914 must_pass_in_stack_var_size_or_pad): Likewise.
915 * vmsdbgout.c (write_debug_addr, write_debug_delta4,
916 write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
917 lookup_filename): Likewise.
919 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
922 * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
923 fake fcomi i387 instruction for !TARGET_CMOVE.
924 (ix86_expand_branch): Expand natural sequence with one jump for
925 all targets, not only TARGET_CMOVE.
926 * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
927 pattern to implement fake fcomi sequence. Split instruction after
928 reload to correct compare sequences.
929 (*cmpfp_xf_cc): Ditto.
930 (*cmpfp_<mode>_cc): Ditto.
931 (*cmpfp_u_cc): Ditto.
932 (*cmpfp_<mode>_cc): Ditto.
934 2007-08-23 Richard Guenther <rguenther@suse.de>
936 * tree-pretty-print.c (dump_generic_node): Annotate
937 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
939 2007-08-23 Richard Guenther <rguenther@suse.de>
941 * builtins.c (expand_builtin_mathfn): Wrap argument in
942 save_expr directly instead of re-building the call.
943 (expand_builtin_mathfn_2): Likewise.
944 (expand_builtin_mathfn_3): Likewise.
945 (expand_builtin_interclass_mathfn): Likewise.
946 (expand_builtin_int_roundingfn): Set arg.
947 (expand_builtin_int_roundingfn_2): Likewise.
949 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
951 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
952 *sse_nand<mode>3, *sse_xor<mode>3): New.
954 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
956 * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
957 * config/i386/i386.c (print_operand): Handle ';' code. Output
958 semicolon for TARGET_MACHO.
959 * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
960 emit semicolon after 'lock' prefix.
961 (sync_double_compare_and_swap<mode>): Ditto.
962 (*sync_double_compare_and_swapdi_pic): Ditto.
963 (*sync_compare_and_swap_cc<mode>): Ditto.
964 (sync_double_compare_and_swap_cc<mode>): Ditto.
965 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
966 (sync_old_add<mode>): Ditto.
967 (sync_add<mode>): Ditto.
968 (sync_sub<mode>): Ditto.
969 (sync_ior<mode>): Ditto.
970 (sync_and<mode>): Ditto.
971 (sync_xor<mode>): Ditto.
973 2007-08-22 Chao-ying Fu <fu@mips.com>
975 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
977 (copy_rtx): Handle CONST_FIXED.
978 (rtx_equal_p): Likewise.
979 * rtl.h (fixed_value.h): New include.
980 (rtx_def): Add a new field of fixed_value to u.
981 (XCNMPFV): Define for accessing fixed_value.
982 (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
984 * rtl.def (CONST_FIXED): New constant.
985 (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
986 UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
987 US_ASHIFT): New codes.
988 * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
989 us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
990 unsigned_fract_convert, unsigned_sat_fract): Document them.
991 * varasm.c (assemble_integer): Extend to support fixed-point constants
992 by using different machine classes.
993 (decode_addr_const): Handle FIXED_CST.
994 (const_hash_1): Likewise.
995 (compare_constant): Likewise.
996 (copy_constant): Likewise.
997 (const_rtx_hash_1): Handle CONST_FIXED.
998 (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
999 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1001 (initializer_constant_valid_p): Handle FIXED_CST.
1002 (output_constant): Support FIXED_POINT_TYPE.
1003 * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
1004 * cse.c (hash_rtx): Support CONST_FIXED.
1005 (exp_equiv_p): Likewise.
1006 (cannon_reg): Likewise.
1007 (fold_rtx): Likewise.
1008 (equiv_constant): Likewise.
1009 (cse_process_notes_1): Likewise.
1010 (count_reg_usage): Likewise.
1011 * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
1012 (rtx_equal_for_cselib_p): Handle CONST_FIXED.
1013 (wrap_constant): Check CONST_FIXED.
1014 (cselib_hash_rtx): Support CONST_FIXED.
1015 (cselib_subst_to_values): Likewise.
1016 * df-scan.c (df_uses_record): Likewise.
1017 * gcse.c (want_to_gcse_p): Likewise.
1018 (oprs_unchanged_p): Likewise.
1019 (oprs_not_set_p): Likewise.
1020 (compute_transp): Likewise.
1021 (extract_mentioned_regs_helper): Likewise.
1022 * genemit.c (gen_exp): Likewise.
1023 * local-alloc.c (equiv_init_varies_p): Likewise.
1024 (contains_replace_regs): Likewise.
1025 (memref_referenced_p): Likewise.
1026 * loop-invariant.c (check_maybe_invariant): Likewise.
1027 (hash_invariant_expr_1): Likewise.
1028 (invariant_expr_equal_p): Likewise.
1029 * postreload-gcse.c (oprs_unchanged_p): Likewise.
1030 * regclass.c (reg_scan_mark_refs): Likewise.
1031 * regrename.c (scan_rtx): Likewise.
1032 * resource.c (mark_referenced_resources): Likewise.
1033 (mark_set_resources): Likewise.
1034 * rtlanal.c (rtx_unstable_p): Likewise.
1035 (rtx_varies_p): Likewise.
1036 (count_occurrences): Likewise.
1037 (reg_mentioned_p): Likewise.
1038 (modified_between_p): Likewise.
1039 (modified_in_p): Likewise.
1040 (volatile_insn_p): Likewise.
1041 (volatile_refs_p): Likewise.
1042 (side_effects_p): Likewise.
1043 (may_trap_p_1): Likewise.
1044 (inequality_comparisons_p): Likewise.
1045 (computed_jump_p_1): Likewise.
1046 (commutative_operand_precedence): Likewise.
1047 * sched-deps.c (sched_analyze_2): Likewise.
1048 * sched-vis.c (print_value): Likewise.
1049 * reload.c (operands_match_p): Likewise.
1050 (subst_reg_equivs): Likewise.
1051 * reload1.c (eliminate_regs_1): Likewise.
1052 (elimination_effects): Likewise.
1053 (scan_paradoxical_subregs): Likewise.
1054 * alias.c (rtx_equal_for_memref_p): Likewise.
1055 * Makefile.in (RTL_BASE_H): Add fixed-value.h.
1056 * emit-rtl.c (const_fixed_htab): New hash table.
1057 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
1059 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
1060 const_fixed_from_fixed_value): New functions.
1061 (verify_rtx_sharing): Handle CONST_FIXED.
1062 (copy_rtx_if_shared_1): Likewise.
1063 (reset_used_flags): Likewise.
1064 (set_used_flags): Likewise.
1065 (copy_insn_1): Likewise.
1066 (init_emit_once): Create const_fixed_htab.
1067 Store fixed-point scalar and vector zero and one to const_tiny_rtx.
1069 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
1071 PR tree-optimization/32949
1072 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
1073 before failing for ivs with non-constant step.
1075 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
1077 * doc/md.texi (Iterators): Renamed from Macros. All contents
1078 changed to reflect rename of respectively define_code_macro and
1079 define_mode_macro to define_code_iterator and define_mode_iterator.
1080 (Mode Iterators, Code Iterators): Similar.
1081 * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
1082 (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
1083 (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
1084 (initialize_iterators, find_iterator, check_code_iterator)
1085 (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
1086 (read_mapping, read_rtx_1): Similar.
1087 * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
1088 config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
1089 config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
1090 config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
1091 config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
1092 config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
1093 config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
1094 config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
1095 config/rs6000/sync.md, config/rs6000/rs6000.md,
1096 config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
1097 config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
1098 config/vax/vax.md, config/bfin/bfin.md: Similar.
1100 2007-08-22 David Daney <ddaney@avtrex.com>
1102 * doc/install.texi (Testing): Mention testing on a simulator.
1104 2007-08-22 Janis Johnson <janis187@us.ibm.com>
1106 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
1108 * doc/libgcc.texi (Decimal float library routines): Fix formatting
1109 and rearrange floating point conversion functions into different
1112 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1114 * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
1115 dfa_post_advance_cycle): New scheduler hooks.
1116 * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1117 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
1119 (TARGET_SCHED): Use them.
1120 * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1121 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
1122 * haifa-sched.c (advance_one_cycle): Invoke new hooks.
1124 * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
1125 function to facilitate debugging.
1126 (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
1127 (output_insn_has_dfa_reservation_p): New static function to output
1128 insn_has_dfa_reservation_p ().
1129 (write_automata): Use it.
1130 * genattr.c (main): Output declaration for
1131 insn_has_dfa_reservation_p ().
1133 2007-08-22 Christian Bruel <christian.bruel@st.com>
1134 Richard Guenther <rguenther@suse.de>
1136 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
1137 * simplify_rtx (simplify_binary_operation_1): Likewise.
1139 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
1141 PR rtl-optimization/32557
1142 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
1143 of REGNO (mws->mw_reg).
1145 2007-08-22 Richard Guenther <rguenther@suse.de>
1148 * builtins.c (expand_builtin_int_roundingfn): Replace call
1149 argument wrapped with SAVE_EXPR directly.
1150 (expand_builtin_int_roundingfn_2): Likewise.
1152 2007-08-22 Richard Guenther <rguenther@suse.de>
1154 * tree-inline.c (inlinable_function_p): Restore disregarding
1155 inline limits for GNU extern inline functions.
1157 2007-08-22 Richard Guenther <rguenther@suse.de>
1160 * tree.c (host_integerp): Treat sizetype as signed as it is
1163 2007-08-21 Ian Lance Taylor <iant@google.com>
1165 PR tree-optimization/33134
1166 * tree-vrp.c (adjust_range_with_scev): Call
1167 set_value_range_to_value.
1169 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
1171 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
1174 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
1176 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
1179 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
1181 * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
1182 cases to set eight bytes at a time.
1183 (expand_block_move): Likewise.
1185 2007-08-21 Jakub Jelinek <jakub@redhat.com>
1188 * dwarf2out.c (gen_decl_die): Don't call
1189 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
1191 2007-08-21 Paul Brook <paul@codesourcery.com>
1192 Nathan Sidwell <nathan@codesourcery.com>
1193 Mark Mitchell <mark@codesourcery.com>
1194 Joseph Myers <joseph@codesourcery.com>
1196 * configure.ac: Add --with-pkgversion and --with-bugurl.
1197 * configure: Regenerate.
1198 * doc/install.texi: Document them.
1199 * version.c (version_string): Remove VERSUFFIX.
1200 (VERSUFFIX): Remove.
1201 (pkgversion_string): New.
1202 (bug_report_url): Do not hard-code initializer.
1203 * version.h (pkgversion_string): Declare.
1204 * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
1206 (version.o): Define PKGVERSION and BUGURL.
1207 (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
1208 (%.pod): Define BUGURL.
1209 * gcc.c (process_command, main): Use pkgversion_string.
1210 * toplev.c (compile_file, print_version): Likewise.
1211 * protoize.c (main): Likewise.
1212 * gcov.c (print_version): Likewise. Update copyright date.
1213 * gcov-dump.c (print_version): Likewise. Update copyright date.
1214 * mips-tdump.c (main): Likewise. Update copyright date.
1215 * mips-tfile.c (main): Likewise. Update copyright date.
1216 * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
1217 * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
1218 shorten description.
1219 * doc/gcc.texi: Include VERSION_PACKAGE in version description.
1220 * doc/gccint.texi: Likewise.
1221 * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
1222 Update copyright date.
1224 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
1226 * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
1227 (ix86_expand_strlensi_unroll_1): Ditto.
1228 (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
1229 (ix86_expand_carry_flag_compare): Update comment.
1231 2007-08-21 Jakub Jelinek <jakub@redhat.com>
1234 * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
1235 (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
1237 2007-08-21 Richard Guenther <rguenther@suse.de>
1239 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
1241 2007-08-21 Richard Guenther <rguenther@suse.de>
1244 * fold-const.c (fold_binary): Remove index +p PTR folding.
1245 Fix types of POINTER_PLUS_EXPR generated by folding of
1248 2007-08-20 Chao-ying Fu <fu@mips.com>
1250 * c-common.h (enum rid): Add new enumeration values of RID_SAT,
1251 RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
1252 RID_ONEWAY, so that it can be checked in declspecs_add_type.
1253 (c_common_fixed_point_type_for_size): Declare.
1254 * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
1255 (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
1256 (c_token_starts_declspecs): Likewise.
1257 (c_parser_declspecs): Likewise.
1258 (c_parser_attributes): Likewise.
1259 * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
1260 (c_declspecs): Add saturating_p.
1261 * c-decl.c (build_null_declspecs): Initialize saturating_p.
1262 (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
1263 _Sat. Handle RID_SAT.
1264 Avoid using void, bool, char, int, float, double, _Decimal32,
1265 _Decimal64, _Decimal128, and complex with _Sat.
1266 Handle RID_FRACT and RID_ACCUM.
1267 Make sure _Sat is used with _Fract or _Accum.
1268 (finish_declspecs): Handle cts_fract and cts_accum.
1269 * c-common.c (fixed-value.h): New include.
1270 (constant_expression_warning): Handle FIXED_CST.
1271 (overflow_warning): Likewise.
1272 (warnings_for_convert_and_check): Likewise.
1273 (c_common_fixed_point_type_for_size): New.
1274 (c_common_type_for_mode): Handle fixed-point modes to
1275 return various saturating/non-saturating, signed/unsigned types.
1276 (c_common_signed_or_unsigned_type): Support fixed-point types.
1277 (shorten_compare): Check fixed-point zero.
1278 Handle FIXED_POINT_TYPE.
1279 (c_common_truthvalue_conversion): Handle FIXED_CST.
1280 Handle FIXED_POINT_TYPE.
1281 (c_common_nodes_and_builtins): Record builtin types for fixed-point
1283 (handle_mode_attribute): Handle fixed-point modes. Need to check
1284 if the signness of base type and fixed-point modes are consistent.
1285 (handle_vector_size_attribute): Handle fixed-point modes.
1286 (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
1287 (warn_for_div_by_zero): Check fixed-point zero.
1288 * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
1289 a common fixed-point type based on fbit, ibit, sign, and saturation.
1290 (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
1291 NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
1292 PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
1293 (convert_for_assignment): Support FIXED_POINT_TYPE.
1294 (digest_init): Handle FIXED_POINT_TYPE.
1295 (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
1296 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1297 TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
1298 GE_EXPR, LT_EXPR, GT_EXPR.
1299 * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
1300 (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
1301 * target.h (gcc_target): Add fixed_point_supported_p.
1302 * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
1303 MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
1304 (default_fixed_point_supported_p): Define.
1305 * targhooks.h (default_fixed_point_supported_p): Declare.
1306 * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
1307 * doc/install.texi (Configuration): Add --enable-fixed-point.
1308 * configure.ac (--enable-fixed-point): New to enable fixed-point
1309 arithmetic extension to C. For mips targets, we enable it by default.
1310 * configure, config.in: Regenerate.
1312 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
1314 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
1316 2007-08-20 David Edelsohn <edelsohn@gnu.org>
1318 * dwarf2out.c (text_section_used): Move declaration outside ifdef
1319 DWARF2_DEBUGGING_INFO.
1320 (cold_text_section_used): Same.
1321 (cold_text_section): Same.
1323 2007-08-20 Richard Guenther <rguenther@suse.de>
1325 * c-typeck.c (convert_for_assignment): Use the type of
1326 the member for the initialization.
1328 2007-08-20 Richard Guenther <rguenther@suse.de>
1330 * c-objc-common.c (c_disregard_inline_limits): Remove.
1331 * c-objc-common.h (c_disregard_inline_limits): Likewise.
1332 * cgraphunit.c (cgraph_process_new_functions): Call
1333 disregard_inline_limits_p.
1334 (cgraph_preserve_function_body_p): Likewise.
1335 * ipa-inline.c (compute_inline_parameters): Likewise.
1336 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
1338 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
1339 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1340 disregard_inline_limits langhook.
1341 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1343 * langhooks.h (lang_hooks_for_tree_inlining): Remove
1344 disregard_inline_limits langhook.
1345 * tree-inline.c (disregard_inline_limits_p): New function.
1346 * tree-inline.h (disregard_inline_limits_p): Declare.
1348 2007-08-20 Richard Guenther <rguenther@suse.de>
1350 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
1351 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
1352 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1353 auto_var_in_fn_p langhook.
1354 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
1356 * tree.c (auto_var_in_fn_p): ... here.
1357 (find_var_from_fn): Call auto_var_in_fn_p directly.
1358 * langhooks.h (lang_hooks_for_tree_inlining): Remove
1359 auto_var_in_fn_p langhook.
1360 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
1361 (copy_body_r): Likewise.
1362 (self_inlining_addr_expr): Likewise.
1363 * tree.h (auto_var_in_fn_p): Declare.
1365 2007-08-20 Richard Guenther <rguenther@suse.de>
1367 * tree.c (WALK_SUBTREE): Call walk_tree_1.
1368 (walk_type_fields): Take lh parameter.
1369 (walk_tree): Rename to ...
1370 (walk_tree_1): ... this. Do not call the walk_subtrees
1371 langhook but the now passed callback. Pass lh on recursion.
1372 (walk_tree_without_duplicates): Rename to ...
1373 (walk_tree_without_duplicates_1): ... this. Take lh parameter
1374 and call walk_tree_1.
1375 * tree.h (walk_tree_lh): New typedef.
1376 (walk_tree_1): Declare.
1377 (walk_tree_without_duplicates_1): Likewise.
1378 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
1379 (walk_tree_without_duplicates): New define to
1380 walk_tree_without_duplicates_1 with NULL lh parameter.
1381 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
1382 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
1384 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
1385 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
1386 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
1389 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
1392 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
1393 code in front of the compacting of basic blocks.
1394 Move the folding of statements inbetween the cgraph checking
1395 and compacting of basic blocks.
1397 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1398 Serge Belyshev <belyshev@depni.sinp.msu.ru>
1401 * config/alpha/alpha.c (va_list_skip_additions): Check for
1402 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
1403 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
1404 PLUS_EXPR when checking ap.__base.
1405 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
1406 when doing addition on pointer types. Use size_int instead of
1408 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
1409 ptr_type in the second operand.
1411 2007-08-19 Andrew Pinski <pinskia@gmail.com>
1414 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
1416 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1419 * cfgexpand.c (expand_one_register_var): Mark pointer
1420 DECL_ARTIFICIAL as REG_POINTER also.
1421 * stmt.c (expand_decl): Likewise.
1423 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
1430 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
1431 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
1432 on_worklist argument and avoid adding things to worklist multiple
1434 (add_to_worklist): Ditto.
1435 (mark_aliases_call_clobbered): Mark entire structure clobbered if
1436 single SFT is clobbered.
1437 (set_initial_properties): Ditto.
1438 (compute_call_clobbered): Update for changes to function
1440 (create_overlap_variables_for): Always create SFT for offset 0.
1441 (create_structure_vars): Handle PHI's, since we are in SSA form at
1443 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
1444 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
1446 (add_vars_for_offset): Figure out aliases from access + points-to.
1447 (add_virtual_operand): Use add_vars-for_offset.
1448 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
1449 (add_call_clobber_ops): Remove makes_clobbering_call set.
1450 (get_expr_operands): Always pass through the INDIRECT_REF
1452 * tree-ssa-structalias.c (struct constraint_graph): Remove
1454 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
1455 address_taken, pt_used, number_incoming.
1456 (FIRST_ADDR_NODE): Removed.
1457 (merge_graph_nodes): Remove broken code for the moment.
1458 (init_graph): New function.
1459 (build_pred_graph): Remove code to init_graph.
1460 Add location equivalence support.
1461 (struct scc_info): Rename roots to deleted.
1463 (init_scc_info): Ditto
1464 (init_topo_info): Use graph->size.
1465 (compute_topo_order): Ditto.
1466 (do_da_constraint): Removed.
1467 (do_sd_constraint): Remove calls to find().
1468 set_union_with_increment should always get 0 as last arg here.
1469 (do_complex_constraint): Replace do_da_constraint with assert.
1471 (struct equiv_class_label): New.
1472 (pointer_equiv_class_table): Ditto.
1473 (location_equiv_class_table): Ditto.
1474 (equiv_class_label_hash): Ditto.
1475 (equiv_class_label_eq): Ditto
1476 (equiv_class_lookup): Ditto.
1477 (equiv_class_ladd): Ditto.
1478 (pointer_equiv_class): Ditto.
1479 (location_equiv_class): Ditto.
1480 (condense_visit): Rename and rewrite from label_visit to do only
1481 SCC related stuff for HU.
1482 (label_visit): Do HU work for HU.
1483 (perform_var_substitution): Update to do HU and location
1485 (free_var_substitution_info): Update to free HU and location
1486 equivalence structures. */
1487 (find_equivalent_node): Update for pointer but not location
1489 (unite_pointer_equivalences): New function.
1490 (move_complex_constraints): Rewrite to only do moving.
1491 (rewrite_constraints): Split out of move_complex_constraints.
1492 (solve_graph): Use graph->size.
1493 (process_constraint_1): Add from_call argument, use it.
1494 Split *a = &b into two constraints.
1495 (process_constraint): Use new process_constraint_1.
1496 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
1497 (get_constraint_for): Handle non-pointer integers properly.
1498 Remove code that used to handle structures.
1499 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
1500 with unknown addends.
1501 (handle_rhs_call): New function.
1502 (find_func_aliases): Use handle_rhs_call.
1503 (set_uids_in_ptset): Add an assert.
1504 (set_used_smts): Fix bug in not considering unified vars.
1505 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
1506 (compute_points_to_sets): Update for other function changes.
1507 (delete_points_to_sets): Ditto.
1508 (ipa_pta_execute): Ditto.
1509 (pass_ipa_pta): We need to update SSA after ipa_pta.
1511 2007-08-19 Jan Hubicka <jh@suse.cz>
1513 * i386.md: Replace "rim" and "mri" constraints by "g".
1515 2007-08-19 Joseph Myers <joseph@codesourcery.com>
1517 * dwarf2out.c (text_section_used, cold_text_section_used,
1518 cold_text_section, dwarf2out_note_section_used): New.
1519 (dwarf2out_init): Initialize cold_text_section.
1520 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
1521 dwarf2out_note_section_used.
1522 (size_of_aranges): Only count entry for text section if it was
1523 used. Count entry for cold text section if it was used.
1524 (output_aranges): Only output entries for text section and cold
1525 text section if they were used.
1527 2007-08-19 Andrew Pinski <pinskia@gmail.com>
1529 * tree-pretty-print.c (debug_generic_expr): Add a comment about
1531 (debug_generic_stmt): Likewise.
1532 (debug_tree_chain): Likewise.
1534 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
1536 * tree-data-refs.c (split_constant_offset): Expose.
1537 * tree-data-refs.h (split_constant_offset): Add declaration.
1539 * tree-vectorizer.h (dr_alignment_support): Renamed
1540 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
1541 Added a new value dr_explicit_realign.
1542 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
1543 dr_offset, dr_step, and dr_aligned_to, along with new access
1544 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
1545 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
1546 STMT_VINFO_DR_ALIGNED_TO.
1548 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
1550 In case of outer-loop vectorization with non-fixed misalignment - use
1551 the dr_explicit_realign scheme instead of the optimized realignment
1553 (new_stmt_vec_info): Initialize new fields.
1555 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
1556 'nested_in_vect_loop' case. Change verbosity level.
1557 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
1558 Don't fail on zero step in the outer-loop for loads.
1559 (vect_analyze_data_refs): Call split_constant_offset to calculate
1560 base, offset and init relative to the outer-loop.
1562 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
1563 BSI function argument with a new function argument - at_loop.
1564 Simplify the condition that determines STEP. Takes additional argument
1565 INV_P. Support outer-loop vectorization (handle the
1566 nested_in_vect_loop case), including zero step in the outer-loop. Call
1567 vect_create_addr_base_for_vector_ref with additional argument.
1568 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
1569 Updated function documentation. Handle the 'nested_in_vect_loop' case.
1570 Fixed and simplified calculation of step.
1571 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
1572 of bsi, and with additional argument. Call bump_vector_ptr with
1573 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
1574 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
1575 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
1576 when the realignment setup needs to take place inside the loop.
1577 Support the dr_explicit_realign scheme. Allow generating the optimized
1578 realignment scheme for outer-loop vectorization. Added documentation.
1579 (vectorizable_load): Support the dr_explicit_realign scheme. Handle
1580 the 'nested_in_vect_loop' case, including loads that are invariant in
1581 the outer-loop and the realignment schemes. Handle the case when the
1582 realignment setup needs to take place inside the loop. Call
1583 vect_setup_realignment with additional arguments. Call
1584 vect_create_data_ref_ptr with additional argument and with loop instead
1585 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
1586 (vect_gen_niters_for_prolog_loop): Call
1587 vect_create_addr_base_for_vector_ref with additional arguments.
1588 (vect_create_cond_for_align_checks): Likewise.
1589 (bump_vector_ptr): Updated to support the new dr_explicit_realign
1590 scheme: takes additional argument bump; argument ptr_incr is now
1591 optional; updated documentation.
1592 (vect_init_vector): Takes additional argument (bsi). Use it, if
1593 available, to insert the vector initialization.
1594 (get_initial_def_for_induction): Pass additional argument in call to
1596 (vect_get_vec_def_for_operand): Likewise.
1597 (vect_setup_realignment): Likewise.
1598 (vectorizable_load): Likewise.
1600 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
1602 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
1603 as argument instead of struct loop.
1604 (nested_in_vect_loop_p): New function.
1605 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
1607 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
1608 from other phis in the loop.
1609 (destroy_loop_vec_info): Add additional argument to declaration.
1611 * tree-vectorizer.c (supportable_widening_operation): Also check if
1612 nested_in_vect_loop_p (don't allow changing the order in this case).
1613 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
1614 of struct loop. Call nested_in_vect_loop_p and don't require
1615 flag_unsafe_math_optimizations if it returns true.
1616 (new_stmt_vec_info): When setting def_type for phis differentiate
1617 loop-header phis from other phis.
1618 (bb_in_loop_p): New function.
1619 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
1620 just update their loop_vinfo. Order of BB traversal now matters -
1621 call dfs_enumerate_from with bb_in_loop_p.
1622 (destroy_loop_vec_info): Takes additional argument to control whether
1623 stmt_vinfo of the loop stmts should be destroyed as well.
1624 (vect_is_simple_reduction): Allow the "non-reduction" use of a
1625 reduction stmt to be defines by a non loop-header phi.
1626 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
1628 * tree-vect-transform.c (vectorizable_reduction): Call
1629 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
1630 (vectorizable_call): Likewise.
1631 (vectorizable_conversion): Likewise.
1632 (vectorizable_operation): Likewise.
1633 (vectorizable_type_promotion): Likewise.
1634 (vectorizable_type_demotion): Likewise.
1635 (vectorizable_store): Likewise.
1636 (vectorizable_live_operation): Likewise.
1637 (vectorizable_reduction): Likewise. Also pass loop_info to
1638 vect_is_simple_reduction instead of loop.
1639 (vect_init_vector): Call nested_in_vect_loop_p.
1640 (get_initial_def_for_reduction): Likewise.
1641 (vect_create_epilog_for_reduction): Likewise.
1642 (vect_init_vector): Check which loop to work with, in case there's an
1644 (get_initial_def_for_inducion): Extend to handle outer-loop
1645 vectorization. Fix indentation.
1646 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
1647 In the case vect_induction_def get the vector def from the induction
1648 phi node, instead of calling get_initial_def_for_inducion.
1649 (get_initial_def_for_reduction): Extend to handle outer-loop
1651 (vect_create_epilog_for_reduction): Extend to handle outer-loop
1653 (vect_transform_loop): Change assert to just skip this case. Add a
1655 (vect_finish_stmt_generation): Add a couple asserts.
1657 (vect_estimate_min_profitable_iters): Multiply
1658 cost of inner-loop stmts (in outer-loop vectorization) by estimated
1660 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
1661 this is an inner-loop reduction in outer-loop vectorization.
1663 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
1664 Same code as what used to be vect_analyze_scalar_cycles, only with
1665 additional argument loop, and loop_info passed to
1666 vect_is_simple_reduction instead of loop.
1667 (vect_analyze_scalar_cycles): Code factored out into
1668 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
1669 Updated documentation.
1670 (analyze_operations): Check for inner-loop loop-closed exit-phis during
1671 outer-loop vectorization that are live or not used in the outerloop,
1672 cause this requires special handling.
1673 (vect_enhance_data_refs_alignment): Don't consider versioning for
1675 (vect_analyze_data_refs): Check that there are no datarefs in the
1677 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
1678 and vect_used_in_outer_by_reduction cases.
1679 (process_use): Also consider the case of outer-loop stmt defining an
1680 inner-loop stmt and vice versa.
1681 (vect_analyze_loop_1): New function.
1682 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
1683 loops. Call vect_analyze_loop_1.
1684 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
1685 been vectorized. Call destroy_loop_vec_info with additional argument.
1687 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
1688 in the inner-loop when doing outer-loop vectorization. Add
1689 documentation and printout.
1690 (vect_recog_dot_prod_pattern): Likewise. Also add check for
1691 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
1693 2007-08-18 Andrew Pinski <pinskia@gmail.com>
1695 * tree-affine.h (print_aff): New prototype.
1696 (debug_aff): Likewise.
1697 * tree-affine.c (print_aff): New function.
1698 (debug_aff): Likewise.
1700 2007-08-18 Paul Brook <paul@codesourcery.com>
1701 Joseph Myers <joseph@codesourcery.com>
1703 * common.opt (-fdebug-prefix-map=): New option.
1704 * opts.c: Include debug.h.
1705 (common_handle_option): Handle -fdebug-prefix-map.
1706 * final.c: Include ggc.h.
1707 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
1708 remap_debug_filename): New.
1709 * Makefile.in (final.o, opts.o): Update dependencies.
1710 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
1711 * configure.ac: Check for assembler --debug-prefix-map support.
1712 * configure, config.in: Regenerate.
1713 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
1714 (ASM_DEBUG_SPEC): Include ASM_MAP.
1715 * doc/install.texi (--with-debug-prefix-map): Document.
1716 * doc/invoke.texi (-fdebug-prefix-map): Document.
1717 * dbxout.c (dbxout_init, dbxout_start_source_file,
1718 dbxout_source_file): Call remap_debug_filename.
1719 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
1720 dwarf2out_start_source_file, dwarf2out_finish): Call
1721 remap_debug_filename.
1722 (file_table_relative_p): Do not check d->emitted_number.
1723 * toplev.c (output_file_directive): Call remap_debug_filename.
1724 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
1725 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
1727 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1729 * loop-invariant.c (find_invariants_to_move): Add missing macro
1732 2007-08-17 Tom Tromey <tromey@redhat.com>
1734 * tree.h (struct tree_label_decl): Removed old "java" fields.
1736 2007-08-17 Richard Sandiford <richard@codesourcery.com>
1737 Nigel Stephens <nigel@mips.com>
1739 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
1740 Treat -mno-data-in-code and -mcode-xonly as aliases for
1741 -mcode-readable=no and -mcode-readable=pcrel respectively.
1742 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
1743 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
1744 (MULTILIB_DIRNAMES): Update accordingly.
1746 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
1748 * Makefile.in (version.o): Depend on $(REVISION) only if
1749 REVISION_s is defined.
1751 2007-08-17 Sa Liu <saliu@de.ibm.com>
1752 Ulrich Weigand <uweigand@de.ibm.com>
1755 * tree.c (reconstruct_complex_type): For a pointer to a vector,
1756 use build_qualified_type to retain qualifiers of the base type.
1758 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
1760 * config/score/score.md : Update pattern tablejump.
1761 * config/score/score.c : Update score_initialize_trampoline
1763 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
1764 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
1765 * doc/contrib.texi: Add my entry.
1767 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
1769 * Makefile.in (REVISION): New.
1772 (version.o): Also depend on $(REVISION). Add
1773 -DREVISION=$(REVISION_s).
1775 * version.c (version_string): Add REVISION.
1777 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
1779 * tree-eh.c (lower_try_finally_onedest): Reset the locus
1780 of GOTO that's relocated to a different block.
1782 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1784 * c-common.c (const_strip_array_types): New.
1785 * c-common.h (lang_missing_noreturn_ok_p): Delete.
1786 (const_strip_array_types): New.
1787 * c-objc-common.c (c_disregard_inline_limits,
1788 c_warn_unused_global_decl): Constify.
1789 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
1790 c_vla_type_p, c_incomplete_type_error): Likewise.
1791 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
1792 * hooks.c (hook_bool_const_tree_false): New.
1793 * hooks.h (hook_bool_const_tree_false): Likewise.
1794 * langhooks-def.h (lhd_warn_unused_global_decl,
1795 lhd_incomplete_type_error, lhd_expr_size,
1796 lhd_tree_inlining_disregard_inline_limits,
1797 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1798 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
1799 * langhooks.c (lhd_warn_unused_global_decl,
1800 lhd_incomplete_type_error,
1801 lhd_tree_inlining_disregard_inline_limits,
1802 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1803 lhd_expr_size): Likewise.
1804 * langhooks.h (lang_hooks_for_tree_inlining,
1805 lang_hooks_for_tree_dump, lang_hooks_for_types,
1806 lang_hooks_for_decls, lang_hooks): Likewise.
1807 * pointer-set.c (pointer_set_t, pointer_set_create,
1808 pointer_set_contains, insert_aux, pointer_set_insert,
1809 pointer_set_traverse, pointer_map_t, pointer_map_create,
1810 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
1812 * pointer-set.h (pointer_set_contains, pointer_set_insert,
1813 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
1814 pointer_map_traverse): Likewise.
1815 * predict.c (assert_is_empty): Likewise.
1816 * tree-affine.c (free_name_expansion): Likewise.
1817 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
1818 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
1819 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
1821 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
1823 * tree-vectorizer.c (new_loop_vec_info): Initialize new
1825 (destroy_loop_vec_info): Add call to VEC_free.
1826 * tree-vectorizer.h (may_alias_ddrs): Define.
1827 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
1828 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
1829 Change reporting to dump.
1830 (vect_is_duplicate_ddr): New.
1831 (vect_mark_for_runtime_alias_test): New.
1832 (vect_analyze_data_ref_dependences) Add call to
1833 vect_mark_for_runtime_alias_test.
1834 (vect_enhance_data_refs_alignment): Define local variable
1835 vect_versioning_for_alias_required, don't perform
1836 peeling for alignment if versioning for alias is
1838 (vect_enhance_data_refs_alignment): Use
1839 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
1840 PARAM_VECT_MAX_VERSION_CHECKS.
1841 * tree-vect-transform.c
1842 (vect_create_cond_for_alias_checks): New.
1843 (vect_transform_loop): Add call to
1844 vect_create_cond_for_alias_checks.
1845 (vect_vfa_segment_size): New.
1846 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
1848 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
1849 * gcc/doc/invoke.texi
1850 (vect-max-version-for-alignment-checks): Document.
1851 (vect-max-version-for-alias-checks): Document.
1852 (vect-max-version-checks): Remove.
1854 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
1856 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
1857 the same line as the instruction for all asm dialects.
1858 (*rep_movsi): Ditto.
1859 (*rep_movsi_rex64): Ditto.
1860 (*rep_movqi): Ditto.
1861 (*rep_movqi_rex64): Ditto.
1862 (*rep_stosdi_rex64): Ditto.
1863 (*rep_stossi): Ditto.
1864 (*rep_stossi_rex64): Ditto.
1865 (*rep_stosqi): Ditto.
1866 (*rep_stosqi_rex64): Ditto.
1867 (*cmpstrnqi_nz_1): Ditto.
1868 (*cmpstrnqi_nz_rex_1): Ditto.
1869 (*cmpstrnqi_1): Ditto.
1870 (*cmpstrnqi_rex_1): Ditto.
1871 (*strlenqi_1): Ditto.
1872 (*strlenqi_rex_1): Ditto.
1873 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
1874 prefix on the same line as the instruction for all asm dialects.
1875 (sync_double_compare_and_swap<mode>): Ditto.
1876 (*sync_double_compare_and_swapdi_pic): Ditto.
1877 (*sync_compare_and_swap_cc<mode>): Ditto.
1878 (sync_double_compare_and_swap_cc<mode>): Ditto.
1879 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
1880 (sync_old_add<mode>): Ditto.
1881 (sync_add<mode>): Ditto.
1882 (sync_sub<mode>): Ditto.
1883 (sync_ior<mode>): Ditto.
1884 (sync_and<mode>): Ditto.
1885 (sync_xor<mode>): Ditto.
1887 2007-08-16 Richard Sandiford <richard@codesourcery.com>
1890 * reload.c (find_reloads): Check that the memory returned by
1891 find_reloads_toplev was not the result of forcing a constant
1893 (find_reloads_toplev): Always use simplify_gen_subreg to get
1894 the subreg of a constant. If the result is also a constant,
1895 but not a legitimate one, force it into the constant pool
1896 and reload its address.
1898 2007-08-15 David Edelsohn <edelsohn@gnu.org>
1900 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
1903 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
1905 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
1906 directive for the current vector ABI.
1908 2007-08-15 Steve Ellcey <sje@cup.hp.com>
1911 * caller-save.c (reg_save_code): Set invalide status on restore code.
1913 2007-08-15 Diego Novillo <dnovillo@google.com>
1915 * tree-ssa-alias.c (compute_memory_partitions): Use
1916 alias_bitmap_obstack to allocate bitmaps.
1917 (reset_alias_info): Factor out of init_alias_info.
1918 Mark all name tags not associated to an SSA name for renaming.
1919 (init_alias_info): Call it.
1920 (create_name_tags): Tidy. Add comments.
1921 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
1923 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1925 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
1926 scheduler dependencies.
1928 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
1930 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
1932 (*iorsi_1_zext): Likewise.
1933 (*iorsi_1_zext_imm): Likewise.
1934 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
1935 with "rm"/"xm" constraint.
1936 (sse2_vmsqrtv2df2): Likewise.
1938 2007-08-15 Jakub Jelinek <jakub@redhat.com>
1941 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
1944 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
1946 * tree-pass.h (PROP_pta): Removed.
1947 (TODO_rebuild_alias): New.
1948 (pass_may_alias): Removed.
1949 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
1950 aliasing if we changed something.
1951 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
1953 (pass_may_alias): Removed.
1954 (create_structure_vars): Return TODO_rebuild_alias.
1955 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
1956 * tree-sra.c (tree_sra): Only rebuild aliasing if something
1958 (tree_sra_early): We never affect aliasing right now.
1959 * tree-flow.h (compute_may_aliases): New prototype.
1960 * passes.c: Remove pass_may_alias from the passes.
1961 (execute_function_todo): Support TODO_rebuild_alias.
1963 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
1965 * i386.c: (legitimize_address): Move dllimported variable check
1966 infront of legitimizing pic address of CONST symbols.
1968 2007-08-14 Steve Ellcey <sje@cup.hp.com>
1970 PR tree-optimization/32941
1971 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
1972 (goto_queue_cmp): Remove.
1973 (find_goto_replacement): Change search method.
1974 (maybe_record_in_goto_queue): Add assert.
1975 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
1976 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
1978 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1980 * alias.c (component_uses_parent_alias_set): Constify.
1981 * alias.h (component_uses_parent_alias_set): Likewise.
1982 * cfgrtl.c (print_rtl_with_bb): Likewise.
1983 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
1984 mpz_get_double_int): Likewise.
1985 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
1986 mpz_get_double_int): Likewise.
1987 * expr.c (is_aligning_offset, undefined_operand_subword_p,
1988 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
1990 * expr.h (safe_from_p): Likewise.
1991 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
1993 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
1994 zero_sized_type, goa_lhs_expr_p): Likewise.
1995 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
1996 * rtl.h (print_rtl_with_bb): Likewise.
1997 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
1998 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
1999 * tree-flow-inline.h (bb_stmt_list): Constify.
2000 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
2002 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
2003 const_first_stmt, const_last_stmt): New.
2004 (block_may_fallthru, empty_block_p): Constify.
2005 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
2006 EXPR_ONLY_BODY): New.
2007 (expr_first, expr_last, expr_only): Use macro for body.
2008 (const_expr_first, const_expr_last, const_expr_only): New.
2009 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
2010 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
2011 ctsi_prev, ctsi_stmt): New.
2012 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
2013 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
2014 * tree-ssa-loop-niter.c (loop_only_exit_p,
2015 derive_constant_upper_bound): Likewise.
2016 * tree-ssa-phiopt.c (empty_block_p): Likewise.
2017 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
2018 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
2019 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
2020 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
2021 * tree.c (get_type_static_bounds): Likewise.
2022 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
2023 (get_type_static_bounds): Constify.
2025 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
2028 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
2029 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
2030 (*<addsub><mode>3_cc_overflow): New.
2031 (*add<mode>3_cconly_overflow): New.
2032 (*sub<mode>3_cconly_overflow): New.
2033 (*<addsub>si3_zext_cc_overflow): New.
2034 * config/i386/predicates.md (fcmov_comparison_operator): Accept
2035 CCCmode for LTU, GTU, LEU and GEU.
2036 (ix86_comparison_operator): Likewise.
2037 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
2038 * config/i386/i386.c (put_condition_code): Support CCCmode.
2039 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
2040 or MINUS expressions.
2042 2007-08-14 Andrew Pinski <pinskia@gmail.com>
2045 * c-typeck.c (build_binary_op): Disallow vector float types with
2046 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
2048 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
2050 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
2051 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
2052 (dep_def): New typedef.
2053 (init_dep_1, sd_debug_dep): Declare functions.
2054 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
2055 (debug_dep_links): Remove.
2056 (struct _deps_list): New field 'n_links'.
2057 (DEPS_LIST_N_LINKS): New macro.
2058 (FOR_EACH_DEP_LINK): Remove.
2059 (create_deps_list, free_deps_list, delete_deps_list): Remove
2061 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
2062 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2063 (copy_deps_list_change_con, move_dep_link): Ditto.
2064 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
2065 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
2067 (INSN_BACK_DEPS): Remove.
2068 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
2070 (INSN_DEP_COUNT): Remove.
2071 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
2072 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
2073 Declare global variables.
2074 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
2075 (add_forw_dep, compute_forward_dependences): Remove declarations.
2076 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
2077 (add_back_forw_dep, delete_back_forw_dep): Ditto.
2078 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
2080 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
2082 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
2083 (sd_list_types_def): New typedef.
2084 (sd_next_list): Declare function.
2085 (struct _sd_iterator): New type.
2086 (sd_iterator_def): New typedef.
2087 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
2089 (FOR_EACH_DEP): New cycle wrapper.
2090 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
2092 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
2093 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
2096 * sched-deps.c (init_dep_1): Make global.
2097 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
2099 (dump_dep): New static function.
2100 (dump_dep_flags): New static variable.
2101 (sd_debug_dep): New function.
2102 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
2104 (move_dep_link): Use remove_from_deps_list (), instead of
2106 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
2107 (dep_link_is_detached_p): New static function.
2108 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
2110 (dn_pool, dl_pool): New alloc_pools.
2111 (dn_pool_diff, dl_pool_diff): New static variables.
2112 (create_dep_node, delete_dep_node): New static function.
2113 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
2114 (deps_list_empty_p): Make it static. Use 'n_links' field.
2115 (deps_pools_are_empty_p): New static function.
2116 (alloc_deps_list, delete_deps_list): Remove.
2117 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
2118 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2119 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
2120 (forward_dependency_cache): Remove.
2121 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
2122 'back' from the names. Change signature to use dep_t instead of
2124 (add_back_dep): Ditto. Make global.
2125 (check_dep_status): Rename to check_dep ().
2126 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
2128 (sd_finish_insn): Ditto.
2129 (sd_find_dep_between_no_cache): New static function.
2130 (sd_find_dep_between): New function.
2131 (ask_dependency_caches, set_dependency_caches): New static functions.
2132 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
2133 (add_or_update_dep_1): Separate pieces of functionality into
2134 ask_dependency_caches (), update_dependency_caches (),
2135 change_spec_dep_to_hard (), update_dep ().
2136 (get_back_and_forw_lists): New static function.
2137 (sd_add_dep): Separate setting of dependency caches into
2138 set_dependency_caches ().
2139 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
2141 (sd_delete_dep): Ditto.
2142 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
2143 (dump_lists): New static function.
2144 (sd_debug_lists): New debug function.
2145 (delete_all_dependences, fixup_sched_groups): Update to use
2146 sd_* infrastructure.
2147 (sched_analyze_2): Create data-speculative dependency only if
2148 data-speculation is enabled.
2149 (sched_analyze_insn): If insn cannot be speculative, make all its
2150 dependencies non-speculative.
2151 (sched_analyze): Use sd_init_insn ().
2152 (add_forw_dep, compute_forward_dependencies): Remove.
2153 (delete_dep_nodes_in_back_deps): New static function.
2154 (sched_free_deps): New function.
2155 (init_dependency_caches): Init alloc_pools.
2156 (extend_depedency_caches): Update after removing of
2157 forward_dependency_cache.
2158 (free_dependency_caches): Ditto. Free alloc_pools.
2159 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
2160 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
2162 (add_back_forw_dep, delete_back_forw_dep): Ditto.
2163 (add_dependence): Use init_dep ().
2164 (get_dep_weak_1): New static function.
2165 (get_dep_weak): Move logic to get_dep_weak_1 ().
2166 (dump_ds): New static function moved from haifa-sched.c:
2167 debug_spec_status ().
2168 (debug_ds): New debug function.
2169 (check_dep_status): Rename to check_dep (). Update to check whole
2172 * haifa-sched.c (spec_info): Make global.
2173 (added_recovery_block_p): Rename to
2174 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
2175 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
2176 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
2177 to use new interfaces.
2178 (ok_for_early_queue_removal): Ditto.
2179 (schedule_block): Initialize logical uids of insns emitted by the
2181 (sched_init): Initialize new variable.
2182 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
2184 (extend_global): Initialize insn data.
2185 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
2186 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
2188 (add_to_speculative_block): Update to use new interfaces.
2189 (create_recovery_block): Set new variables.
2190 (create_check_block_twin, fix_recovery_deps): Update to use new
2192 (sched_insn_is_legitimate_for_speculation_p): New function.
2193 (speculate_insn): Move checking logic to
2194 sched_insn_is_legitimate_for_speculation_p ().
2195 (sched_remove_insn): Finalize sched-deps information of instruction.
2196 (clear_priorities, add_jump_dependencies): Update to use new
2198 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
2200 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
2201 to use new interfaces.
2202 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
2203 (new_ready): Try to use control speculation only if it is available.
2204 (add_branch_dependences): Update to use new interfaces.
2205 (compute_block_backward_dependences): Rename to
2206 compute_block_dependences (). Call
2207 targetm.sched.dependencies_evaluation_hook ().
2208 (free_block_dependencies): New static function.
2209 (debug_dependencies): Update to use new interfaces.
2210 (schedule_region): Remove separate computation of forward dependencies.
2211 Move call of targetm.sched.dependencies_evaluation_hook () to
2212 compute_block_dependences (). Free dependencies at the end of
2213 scheduling the region.
2215 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
2217 (add_deps_for_risky_insns): Ditto.
2218 (schedule_ebb): Remove separate computation of forward dependencies.
2219 Free dependencies at the end of scheduling the ebb.
2221 * ddg.c (create_ddg_dependence): Update to use new interfaces.
2222 (build_intra_loop_deps): Ditto. Remove separate computation of
2223 forward dependencies. Free sched-deps dependencies.
2225 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
2226 to use new interfaces.
2227 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
2229 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
2231 (is_costly_group): Ditto.
2233 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2235 * alias.c (rtx_equal_for_memref_p): Constify.
2236 * basic-block.h (const_edge, const_basic_block): New.
2237 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
2238 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
2239 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
2240 probably_never_executed_bb_p, edge_probability_reliable_p,
2241 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
2242 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
2244 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
2245 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
2247 * cfganal.c (flow_active_insn_p, forwarder_block_p,
2248 flow_nodes_print, dfs_enumerate_from): Likewise.
2249 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
2250 control_flow_insn_p, count_basic_blocks): Likewise.
2251 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
2252 get_loop_body_with_size, loop_exit_edge_p): Likewise.
2253 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
2254 average_num_loop_insns, loop_exit_edge_p,
2255 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
2256 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
2257 average_num_loop_insns, seq_cost): Likewise.
2258 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
2259 * dominance.c (dominated_by_p): Likewise.
2260 * emit-rtl.c (validate_subreg): Likewise.
2261 * except.c (can_throw_internal, can_throw_external): Likewise.
2262 * except.h (can_throw_internal, can_throw_external): Likewise.
2263 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
2264 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
2265 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
2266 simple_mem, store_ops_ok, load_kills_store, find_loads,
2267 store_killed_in_insn, store_killed_after, store_killed_before,
2268 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
2270 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
2271 noce_mem_write_may_trap_or_fault_p): Likewise.
2272 * pointer-set.c (pointer_set_contains, pointer_map_contains):
2274 * pointer-set.h (pointer_set_contains, pointer_map_contains):
2276 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
2277 probably_cold_bb_p, probably_never_executed_bb_p,
2278 edge_probability_reliable_p, br_prob_note_reliable_p,
2279 can_predict_insn_p): Likewise.
2280 * regclass.c (reg_set_to_hard_reg_set): Likewise.
2281 * resource.c (return_insn_p): Likewise.
2282 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
2284 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
2285 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
2286 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
2287 verify_gimple_modify_stmt): Likewise.
2288 * tree-chrec.c (is_not_constant_evolution,
2289 is_multivariate_chrec_rec, is_multivariate_chrec,
2290 chrec_contains_symbols, chrec_contains_undetermined,
2291 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
2292 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
2293 eq_evolutions_p, scev_direction): Likewise.
2294 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
2295 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
2296 chrec_contains_symbols_defined_in_loop,
2297 chrec_contains_undetermined, tree_contains_chrecs,
2298 evolution_function_is_affine_multivariate_p,
2299 evolution_function_is_univariate_p, chrec_zerop,
2300 evolution_function_is_constant_p, evolution_function_is_affine_p,
2301 evolution_function_is_affine_or_constant_p,
2302 tree_does_not_contain_chrecs, chrec_type): Likewise.
2303 * tree-data-ref.c (tree_fold_divides_p,
2304 object_address_invariant_in_loop_p, dr_may_alias_p,
2305 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
2306 same_access_functions, constant_access_functions,
2307 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
2309 * tree-flow.h (scev_direction): Likewise.
2310 * tree-gimple.c (is_gimple_stmt): Likewise.
2311 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
2313 * tree-pretty-print.c (op_prio): Likewise.
2314 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
2315 analyzable_condition, backedge_phi_arg_p): Likewise.
2316 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
2317 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
2318 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
2321 2007-08-13 Dan Hipschman <dsh@google.com>
2324 * c-format.c (check_format_arg): Move check for zero-length
2325 format strings below the check for unterminated strings.
2327 2007-08-13 Andrew Pinski <pinskia@gmail.com>
2330 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
2333 2007-08-13 Nick Clifton <nickc@redhat.com>
2335 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
2337 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2340 * c-format.c (gcc_gfc_length_specs): New array.
2341 (gcc_gfc_char_table): Add unsigned specifier, and references to
2342 the l length modifier.
2343 (format_types_orig): Use the new gcc_gfc_length_specs.
2345 2007-08-12 Sa Liu <saliu@de.ibm.com>
2347 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
2348 and with REG_RETVAL note after split.
2350 2007-08-11 David Daney <ddaney@avtrex.com>
2352 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
2353 as ATTRIBUTE_UNUSED.
2355 2007-08-11 David Edelsohn <edelsohn@gnu.org>
2356 Segher Boessenkool <segher@kernel.crashing.org>
2358 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
2359 HAVE_LOCAL_CPU_DETECT not defined.
2361 2007-08-11 Jan Hubicka <jh@suse.cz>
2363 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
2364 (cgraph_process_new_functions): Honor previous value of
2365 disregard_inline_limits.
2366 * ipa-inline.c (compute_inline_parameters): Likewise.
2368 2007-08-11 Ian Lance Taylor <iant@google.com>
2370 * alias.h (alias_set_type): Define new type.
2371 (ALIAS_SET_MEMORY_BARRIER): Use it.
2372 * rtl.h: Include alias.h.
2373 (struct mem_attrs): Use alias_set_type.
2374 * tree.h: Include alias.h
2375 (struct tree_type): Use alias_set_type.
2376 (struct tree_struct_field_tag): Likewise.
2377 (struct tree_decl_common): Likewise.
2378 * alias.c (struct alias_set_entry): Use alias_set_type.
2379 (get_alias_set_entry, alias_set_subset_of): Likewise.
2380 (alias_sets_conflict_p): Likewise.
2381 (alias_sets_must_conflict_p): Likewise.
2382 (objects_must_conflict_p): Likewise.
2383 (get_alias_set, new_alias_set): Likewise.
2384 (record_alias_subset, record_component_aliases): Likewise.
2385 (varargs_set, frame_set): Change to alias_set_type.
2386 (get_varargs_alias_set): Use alias_set_type.
2387 (get_frame_alias_set): Likewise.
2388 * builtins.c (setjmp_alias_set): Change to alias_set_type.
2389 * dse.c (struct store_info): Use alias_set_type.
2390 (struct read_info, struct clear_alias_mode_holder): Likewise.
2391 (clear_alias_set_lookup, canon_address): Likewise.
2392 (record_store, check_mem_read_rtx): Likewise.
2393 (dse_record_singleton_alias_set): Likewise.
2394 (dse_invalidate_singleton_alias_set): Likewise.
2395 * emit-rtl.c (get_mem_attrs): Likewise.
2396 (set_mem_attributes_minus_bitpos): Likewise.
2397 (set_mem_alias_set): Likewise.
2398 * expr.c (store_constructor_field, store_field): Likewise.
2399 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
2400 * langhooks.c (lhd_get_alias_set): Likewise.
2401 * langhooks-def.h (lhd_get_alias_set): Likewise.
2402 * reload1.c (alter_reg): Likewise.
2403 * tree-flow.h (struct fieldoff): Likewise.
2404 * tree-ssa-alias.c (struct alias_map_d): Likewise.
2405 (may_alias_p, get_smt_for, create_sft): Likewise.
2406 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
2407 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2408 (merge_smts_into): Likewise.
2409 * varasm.c (const_alias_set): Likewise.
2410 * c-common.c (strict_aliasing_warning): Likewise.
2411 (c_common_get_alias_set): Likewise.
2412 * dse.h (dse_record_singleton_alias_set): Update declaration.
2413 (dse_invalidate_singleton_alias_set): Likewise.
2414 * emit-rtl.h (set_mem_alias_set): Likewise.
2415 * c-common.h (c_common_get_alias_set): Likewise.
2416 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
2417 * print-tree.c (print_node): Likewise.
2418 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
2420 (alpha_setup_incoming_varargs): Use alias_set_type.
2421 * config/i386/i386.c (setup_incoming_varargs_64): Use
2423 (setup_incoming_varargs_ms_64): Likewise.
2424 (ix86_GOT_alias_set): Likewise.
2425 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
2426 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
2427 (set): Change to alias_set_type.
2428 (get_TOC_alias_set): Use alias_set_type.
2429 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
2431 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
2432 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
2434 (struct_value_alias_set): Likewise.
2435 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
2437 2007-08-11 Richard Sandiford <richard@codesourcery.com>
2439 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
2440 * config/vxworks.h (TARGET_VXWORKS): Override.
2441 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
2442 "mips" if TARGET_VXWORKS.
2444 2007-08-11 Richard Sandiford <richard@codesourcery.com>
2446 * calls.c (avoid_likely_spilled_reg): New function.
2447 (expand_call): Use it.
2449 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2451 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
2453 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
2455 * config/mips/predicates.md (const_call_insn_operand): Invoke
2456 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
2458 2007-08-10 David Edelsohn <edelsohn@gnu.org>
2461 * config/rs6000/driver-rs6000.c: Include link.h.
2462 Use ElfW instead of wordsize-specif typedef.
2464 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2466 * system.h (CONST_CAST): New.
2467 * c-decl.c (c_make_fname_decl): Use it.
2468 * c-lex.c (cb_ident, lex_string): Likewise.
2469 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2470 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
2471 give_switch, set_multilib_dir): Likewise.
2472 * gengtype-parse.c (string_seq, typedef_name): Likewise.
2473 * passes.c (execute_one_pass): Likewise.
2474 * prefix.c (update_path): Likewise.
2475 * pretty-print.c (pp_base_destroy_prefix): Likewise.
2476 * tree.c (build_string): Likewise.
2478 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
2480 * tree-flow-inline.h (is_exec_stmt): Remove.
2481 (is_label_stmt): Remove.
2482 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
2485 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
2487 * lower-subreg.c (resolve_shift_zext): Don't adjust
2488 src_reg_num for wordmode operands.
2490 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
2491 David Ung <davidu@mips.com>
2493 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
2494 (TARGET_SCHED_REORDER2): Define.
2495 (mips_maybe_swap_ready): New.
2496 (mips_last_74k_agen_insn): New.
2497 (mips_74k_agen_init): New.
2498 (mips_74k_agen_reorder): New function to group loads and stores
2500 (mips_sched_init): New.
2501 (mips_sched_reorder): Don't do initialization here. Call
2502 mips_74k_agen_reorder.
2503 (mips_variable_issue): Call mips_74k_agen_init.
2505 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
2507 * tree-flow-inline.h (get_filename): Remove.
2509 2007-08-10 Richard Sandiford <richard@codesourcery.com>
2511 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
2513 (mips_fetch_insns): Delete in favor of...
2514 (mips_load_store_insns): ...this new function.
2515 * config/mips/mips.c (mips_address_insns): Add a boolean argument
2516 to say whether multiword moves _might_ be split.
2517 (mips_fetch_insns): Delete in favor of...
2518 (mips_load_store_insns): ...this new function.
2519 (mips_rtx_costs): Update the call to mips_address_insns.
2520 (mips_address_cost): Likewise.
2521 * config/mips/mips.md (length): Use mips_load_store_insns instead
2522 of mips_fetch_insns.
2523 * config/mips/constraints.md (R): Use mips_address_insns rather
2524 than mips_fetch_insns. Assume that the move never needs to be split.
2526 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
2528 * config/mips/mips.opt (mhard-float, msoft-float): Make these
2529 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
2530 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
2531 * config/mips/mips.h (mips16_hard_float): Delete.
2532 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
2533 definitions, and replace with....
2534 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
2535 * config/mips/mips.c (mips16_hard_float): Delete. Replace
2536 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
2537 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
2538 (override_options): Replace MASK_SOFT_FLOAT references with
2539 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
2540 and mips16_hard_float when TARGET_MIPS16.
2542 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
2545 * c-typeck.c (build_binary_op): Check for non pointer types before
2546 calling int_fits_type_p.
2548 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
2551 * fold-const.c (omit_one_operand): Return only the ommitted expression
2552 if the result is an empty statement.
2553 (pedantic_omit_one_operand): Likewise.
2555 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
2557 * c-typeck.c (readonly_error): Improve error for assignment.
2559 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
2561 (pp_c_expression): Ditto.
2563 2007-08-09 Simon Baldwin <simonb@google.com>
2565 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
2566 break that was preventing simplify_associative_operation() for xor.
2568 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
2569 Nigel Stephens <nigel@mips.com>
2571 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
2572 Document change in interpretation of value from boolean to
2574 * optabs.c (expand_ffs, expand_ctz): New functions to compute
2575 ffs and ctz using clz.
2576 (expand_unop): Call them.
2577 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
2579 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2580 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
2581 enable the new ffs expansion on this target.
2583 2007-08-09 Jan Hubicka <jh@suse.cz>
2585 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
2586 (expand_ternary_op): Likewise.
2587 (expand_vec_shift_expr): Likewise.
2588 (expand_binop_directly): Likewise.
2589 (expand_binop): Likewise.
2590 (sign_expand_binop): Likewise.
2591 (expand_twoval_unop): Likewise.
2592 (expand_twoval_binop): Likewise.
2593 (expand_twoval_binop_libfunc): Likewise.
2594 (widen_clz): Likewise.
2595 (widen_bswap): Likewise.
2596 (expand_parity): Likewise.
2597 (expand_unop): Likewise.
2598 (expand_abs_nojump): Likewise.
2599 (expand_copysign): Likewise.
2600 (emit_no_conflict_block): Likewise.
2601 (emit_libcall_block): Likewise.
2602 (can_compare_p): Likewise.
2603 (prepare_cmp_insn): Likewise.
2604 (emit_cmp_and_jump_insn_1): Likewise.
2605 (prepare_float_lib_cmp): Likewise.
2606 (emit_conditional_add): Likewise.
2607 (gen_add2_insn): Likewise.
2608 (have_add2_insn): Likewise.
2609 (gen_sub2_insn): Likewise.
2610 (have_sub2_insn): Likewise.
2611 (can_extend_p): Likewise.
2612 (can_fix_p): Likewise.
2613 (can_float_p): Likewise.
2614 (expand_float): Likewise.
2615 (expand_fix): Likewise.
2616 (expand_sfix_optab): Likewise.
2617 (new_optab): Likewise.
2618 (new_convert_optab): Likewise.
2619 (init_libfuncs): Likewise.
2620 (init_interclass_conv_libfuncs): Likewise.
2621 (init_intraclass_conv_libfuncs): Likewise.
2622 (set_conv_libfunc): Likewise.
2623 (init_optabs): Likewise.
2624 (debug_optab_libfuncs): Likewise.
2625 (gen_cond_trap): Likewise.
2626 * optabs.h (optab_handler, convert_optab_hanlder): New.
2627 * genopinit.c: Update optabs generation table.
2628 * reload.c (find_reloads_address_1): Use optabs accestors.
2629 * builtins.c (expand_builtin_mathfn): Likewise.
2630 (expand_builtin_mathfn_2): Likewise.
2631 (expand_builtin_mathfn_3): Likewise.
2632 (expand_builtin_interclass_mathfn): Likewise.
2633 (expand_builtin_sincos): Likewise.
2634 (expand_builtin_cexpi): Likewise.
2635 (expand_builtin_powi): Likewise.
2636 (expand_builtin_strlen): Likewise.
2637 * dojump.c (do_jump): Likewise.
2638 * expr.c (convert_move): Likewise.
2639 (move_by_pieces): Likewise.
2640 (move_by_pieces_ninsns): Likewise.
2641 (can_store_by_pieces): Likewise.
2642 (store_by_pieces_1): Likewise.
2643 (emit_move_via_integer): Likewise.
2644 (emit_move_complex): Likewise.
2645 (emit_move_ccmode): Likewise.
2646 (emit_move_insn_1): Likewise.
2647 (emit_single_push_insn): Likewise.
2648 (store_constructor): Likewise.
2649 (expand_expr_real_1): Likewise.
2650 (do_store_flag): Likewise.
2651 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
2652 (enumerate_modes): Likewise.
2653 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2654 (supportable_widening_operation): Likewise.
2655 (supportable_narrowing_operation): Likewise.
2656 * expmed.c (store_bit_field_1): Likewise.
2657 (extract_bit_field_1): Likewise.
2658 (expand_mult_highpart_optab): Likewise.
2659 (expand_smod_pow2): Likewise.
2660 (expand_divmod): Likewise.
2661 (emit_store_flag): Likewise.
2662 * tree-vect-patterns.c
2663 (vect_pattern_recog_1): Likewise.
2664 * tree-ssa-loop-prefetch.c
2665 (nontemporal_store_p): Likewise.
2666 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
2667 (vect_create_epilog_for_reduction): Likewise.
2668 (vectorizable_reduction): Likewise.
2669 (vectorizable_operation): Likewise.
2670 (vect_strided_store_supported): Likewise.
2671 (vectorizable_store): Likewise.
2672 (vect_strided_load_supported): Likewise.
2673 (vectorizable_load): Likewise.
2674 * combine.c (simplify_comparison): Likewise.
2675 * tree-vect-generic.c
2676 (type_for_widest_vector_mode): Likewise.
2677 (expand_vector_operations_1): Likewise.
2678 * config/spu/spu.c (spu_expand_mov): Likewise.
2679 (spu_emit_vector_compare): Likewise.
2680 * config/rs6000/rs6000.c
2681 (rs6000_emit_vector_compare): Likewise.
2682 * stmt.c (add_case_node): Likewise.
2683 * reload1.c (gen_reload):
2685 2007-08-09 Michael Matz <matz@suse.de>
2687 * tree.h (fixed_zerop): Declare as taking a const_tree.
2688 * tree.c (fixed_zerop): Take a const_tree.
2690 2007-08-09 Ira Rosen <irar@il.ibm.com>
2692 * tree-vect-transform.c (vectorizable_store): Remove call to
2693 copy_virtual_operands() and call mark_symbols_for_renaming() for
2694 the created vector store.
2695 (vect_setup_realignment): Don't call copy_virtual_operands() and
2696 update_vuses_to_preheader().
2697 (vectorizable_load): Don't call copy_virtual_operands().
2698 (update_vuses_to_preheader): Remove.
2700 2007-08-08 Chao-ying Fu <fu@mips.com>
2702 * tree.def (FIXED_POINT_TYPE): New type.
2703 (FIXED_CST): New constant.
2704 (FIXED_CONVERT_EXPR): New expr.
2705 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
2706 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
2707 * tree.h (struct tree_base): Add saturating_flag.
2708 Remove one bit of spare for saturating_flag.
2709 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
2710 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
2711 FIXED_POINT_TYPE_P): Define.
2712 (TYPE_SATURATING): Define.
2713 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
2714 (struct tree_fixed_cst): New.
2715 (TYPE_IBIT, TYPE_FBIT): Define.
2716 (tree_node): Add fixed_cst.
2717 (enum tree_index): Add new enumeration values of
2718 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
2719 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
2720 TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
2721 TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
2722 TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
2723 TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
2724 TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
2725 TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
2726 TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
2727 TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
2728 TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
2729 TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
2730 TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
2731 TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
2732 TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
2733 TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
2734 TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
2735 TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
2736 (sat_short_fract_type_node, sat_fract_type_node,
2737 sat_long_fract_type_node, sat_long_long_fract_type_node,
2738 sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
2739 sat_unsigned_long_fract_type_node,
2740 sat_unsigned_long_long_fract_type_node, short_fract_type_node,
2741 fract_type_node, long_fract_type_node, long_long_fract_type_node,
2742 unsigned_short_fract_type_node, unsigned_fract_type_node,
2743 unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
2744 sat_short_accum_type_node, sat_accum_type_node,
2745 sat_long_accum_type_node, sat_long_long_accum_type_node,
2746 sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
2747 sat_unsigned_long_accum_type_node,
2748 sat_unsigned_long_long_accum_type_node, short_accum_type_node,
2749 accum_type_node, long_accum_type_node, long_long_accum_type_node,
2750 unsigned_short_accum_type_node, unsigned_accum_type_node,
2751 unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
2752 qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
2753 uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
2754 utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
2755 sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
2756 sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
2757 sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
2758 ta_type_node, uha_type_node, usa_type_node, uda_type_node,
2759 uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
2760 sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
2761 sat_uda_type_node, sat_uta_type_node): New macro.
2762 (make_fract_type, make_accum_type): Declare.
2763 (make_signed_fract_type, make_unsigned_fract_type,
2764 make_sat_signed_fract_type, make_sat_unsigned_fract_type,
2765 make_signed_accum_type, make_unsigned_accum_type,
2766 make_sat_signed_accum_type, make_sat_unsigned_accum_type,
2767 make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
2768 make_or_reuse_sat_signed_fract_type,
2769 make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
2770 make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
2771 make_or_reuse_sat_unsigned_accum_type): New macro.
2772 (fixed_zerop): Declare.
2773 * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
2774 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2775 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2776 LONG_LONG_ACCUM_TYPE_SIZE): Define.
2777 * treestruct.def: Add TS_FIXED_CST.
2778 * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
2780 (tree-dump.o): Likewise.
2781 (print-tree.o): Likewise.
2782 (tree-pretty-print.o): Likewise.
2783 (fold-const.o): Likewise.
2784 * tree-complex.c (some_nonzerop): Handle FIXED_CST.
2785 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
2786 (is_gimple_min_invariant): Handle FIXED_CST.
2787 * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
2788 MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
2789 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2790 (layout_type): Handle FIXED_POINT_TYPE.
2791 (make_fract_type, make_accum_type): New functions.
2792 * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
2793 * tree-dump.c (fixed-value.h): New include.
2794 (dump_fixed): New function.
2795 (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
2796 * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
2797 (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
2798 * tree-pretty-print.c (fixed-value.h): New include.
2799 (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
2801 * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
2802 * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
2803 * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
2804 * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
2805 for non-saturating fixed-point types.
2806 (reassociate_bb): Likewise.
2807 * emit-rtl.c (fixed-value.h): New include.
2808 (fconst0, fconst1): New array.
2809 (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
2810 * tree-vect-generic.c expand_vector_operation): Support
2811 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
2813 (type_for_widest_vector_mode): Add one parameter for the
2815 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
2817 Pass the satp parameter to type_for_mode for fixed-point types.
2818 (expand_vector_operations_1): Pass the saturating flag to
2819 type_for_widest_vector_mode.
2820 Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2821 and MODE_VECTOR_UACCUM.
2822 * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
2823 (vectorizable_condition): Likewise.
2824 * tree.c (fixed-value.h): New include.
2825 (tree_code_size): Support FIXED_CST.
2826 (build_fixed): New function.
2827 (build_one_cst): Support FIXED_POINT_TYPE for accum types.
2828 (fixed_zerop): New function.
2829 (tree_node_structure): Support FIXED_CST.
2830 (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
2831 (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
2832 (type_hash_eq): Handle FIXED_POINT_TYPE.
2833 (simple_cst_equal): Support FIXED_CST.
2834 (iterative_hash_expr): Handle FIXED_CST.
2835 (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
2836 (get_narrower): Likewise.
2837 (variably_modified_type_p): Handle FIXED_POINT_TYPE.
2838 (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
2839 (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
2840 MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
2842 (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
2843 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2844 (initializer_zerop): Support FIXED_CST.
2845 (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
2846 * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
2847 DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
2848 (is_base_type): Handle FIXED_POINT_TYPE.
2849 (add_type_attribute): Handle FIXED_POINT_TYPE.
2850 (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
2851 * print-tree.c (fixed-value.h): New include.
2852 (print_node_brief): Support FIXED_CST.
2853 (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
2854 * c-pretty-print.c (fixed-value.h): New include.
2855 (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
2856 TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
2857 (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
2858 Support fixed-point types for inner items in VECTOR_TYPE.
2859 (pp_c_direct_declarator): Likewise.
2860 (pp_c_declarator): Likewise.
2861 (pp_c_fixed_constant): New function.
2862 (pp_c_constant): Handle FIXED_CST.
2863 (pp_c_primary_expression): Likewise.
2864 (pp_c_expression): Likewise.
2865 * fold-const.c (fixed-value.h): New include.
2866 (negate_expr_p): Return true for FIXED_CST.
2867 (fold_negate_expr): Support FIXED_CST.
2868 (split_tree): Support FIXED_CST.
2869 (const_binop): Support FIXED_CST.
2870 (fold_convert_const_int_from_fixed): New function to convert from
2872 (fold_convert_const_real_from_fixed): New function to convert from
2874 (fold_convert_const_fixed_from_fixed): New function to convert from
2875 fixed to another fixed.
2876 (fold_convert_const_fixed_from_int): New function to convert from
2878 (fold_convert_const_fixed_from_real): New function to convert from
2880 (fold_convert_const): Support conversions from fixed to int, from
2881 fixed to real, from fixed to fixed, from int to fixed, and from real
2883 (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
2884 (operand_equal_p): Support FIXED_CST.
2885 (make_range): For fixed-point modes, we need to pass the
2886 saturating flag as the 2nd parameter.
2887 (tree_swap_operands_p): Handle FIXED_CST.
2888 (fold_plusminus_mult_expr): For fract modes, we cannot generate
2890 (fold_unary): Support FIXED_CONVERT_EXPR.
2891 (fold_binary): Handle FIXED_CST.
2892 Make sure the type is not saturating, before associating operations.
2893 Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
2894 (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
2895 (fold_negate_const): Support FIXED_CST.
2896 (fold_relational_const): Support FIXED_CST.
2897 * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
2898 (gimplify_expr): Handle FIXED_CST.
2899 (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
2900 * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
2901 * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
2902 * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
2903 FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2904 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2905 LONG_LONG_ACCUM_TYPE_SIZE.
2906 * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
2907 * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
2908 * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
2909 * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
2910 MODE_ACCUM, and MODE_UACCUM.
2911 * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
2912 fixed-point types to disable reduction.
2913 * explow.c (promote_mode): Support FIXED_POINT_TYPE.
2915 2007-08-08 David Edelsohn <edelsohn@gnu.org>
2917 * config/rs6000/x-rs6000: New file.
2918 * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
2919 * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
2920 (EXTRA_SPEC_FUNCTIONS): Define.
2921 (HAVE_LOCAL_CPU_DETECT): Define.
2922 (CC1_CPU_SPEC): Define.
2923 * config/rs6000/driver-rs6000.c: New file.
2924 * config/rs6000/aix.h (CC1_SPEC): Define.
2925 * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
2926 * config.host: Add x-rs6000 to host_xmake_file if host and target
2927 are rs6000 or powerpc.
2929 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
2931 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
2933 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2934 Sandra Loosemore <sandra@codesourcery.com>
2935 Chao-ying Fu <fu@mips.com>
2936 Nigel Stephens <nigel@mips.com>
2937 David Ung <davidu@mips.com>
2939 * doc/invoke.texi (-mcode-readable): Document.
2940 * config/mips/mips.opt (mcode-readable): New option.
2941 * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
2942 * config/mips/mips.h (mips_code_readable_setting): New enum.
2943 (mips_code_readable): Declare.
2944 (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
2945 (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
2946 (JUMP_TABLES_IN_TEXT_SECTION): Use it.
2947 (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
2948 boiler-plate comments.
2949 (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2950 * config/mips/mips.c (mips_code_readable): New variable.
2951 (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
2952 MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
2953 context and -mcode-readable setting to restrict the use of
2954 SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
2955 Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
2956 (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
2957 (mips_blocks_for_constant_p): Only return false for
2958 TARGET_MIPS16_PCREL_LOADS.
2959 (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
2960 for MIPS16. Handle SYMBOL_32_HIGH.
2961 (mips_const_insns): Allow HIGHs for MIPS16 too.
2962 (mips_unspec_address_offset): New function, split out from...
2963 (mips_unspec_address): ...here.
2964 (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
2965 16-bit symbolic constants. Assert approropiate conditions for
2966 using the "la" and "dla" macros.
2967 (mips_handle_option): Handle -mcode-readable=.
2968 (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
2969 Set up mips_lo_relocs[SYMBOL_32_HIGH].
2970 (mips_strip_unspec_address): New function, split out from...
2971 (print_operand_reloc): ...here.
2972 (print_operand): Pass constants through mips_strip_unspec_address.
2973 (print_operand_address): Likewise.
2974 (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
2975 (mips_select_rtx_section): Remove MIPS16 handling.
2976 (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
2977 (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
2978 (mips16_lay_out_constants): Do nothing unless
2979 TARGET_MIPS16_PCREL_LOADS.
2980 (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
2981 * config/mips/mips.md: Split HIGHs for MIPS16.
2982 (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2984 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2986 * config/mips/mips-protos.h (mips_emit_move): Declare.
2987 * config/mips/mips.c (mips_emit_move): New function.
2988 (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
2989 (mips_legitimize_const_move): Likewise.
2990 (mips_legitimize_move): Likewise.
2991 (mips_split_64bit_move): Likewise.
2992 (mips_restore_gp): Likewise.
2993 (mips_load_call_address): Likewise.
2994 (mips_emit_fcc_reload): Likewise.
2995 (mips_set_return_address): Likewise.
2996 (mips_block_move_straight): Likewise.
2997 (mips_block_move_loop): Likewise.
2998 (mips_setup_incoming_varargs): Likewise.
2999 (mips_save_reg): Likewise.
3000 (mips_expand_prologue): Likewise.
3001 (mips_restore_reg): Likewise.
3002 (mips_expand_epilogue): Likewise.
3003 (mips_output_mi_thunk): Likewise.
3004 (build_mips16_call_stub): Likewise.
3005 (mips_builtin_branch_and_move): Likewise.
3006 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
3007 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
3008 (fixuns_truncdfdi2): Likewise.
3009 (fixuns_truncsfsi2): Likewise.
3010 (fixuns_truncsfdi2): Likewise.
3011 (loadgp_absolute): Likewise.
3012 (builtin_setjmp_setup): Likewise.
3013 (builtin_longjmp): Likewise.
3014 (untyped_call): Likewise.
3016 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3018 * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
3019 an "rtx *" argument. Return a bool.
3020 * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
3021 values and return true if they can be split. Take the same kind of
3022 mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
3023 and store the lo_sum there if nonnull. Use the symbol type to
3024 determine whether a $gp or HIGH is needed.
3025 (mips_legitimize_address): Update call to mips_split_symbol and
3026 simplify accordingly.
3027 (mips_legitimize_const_move): Likewise.
3028 * config/mips/mips.md: In the combine define_split,
3029 check mips_split_symbol instead of splittable_symbolic_operand.
3030 Update use of mips_split_symbol in the generator code.
3031 * config/mips/predicates.md (splittable_symbolic_operand): Delete.
3033 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3035 * config/mips/mips.c (mips_symbolic_address_p): Delete.
3036 (mips_symbol_insns_1): New function, split out from...
3037 (mips_symbol_insns): ...here. Take a mode argument. Treat loads
3038 and stores separately from load addresses.
3039 (mips_classify_address): Replace uses of mips_symbolic_address_p
3040 with uses of mips_symbol_insns.
3041 (mips_address_insns): Update calls to mips_symbol_insns.
3042 (mips_const_insns): Likewise.
3043 (mips_legitimize_address): Likewise.
3045 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3047 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
3048 * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
3049 block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
3050 Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
3051 non-call contexts if TARGET_MIPS16.
3052 (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
3053 (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
3054 code for SYMBOL_ABSOLUTE.
3055 (mips_symbol_insns): Likewise.
3057 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3059 * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
3060 * config/mips/mips.c (mips_classify_symbol): Take a context argument.
3061 (mips_symbolic_constant_p): Likewise. Update the call to
3062 mips_classify_symbol.
3063 (mips_classify_address): Update the calls to mips_symbolic_constant_p.
3064 (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
3065 (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
3066 (print_operand_reloc): Add a context argument. Update the call to
3067 mips_symbolic_constant_p.
3068 (print_operand): Update the calls to print_operand_reloc.
3069 (print_operand_address): Use print_operand_reloc rather than
3071 (mips_rewrite_small_data_p): Add a context argument. Update the call
3072 to mips_symbolic_constant_p.
3073 (mips_small_data_pattern_1): Make DATA the containing mem.
3074 Update the call to mips_rewrite_small_data_p.
3075 (mips_rewrite_small_data_1): Likewise.
3076 (mips_use_anchors_for_symbol_p): Update the call to
3077 mips_symbolic_constant_p.
3078 * config/mips/predicates.md (const_call_insn_operand): Likewise.
3079 (splittable_symbolic_operand): Likewise.
3080 (move_operand): Likewise.
3081 (absolute_symbolic_operand): Likewise.
3082 (got_disp_operand): Likewise.
3083 (got_page_ofst_operand): Likewise.
3085 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3087 * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
3088 (SYMBOL_ABSOLUTE): ...this.
3089 (SYMBOL_SMALL_DATA): Rename to...
3090 (SYMBOL_GP_RELATIVE): ...this.
3091 (SYMBOL_CONSTANT_POOL): Rename to...
3092 (SYMBOL_PC_RELATIVE): ...this.
3093 * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
3094 (mips_symbolic_address_p, mips_symbol_insns, override_options)
3095 (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
3096 after above changes.
3097 * config/mips/predicates.md (const_call_insn_operand): Likewise.
3098 (general_symbolic_operand): Rename to...
3099 (absolute_symbolic_operand): ...this.
3100 * config/mips/mips.md: Update after above changes.
3102 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
3103 Revital Eres <eres@il.ibm.com>
3105 * ddg.c (print_ddg): Add dump information.
3106 * modulo-sched.c (print_node_sched_params): Add parameter and
3108 (calculate_maxii): Remove function.
3109 (undo_generate_reg_moves): Likewise.
3110 (undo_permute_partial_schedule): Likewise.
3111 (kernel_number_of_cycles): Likewise.
3112 (MAXII_FACTOR): New definition to calculate the upper bound of II.
3113 (sms_schedule): Use it. Remove profitability checks.
3114 (sms_schedule_by_order): Fix order of nodes within the cycle.
3116 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
3118 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
3119 -profile option, add pie support.
3120 (ENDFILE_SPEC): New spec.
3121 * config/gnu.h (LIB_SPEC): Add -profile option.
3123 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
3125 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
3126 * config/gnu.h (LIB_SPEC): Likewise.
3128 2007-08-07 Yaz Saito <saito@google.com>
3129 Ian Lance Taylor <iant@google.com>
3131 * common.opt (finstrument-functions-exclude-function-list): New
3133 (finstrument-functions-exclude-file-list): New option.
3134 * opts.c (char_p): Define and DEF_VEC.
3135 (flag_instrument_functions_exclude_functions): New static
3137 (flag_instrument_functions_exclude_files): New static variable.
3138 (add_instrument_functions_exclude_list): New static function.
3139 (flag_instrument_functions_exclude_p): New function.
3140 (common_handle_option): Handle new options.
3141 * flags.h (flag_instrument_functions_exclude_p): Declare.
3142 * gimplify.c (gimplify_function_tree): Call
3143 flag_instrument_functions_exclude_p.
3144 * doc/invoke.texi (Option Summary): Mention new options.
3145 (Code Gen Options): Document new options.
3147 2007-08-07 Ian Lance Taylor <iant@google.com>
3149 PR rtl-optimization/32776
3150 * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
3151 (resolve_use): Likewise.
3152 (decompose_multiword_subregs): Remove "changed" local variable.
3154 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
3156 * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
3157 * configure: Regenerate.
3158 * config.in: Regenerate.
3159 * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
3162 2007-08-07 Ian Lance Taylor <iant@google.com>
3164 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
3165 note, just delete the insn.
3167 2007-08-07 Andreas Schwab <schwab@suse.de>
3170 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
3173 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
3175 * lower-subreg.c (resolve_subreg_use): Remove assertion.
3176 (find_decomposable_shift_zext, resolve_shift_zext): New functions.
3177 (decompose_multiword_subregs): Use the functions above to decompose
3178 multiword shifts and zero-extends.
3180 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
3182 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
3183 "assemble" descriptions which were swapped.
3185 2007-08-06 Chao-ying Fu <fu@mips.com>
3187 * fixed-value.h: New file.
3188 * fixed-value.c: New file.
3189 * Makefile.in (OBJS-common): Add fixed-value.o.
3190 (fixed-value.o): New rule.
3191 (GTFILES): Add fixed-value.h.
3192 * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
3193 to compare a.low and b.low.
3194 * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
3196 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
3197 Daniel Jacobowitz <dan@codesourcery.com>
3200 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
3202 (x86_64-*-netbsd*): Likewise.
3203 (x86_64-*-linux*): Likewise.
3204 (x86_64-*-kfreebsd*-gnu): Likewise.
3205 (x86_64-*-knetbsd*-gnu): Likewise.
3206 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
3208 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
3210 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
3211 Add -fno-asynchronous-unwind-tables.
3213 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
3214 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
3215 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
3216 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
3217 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
3219 2007-08-06 Steve Ellcey <sje@cup.hp.com>
3221 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
3222 (TARGET_C_MODE_FOR_SUFFIX): New.
3224 2007-08-06 Steve Ellcey <sje@cup.hp.com>
3226 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
3228 2007-08-06 Steve Ellcey <sje@cup.hp.com>
3230 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
3232 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
3234 * config/i386/i386.md: Check TARGET_ macros and optimize_size
3235 before checking function returns in conditional expressions.
3237 2007-08-06 Alfred Minarik <a.minarik@aon.at>
3240 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
3242 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
3245 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
3246 for INTEGRAL_TYPE_P.
3248 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
3250 * configure.ac: Remove --enable-checking=df from default settings.
3251 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
3252 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
3253 if the parameter is true.
3254 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
3255 DF_VERIFY_SCHEDULED flag is true.
3256 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
3257 (df_finish_pass): Adjust prototype.
3258 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
3261 * see.c (pass_see): Add TODO_df_verify.
3262 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
3263 * global.c (rest_of_handle_global_alloc): Schedule verification
3265 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
3267 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
3268 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
3269 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
3271 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
3272 * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
3273 * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
3275 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
3276 Revital Eres <eres@il.ibm.com>
3278 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
3280 * ddg.c (create_ddg_dependence): Rename to...
3281 (create_ddg_dep_from_intra_loop_link): This. Do not check
3282 for interloop edges. Do not create anti dependence edge when
3283 a true dependence edge exists in the opposite direction and
3284 -fmodulo-sched-allow-regmoves is set.
3285 (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
3286 (add_cross_iteration_register_deps): Create anti dependence edge
3287 when -fno-modulo-sched-allow-regmoves is set.
3288 * common.opt (-fmodulo-sched-allow-regmoves): New flag.
3290 2007-08-04 Richard Sandiford <richard@codesourcery.com>
3292 * config/arm/arm.md (movsi): Add braces.
3294 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
3297 * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
3298 operands for the folding of "A - (A & B)" into "~B & A"; cast them
3301 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
3303 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
3304 state accessor functions.
3305 * cfgloopmanip.c (remove_path, create_preheaders,
3306 force_single_succ_latches, fix_loop_structure): Ditto.
3307 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
3308 tree_duplicate_loop_to_header_edge): Ditto.
3309 * cfgloopanal.c (mark_irreducible_loops): Ditto.
3310 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
3312 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
3313 cleanup_tree_cfg): Ditto.
3314 * tree-cfg.c (tree_merge_blocks): Ditto.
3315 * cfgloop.c (rescan_loop_exit, record_loop_exits,
3316 release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
3317 loop_preheader_edge, single_exit): Ditto.
3318 (flow_loops_find): Do not clear loops->state.
3319 * cfgloop.h (loops_state_satisfies_p, loops_state_set,
3320 loops_state_clear): New functions.
3322 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
3325 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3326 when adding to the base and convert ELT to sizetype instead of type.
3328 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
3331 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
3332 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
3334 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
3337 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
3338 correct type the negate expression.
3340 2007-08-03 Jan Hubicka <jh@suse.cz>
3342 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred