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