1 2007-08-08 Andrew Haley <aph@redhat.com>
3 * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
4 * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
5 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
7 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr>
10 * common.opt: Mention ABI version 2 in comment.
12 2007-09-04 Jan Hubicka <jh@suse.cz>
14 * optabs.c (debug_optab_libfunc): Update; make available to gdb.
15 (libfunc_entry): New structure.
16 (libfunc_hash): New hashtable.
17 (hash_libfunc): New function.
18 (eq_libfunc): New function.
19 (convert_optab_libfunc): New function.
20 (optab_libfunc): New function.
21 (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
22 expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
23 expand_float, expand_fix, new_optab, new_convert_optab):
24 Update for new libfunc API.
25 (init_libfunc, init_integral_libfuncs,
26 init_floating_libfuncs, init_interclass_conv_libfuncs
27 init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
28 (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
29 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
30 gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
31 gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
32 gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
33 gen_extend_conv_libfunc): New.
34 (init_one_libfunc): Revamp for hashtables.
35 (set_conv_libfunc): Likewise.
36 (init_optabs): Initialize hashtable; use lazy initialization where
38 * optabs.h (optab_handlers): Move out of GGC.
39 (optab, convert_optab): Move out of GGC; add lazy gen info.
40 (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
41 (optab_libfunc, convert_optab_libfunc): New.
42 * builtins.c (expand_builtin_powi): Update for new API.
43 * expr.c (convert_move): Likewise.
44 * expmed.c (expand_divmod): Likewise.
46 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
48 * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
49 GOT pointer only if there is a constant pool. Use the allocated space
52 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
54 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
57 2007-09-04 Revital Eres <eres@il.ibm.com>
58 Richard Guenther <rguenther@suse.de>
59 R. Clint Whaley <whaley@cs.utsa.edu>
61 * doc/invoke.texi (-fassociative-math, -freciprocal-math):
63 * tree-tailcall.c (process_assignment): Use -fassociative-math
64 when reodering operands of floating-point type.
65 * fold-const.c (fold_comparison, fold_binary): Use
66 -fassociative-math and -freciprocal-math instead of
67 -funsafe-math-optimization flag.
68 * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
69 * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
70 -freciprocal-math instead of -funsafe-math-optimizations.
71 * opts.c (set_fast_math_flags): Set -freciprocal-math and
72 -fassociative-math when -ffast-math is set.
73 (set_unsafe_math_optimizations_flags): New Function
74 to set -freciprocal-math and -fassociative-math when
75 -funsafe-math-optimizations is set.
76 (common_handle_option): Call it.
77 * tree-vectorizer.c (vect_is_simple_reduction): Use
78 -fassociative-math when doing reduction on floats.
79 * loop-unroll.c (analyze_insn_to_expand_var): Use
80 -fassociative-math when expanding an accumulator of type float.
81 * simplify-rtx.c (simplify_binary_operation_1): Use
82 -fassociative-math and -freciprocal-math when reordeing operands
83 of floating-point type.
84 * combine.c (combine_simplify_rtx): Likewise.
85 * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
87 * common.opt (-fassociative-math, -freciprocal-math): New flags.
89 2007-09-04 Paolo Carlini <pcarlini@suse.de>
92 * doc/install.texi (--enable-__cxa_atexit): Fix typo.
94 2007-09-04 Jan Hubicka <jh@suse.cz>
96 * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
98 2007-09-04 Jan Hubicka <jh@suse.cz>
100 * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
101 and corresponding MATCH_DUP.
103 2007-09-04 Uros Bizjak <ubizjak@gmail.com>
106 * combine.c (subst): Do not try to simplify X if it represents load
107 of FP constant from the constant pool via float extension.
109 2007-09-04 Ben Elliston <bje@au.ibm.com>
111 * c-opts.c: Include "tm_p.h".
112 * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
114 2007-09-04 Richard Guenther <rguenther@suse.de>
116 PR tree-optimization/33291
117 * tree-pretty-print.c (dump_generic_node): Dump all
118 qualifiers for pointer types, not only first. Dump
119 qualifiers for aggregate types as well.
120 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
121 use the canonical type for building ARRAY_REFs.
122 * gimplify.c (canonicalize_addr_expr): Clean up. The
123 correct validness check is compatibility of the pointer
124 types. Always use the canonical type for building
125 ARRAY_REFs and ADDR_EXPRs.
126 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
127 change that disabled propagation of ADDR_EXPRs into statements
130 2007-09-03 Zack Weinberg <zack@codesourcery.com>
132 * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
133 (umulsi3_highpart): Make into expanders; existing insns are
134 now named *[insn]_nov6. Add stars to existing [insn]_v6
137 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
139 * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
140 (unprotoize.o): Remove SHLIB_MULTILIB.
142 2007-09-03 Eric Weddington <eweddington@cso.atmel.com>
144 * doc/extend.texi: Document progmem attribute for AVR.
146 2007-09-03 Anatoly Sokolov <aesok@post.ru>
149 * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
151 2007-09-03 Zack Weinberg <zack@codesourcery.com>
153 * optabs.c (expand_ffs): Initialize val and defined_at_zero
156 * optabs.c: Remove unnecessary forward declarations.
157 (expand_unop_direct): New, broken out of expand_unop.
158 (expand_doubleword_clz): New.
159 (expand_ctz): Move above expand_ffs. Use
160 start_sequence, end_sequence, add_equal_note, and
161 expand_unop_direct. Add more commentary.
162 (expand_ffs): Try both ctz optab and expand_ctz.
163 Generate a test and branch if the hardware doesn't give us
164 a useful value for input zero. Style improvements similar to
167 * config/arm/arm.md (ffssi2, ctzsi2): Delete.
169 2007-09-03 Zack Weinberg <zack@codesourcery.com>
171 * config.gcc: Delete stanza for arm-semi-aof and
172 armel-semi-aof targets.
173 * config/arm/arm-protos.h
175 * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
176 make all #ifndef AOF_ASSEMBLER blocks unconditional. Also
177 delete aof_pic_label and remove mention of AOF in comments.
178 * config/arm/arm.md: Delete patterns used only for AOF assembly.
180 * config/arm/semiaof.h
181 * config/arm/t-semi: Delete file.
183 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
185 * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
186 CONST_CAST_BB): New macros for type-specific casts.
187 (CONST_CAST): Add a TYPE parameter and define it in terms of
190 * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
191 * c-lex.c (cb_ident, lex_string): Likewise,
192 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
193 * config/i386/i386.c (ix86_function_regparm,
194 ix86_function_sseregparm): Use CONST_CAST_TREE.
195 * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
197 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
198 give_switch, set_multilib_dir): Likewise,
199 * gengtype-parse.c (string_seq, typedef_name): Likewise,
200 * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
201 * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
202 * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
203 * prefix.c (update_path): Likewise,
204 * pretty-print.c (pp_base_destroy_prefix): Likewise,
205 * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
206 * tree-cfg.c (tree_can_merge_blocks_p,
207 tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
208 * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
209 * tree.c (build_string): Supply a TYPE for CONST_CAST.
210 (attribute_list_contained): Use CONST_CAST_TREE.
212 2007-09-03 Krister Walfridsson <cato@df.lth.se>
214 * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
216 2007-09-03 Richard Sandiford <richard@codesourcery.com>
219 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
220 before forcing them into a register.
222 2007-09-03 Richard Sandiford <richard@codesourcery.com>
224 * config/mips/mips.md (fetchop_bit): Use define_code_iterator
225 rather than define_code_macro.
227 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
229 * gcc.c (xputenv): New function.
230 (putenv_from_prefixes): Use xputenv instead of putenv.
231 (process_command): Use xputenv instead of putenv.
232 (set_collect_gcc_options): Use xputenv instead of putenv.
233 (main): Use xputenv instead of putenv.
235 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
237 * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
238 availability of swap instruction.
239 * config/cris/cris.md (bswapsi2): Implement using swap instruction.
241 2007-09-03 Revital Eres <eres@il.ibm.com>
243 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
246 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
247 Ayal Zaks <zaks@il.ibm.com>
248 Revital Eres <eres@il.ibm.com>
250 * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
251 compute_split_row): New functions.
252 (ps_unschedule_node): Remove.
253 (normalize_sched_times): Iterate over the already scheduled
254 insns instead of the number of nodes.
255 (MAX_SPLIT_NUM): New definition.
256 (sms_schedule_by_order): Change the scheduling heuristic to
257 avoid useless increases of initiation interval ii.
258 (get_sched_window): Add dump printouts.
260 2007-09-02 David Daney <ddaney@avtrex.com>
262 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
263 UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
264 (optab, insn): Add more attributes.
265 (fetchop_bit): New code macro.
266 (immediate_insn): New code macro attribute.
267 (sync): Change condition to ISA_HAS_SYNC.
268 (rdhwr): Change predicate for operand 0 to register_operand.
269 (memory_barrier): New expand.
270 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
271 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
272 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
273 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
274 sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
275 * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
276 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
277 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
278 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
280 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
281 Hans-Peter Nilsson <hp@axis.com>
283 * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
284 Defined to describe availability and behavior of CLZ.
285 * config/cris/cris.md (clzsi2): Implement using lz instruction.
286 * config/cris/cris.opt: Tweak comment for "-metrax4".
287 * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
288 * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
289 (count_leading_zeros): Define.
291 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
293 * ggc-page.c (ggc_pch_read): Call validate_free_objects.
295 2007-09-02 Joseph Myers <joseph@codesourcery.com>
298 * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
301 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
303 * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
304 config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
305 ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
306 sched-deps.c, sched-int.h, system.h, target.h,
307 tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
308 tree.def: Fix comment typos.
310 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
312 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
313 (override_options): Turn on -mstrict-align on non-ColdFire
315 * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
317 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
319 * c-common.c (const_strip_array_types): Delete.
320 * c-common.h (const_strip_array_types): Likewise.
321 * emit-rtl.c (const_next_insn, const_previous_insn,
322 const_next_nonnote_insn, const_prev_nonnote_insn,
323 const_next_real_insn, const_prev_real_insn,
324 const_next_active_insn, const_prev_active_insn, const_next_label,
325 const_prev_label): Delete.
326 * gimple-low.c (block_may_fallthru): Use expr_last.
327 * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
328 * rtl.h (const_previous_insn, const_next_insn,
329 const_prev_nonnote_insn, const_next_nonnote_insn,
330 const_prev_real_insn, const_next_real_insn,
331 const_prev_active_insn, const_next_active_insn, const_prev_label,
332 const_next_label): Delete.
333 * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
334 * system.h (CONST_CAST): Update comment.
335 * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
336 (const_first_stmt, const_last_stmt): Delete.
337 (tree_block_ends_with_condjump_p): Use last_stmt.
338 * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
339 * tree-iterator.c (const_expr_first, const_expr_last,
340 const_expr_only): Delete.
341 * tree.c (const_lookup_attribute): Likewise.
342 (attribute_list_contained): Use lookup_attribute.
343 * tree.h (const_lookup_attribute, const_expr_first,
344 const_expr_last, const_expr_only): Delete.
346 2007-09-01 Richard Guenther <rguenther@suse.de>
348 * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
349 instead of TREE_THIS_VOLATILE.
350 * tree-ssa-operands.c (add_virtual_operand): Do not set
351 has_volatile_ops. Do not check s_ann for NULL.
352 (get_indirect_ref_operands): Likewise.
353 (get_expr_operands): Likewise. For all reference trees
354 set has_volatile_ops based on TREE_THIS_VOLATILE. Also
355 check base of reference for TREE_THIS_VOLATILE.
357 2007-09-01 Richard Guenther <rguenther@suse.de>
359 * tree-cfg.c (verify_gimple_expr): Fix check for conversions
360 between integral types. Also allow conversions between
363 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
365 * optabs.c (prepare_float_lib_cmp): Use
366 libgcc_cmp_return_mode instead of word_mode.
367 * config/dfp-bit.h: Likewise.
368 * config/fp-bit.h: Likewise.
369 * config/spu/spu.c (spu_libgcc_cmp_return_mode):
371 (spu_libgcc_shift_count_mode): New function.
372 (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
373 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
375 2007-08-31 Joseph Myers <joseph@codesourcery.com>
377 * tree-pretty-print.c: Include output.h.
378 (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
379 HOST_WIDE_INT_PRINT_DEC.
380 * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
382 2007-08-31 Zdenek Dvorak <ook@ucw.cz>
384 PR rtl-optimization/33224
385 * loop-iv.c (latch_dominating_def): Check that the definition belongs
386 to the analysed region.
388 2007-08-31 Richard Guenther <rguenther@suse.de>
390 * function.c (allocate_struct_function): Do not set
391 current_function_returns_pointer.
392 * function.h (struct var_refs_queue): Remove.
393 (struct simple_obstack_stack): Likewise.
394 (struct function): Remove fixup_var_refs_queue member.
395 Remove returns_pointer flag.
396 (current_function_returns_pointer): Remove define.
398 2007-08-31 Nick Clifton <nickc@redhat.com>
400 * tree-ssa-coalesce.c (compare_pairs): Use the elements as
401 secondary keys in order to obtain a stable sort.
403 2007-08-31 Nick Clifton <nickc@redhat.com>
406 * config/m32r/constraints.md: Add W constraint for integer zero.
407 * config/m32r/m32r.md (get_pc): Use W and i constraints.
408 Fix length calculation by using alternatives.
410 2007-08-31 Richard Sandiford <richard@codesourcery.com>
412 * optabs.c (shift_optab_p, commutative_optab_p): New functions,
413 split out from expand_binop.
414 (avoid_expensive_constant): New function.
415 (expand_binop_directly): Remove commutative_op argument and
416 (expand_binop_directly): Remove commutative_op argument and
417 call cummutative_optab_p instead. Do not change op0 or op1
418 when swapping xop0 and xop1. Apply avoid_expensive_constant
419 to each argument after potential swapping. Enforce the
420 canonical order of commutative operands.
421 (expand_binop): Use shift_optab_p and commutative_optab_p.
422 Update the calls to expand_binop_directly. Only force constants
423 into registers when widening an operation. Only swap operands
424 once a direct expansion has been rejected.
425 (expand_twoval_binop): Only force constants into registers when
426 using a direct expansion.
428 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
430 * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
431 (sched_analyze_insn): Don't postprocess speculative dependencies when
432 target has no scheduling.
433 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
434 'uninitialized' warning.
436 2007-08-31 Richard Guenther <rguenther@suse.de>
438 * tree.c (build_complex_type): Always set TYPE_NAME for
441 2007-08-31 Olivier Hainque <hainque@adacore.com>
443 * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
444 internal macro. Default alignment factor for csect directives, chosen
445 to match what BIGGEST_ALIGNMENT allows.
446 (DATA_SECTION_ASM_OP): Use it.
447 * config/rs6000/rs6000.c
448 (rs6000_xcoff_output_readonly_section_asm_op):
449 Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
450 (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
452 2007-08-31 Olivier Hainque <hainque@adacore.com>
454 * dbxout.c (dbxout_block): Move declaration within the first
455 #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such
456 block to include the definition, together with the associated
459 2007-08-31 David Edelsohn <edelsohn@gnu.org>
460 Revital Eres <eres@il.ibm.com>
462 * doc/invoke.texi (-mpaired): Document flag.
463 * config.gcc: Include paired.h in powerpc extra_headers and
464 750cl.h in powerpc-*-linux*paired*.
465 * config/rs6000/rs6000.opt (-mpaired): New flag.
466 * config/rs6000/rs6000.c (paired_init_builtins,
467 paired_expand_builtin, paired_expand_lv_builtin,
468 paired_expand_stv_builtin, paired_expand_predicate_builtin):
469 New functions to support the paired single builtin functions.
470 (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
471 (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
473 (bdesc_paired_preds): New structure for paired predicate
475 (rs6000_expand_builtin): Expand paired single builtins.
476 (rs6000_init_builtins): Init paired single builtins.
477 (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
478 Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
479 and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types
480 v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
481 (rs6000_vector_mode_supported_p): Support paired vector mode.
482 * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
483 PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
485 (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
486 (DATA_ALIGNMENT): Likewise.
487 (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
488 (rs6000_builtins): Add PAIRED builtins.
489 * config/rs6000/rs6000.md: Include paired.md.
490 * config/rs6000/paired.h: New.
491 * config/rs6000/paired.md: New.
492 * config/rs6000/750cl.h: New.
493 * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
495 2007-08-30 Ollie Wild <aaw@google.com>
497 * c-opts.c (c_common_handle_option): Support -fno-directives-only.
498 * gcc.c (default_compilers): Add -fno-directives-only to
501 2007-08-30 Sandra Loosemore <sandra@codesourcery.com>
505 * regclass.c (initial_fixed_regs): Revert previous change and make
507 (initial_call_used_regs): Likewise.
508 (initial_call_really_used_regs): Delete, reverting previous addition.
509 (initial_reg_names): Likewise.
510 (init_reg_sets): Revert previous change.
511 (saved_fixed_regs): New.
512 (saved_call_used_regs): New.
513 (saved_call_really_used_regs): New.
514 (saved_reg_names): New.
515 (save_register_info): New.
516 (restore_register_info): New.
517 (init_reg_sets_1): Replace reset of register info with call to
518 restore_register_info.
519 * rtl.h (save_register_info): Declare.
520 * toplev.c (backend_init): Call save_register_info.
522 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
524 * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
525 from the original statement.
527 2007-08-30 Chao-ying Fu <fu@mips.com>
529 * c-lex.c (interpret_fixed): Declare.
530 (interpret_float): Process _Fract and _Accum.
531 (interpret_fixed): New function.
532 * final.c (output_addr_const): Process CONST_FIXED.
533 * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
534 (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
536 (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
538 (simplify_immed_subreg): Support CONST_FIXED.
539 Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
540 (simplify_subreg): Support CONST_FIXED.
542 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
544 * config/rs6000/ppu_intrinsics.h: New file.
545 * config.gcc (powerpc*-*-* <extra_headers>): Install
548 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
550 * cfg.c (dump_flow_info): Change to also print entry and exit
552 * print-rtl.c (print_rtl_single): Allow to print rtl with
555 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
557 * df-core.h (df_dump_region): New function.
558 * df.h (df_dump_region): New function.
559 * loop-invariant.c (find_defs): Add call to df_dump_region.
560 * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
563 2007-08-30 Jakub Jelinek <jakub@redhat.com>
565 * decl.c (start_preparsed_function): Set
566 DECL_DISREGARD_INLINE_LIMITS for GNU_INLINE_P functions.
569 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
570 true if any of the compare_section_name calls returned true,
571 rather than if any returned false.
573 2007-08-30 Richard Guenther <rguenther@suse.de>
575 PR tree-optimization/33199
576 * tree-ssa-structalias.c (handle_lhs_call): New function.
577 (find_func_aliases): In non-IPA mode make sure that for
578 calls that return a pointer we add a constraint for the
579 result to point to anything.
581 2007-08-30 Richard Guenther <rguenther@suse.de>
583 * doc/invoke.texi (-mveclibabi): Document new target option.
584 * config/i386/i386.opt (-mveclibabi): New target option.
585 * config/i386/i386.c (ix86_veclib_handler): Handler for
586 vectorization library support.
587 (override_options): Handle the -mveclibabi option, initialize
588 the vectorization library handler.
589 (ix86_builtin_vectorized_function): As fallback call the
590 vectorization library handler, if set.
591 (ix86_veclibabi_acml): New static function for ACML ABI style
592 vectorization support.
594 2007-08-30 Jakub Jelinek <jakub@redhat.com>
596 * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
597 used_m, even if it is 32-bit aligned, adjust used_m MEM to have
598 SImode and update m. Don't run gen_lowpart_common on arbitrary
599 memory address, force it to register first.
602 * dce.c (dce_process_block): Don't delete setters of
603 artificially used registers.
605 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
607 * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
608 "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
609 "*add<mode>3_alc_carry2_cconly"): New insn definitions.
611 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
613 * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
615 * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
616 "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
618 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
620 * system.h: Activate -Wcast-qual as warning-only.
622 2007-08-29 Paolo Bonzini <bonzini@gnu.org>
625 * config/rs6000/rs6000.c (compare_section_name): New function.
626 (rs6000_elf_in_small_data_p): Compare section prefixes instead
629 2007-08-29 Olivier Hainque <hainque@adacore.com>
631 * xcoffout.c: #include debug.h.
632 * Makefile.in (xcoffout.o): Add debug.h dependency.
634 2007-08-29 Uros Bizjak <ubizjak@gmail.com>
636 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
637 Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
639 2007-08-29 Richard Guenther <rguenther@suse.de>
641 * tree-pretty-print.c (dump_generic_node): Print
642 label DECL_UID as D.%u.
643 * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
645 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
647 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
648 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
650 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
653 * tree.c (build_type_attribute_qual_variant): Set canonical types
654 on the final, unqualified attribute variant before building the
657 2007-08-29 Jie Zhang <jie.zhang@analog.com>
659 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
660 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
662 2007-08-29 Jie Zhang <jie.zhang@analog.com>
665 2007-08-29 Jie Zhang <jie.zhang@analog.com>
666 * config/bfin/bfin.md (composev2hi): Put operands into vector
669 2007-08-29 Jie Zhang <jie.zhang@analog.com>
671 * config/bfin/bfin.md (composev2hi): Put operands into vector
674 2007-08-29 Jie Zhang <jie.zhang@analog.com>
676 * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
677 attribute when appropriate.
678 (bfin_handle_l1_text_attribute): New.
679 (bfin_handle_l1_data_attribute): New.
680 (bfin_attribute_table): Add attributes: l1_text, l1_data,
681 l1_data_A and l1_data_B.
682 * doc/extend.texi (node Function Attributes): Document l1_text
684 (Variable Attributes): Add Blackfin subsection. Document l1_data,
685 l1_data_A and l1_data_B variable attributes.
687 2007-08-28 Jie Zhang <jie.zhang@analog.com>
689 * config/bfin/bfin.opt (minline-plt): Add.
690 * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
691 call to global functions.
692 * doc/invoke.texi (Option Summary): Mention -minline-plt.
693 (Blackfin Options): Document -minline-plt.
695 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
697 * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
698 given a non-function.
699 (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
701 2007-08-28 DJ Delorie <dj@redhat.com>
703 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
705 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
707 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
709 2007-08-28 Richard Guenther <rguenther@suse.de>
711 * tree.h (struct tree_function_decl): Increase size of
712 function_code bitfield.
714 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
715 Kazu Hirata <kazu@codesourcery.com>
717 * gcc/config/m68k/linux.h
718 (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
719 * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
720 (m68k_return_in_memory): New.
721 * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
724 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
727 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
728 Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
729 operand) when top VEC_SELECT extracts scalar element.
730 * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
731 (*vec_extract_v4sf_mem): Ditto.
733 2007-08-28 Jakub Jelinek <jakub@redhat.com>
736 * passes.c (init_optimization_passes): Move pass_df_finish
737 after pass_postreload sublist.
739 PR rtl-optimization/33148
740 * simplify-rtx.c (simplify_unary_operation_1): Only optimize
741 (neg (lt X 0)) if X has scalar int mode.
744 * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
745 initializer, use build_vector_from_ctor if possible to create
746 VECTOR_CST out of it. If vector initializer is not VECTOR_CST
747 even after this, return NULL.
749 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
751 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
753 2007-08-28 Richard Guenther <rguenther@suse.de>
755 * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
756 (struct tree_function_decl): Make function_code a bitfield.
757 Add disregard_inline_limits flag.
758 * cgraphunit.c (cgraph_process_new_functions): Check
759 DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
760 (cgraph_preserve_function_body_p): Likewise.
761 * ipa-inline.c (compute_inline_parameters): Likewise.
762 * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
763 for GNU C extern inline functions.
764 (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
765 * tree-inline.c (disregard_inline_limits_p): Remove.
766 * tree-inline.h (disregard_inline_limits_p): Likewise.
767 * c-common.c (handle_always_inline_attribute): Set
768 DECL_DISREGARD_INLINE_LIMITS.
769 * langhooks.c (add_builtin_function): Verify the function code
770 fits in the bitfield.
772 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com>
773 Vladimir Yanovsky <yanov@il.ibm.com>
774 Revital Eres <eres@il.ibm.com>
775 Andrey Belevantsev <abel@ispras.ru>
777 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
779 * modulo-sched.c: Add documentation regarding do-loop.
780 (doloop_register_get): Change number of arguments to support
781 the new do-loop pattern and check whether COUNT_REG has no other
782 occurences in the loop besides in the control part.
783 (duplicate_insns_of_cycles): Do not duplicate the insn which
784 changes count_reg as it is already adjusted.
785 (generate_prolog_epilog): New argument to support the new
786 do-loop pattern. Change the subtract instruction to use
787 expand_simple_binop. Call duplicate_insns_of_cycles with new
789 (sms_schedule): Call doloop_register_get and
790 generate_prolog_epilog with new argument. Do not handle loops
791 with single sets insns with subreg in their lhs.
792 * loop-doloop.c (doloop_optimize): Support for another do-loop
794 (doloop_condition_get): Gets an instruction instead of a pattern
795 and change the return condition when the do-loop pattern is
797 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
798 deps when considering to not create edges.
800 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
802 * doc/extend.texi (gnu_inline funtion attribute): Document C++
805 2007-08-27 Jason Merrill <jason@redhat.com>
808 * gimplify.c (gimplify_modify_expr): Discard the assignment of
809 zero-sized types after calling gimplify_modify_expr_rhs.
811 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
813 * regclass.c (init_reg_autoinc): Fix typo.
815 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
817 Fix PR tree-optimization/33173
818 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
820 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
823 * config/i386/i386.h (VALID_DFP_MODE_P): New.
824 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
827 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
828 David Ung <davidu@mips.com>
829 Nigel Stephens <nigel@mips.com>
831 Separate target-specific initialization from general
832 back-end initialization.
834 * toplev.c (init_alignments): New, split out from...
835 (process_options): ...here.
836 (backend_init_target): New, split out from...
837 (backend_init): ...here.
838 (lang_dependent_init_target): New, split out from...
839 (lang_dependent_init): ...here.
840 (target_reinit): New.
841 * toplev.h (target_reinit): Declare.
842 * expr.c (init_expr_target): Renamed from init_expr_once, since it
843 now can be called more than once. Update comments.
844 * expr.h (init_expr_target): Likewise.
845 * alias.c (init_alias_target): Renamed from init_alias_once, since it
846 now can be called more than once. Explicitly zero
847 static_reg_base_value.
848 * emit-rtl.c (init_emit_regs): New, split out from...
849 (init_emit_once): Here.
850 * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
851 non-const, so that changes from command-line arguments can overwrite
852 values provided by the static initializers.
853 (initial_call_really_used_regs): New, used similarly to the above.
854 (initial_reg_names): Likewise.
855 (last_mode_for_init_move_cost): Promoted function-local static to
856 file-scope static to make it accessible outside init_move_cost.
857 (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
858 Do not initialize inv_reg_alloc_order yet, either. Do initialize
859 reg_names since it is needed for parsing command-line options.
860 (init_move_cost): Use last_mode_for_init_move_cost instead of
861 function-local static.
862 (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
863 call_really_used_regs now. Reinitialize reg_names. Also
864 initialize inv_reg_alloc_order. Zero reg_class_subunion and
865 reg_class_superunion. Clear losing_caller_save_reg_set.
866 Preserve global registers if called more than once. Reset
867 move cost, may_move_in_cost, may_move_out_cost, and
868 last_mode_for_init_move_cost.
869 (init_reg_modes_target): Renamed from init_reg_modes_once, since it
870 can now be invoked more than once. Update comments.
871 (init_regs): Update comments.
872 (fix_register): Update initial_fixed_regs, initial_call_used_regs,
873 and initial_call_really_used_regs, instead of the non-initial
874 variables. This allows us to save the command-line register settings
875 after target reinitialization.
876 (init_reg_autoinc): Zero forbidden_inc_dec_classes.
877 * rtl.h (init_emit_regs): Declare.
878 (init_reg_modes_target, init_alias_target): Renamed as described
880 * reload1.c (init_reload): Update comments.
881 * optabs.c (init_optabs): Likewise.
882 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
884 2007-08-26 Chao-ying Fu <fu@mips.com>
886 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
889 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
891 * alias.c (memory_modified_1, memory_modified_in_insn_p):
893 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
895 * bb-reorder.c (copy_bb_p): Likewise.
896 * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
897 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
898 block_ends_with_condjump_p): Likewise.
899 * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
900 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
901 block_ends_with_condjump_p): Likewise.
902 * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
903 * cfgrtl.c (can_delete_note_p, can_delete_label_p,
904 rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
905 rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
906 need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
907 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
908 debug_true_const_tree instad of debug_true_tree.
909 * debug.c (do_nothing_debug_hooks): Likewise.
910 * debug.h (ignore_block, debug_true_const_tree): Constify.
911 * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
912 dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
913 decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
914 same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
915 dbx_reg_number, is_based_loc, field_type,
916 simple_type_align_in_bits, simple_decl_align_in_bits,
917 simple_type_size_in_bits, field_byte_offset, insert_float,
918 type_tag, member_declared_type, is_redundant_typedef,
919 secname_for_decl, is_inlined_entry_point): Likewise.
920 * emit-rtl.c (const_next_insn, const_previous_insn,
921 const_next_nonnote_insn, const_prev_nonnote_insn,
922 const_next_real_insn, const_prev_real_insn,
923 const_next_active_insn, const_prev_active_insn, const_next_label,
924 const_prev_label): Likewise.
925 * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
927 * haifa-sched.c (may_trap_exp, haifa_classify_insn,
928 find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
929 sched_insn_is_legitimate_for_speculation_p): Likewise.
930 * jump.c (reversed_comparison_code_parts,
931 reversed_comparison_code, reversed_comparison, condjump_label):
933 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
934 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
936 * rtl.h (const_previous_insn, const_next_insn,
937 const_prev_nonnote_insn, const_next_nonnote_insn,
938 const_prev_real_insn, const_next_real_insn,
939 const_prev_active_insn, const_next_active_insn, const_prev_label,
940 const_next_label, modified_between_p, modified_in_p,
941 const_note_storeskeep_with_call_p, condjump_label,
942 reversed_comparison, reversed_comparison_code,
943 reversed_comparison_code_parts, memory_modified_in_insn_p,
944 stack_regs_mentioned): Likewise.
945 * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
946 keep_with_call_p): Likewise.
947 * sched-deps.c (deps_may_trap_p, sched_get_condition,
948 conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
949 sd_lists_size, sd_lists_empty_p): Likewise.
950 * sched-int.h (sched_insns_conditions_mutex_p,
951 haifa_classify_insn, no_real_insns_p,
952 sched_insn_is_legitimate_for_speculation_p, sd_next_list,
953 sd_lists_size, sd_lists_empty_p): Likewise.
954 * sdbout.c (sdb_debug_hooks): Likewise.
955 * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
956 stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
957 -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
959 * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
960 tree_can_throw_internal): Likewise.
961 * tree-flow-inline.h (phi_nodes): Likewise.
962 * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
963 tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
964 * tree-gimple.c (const_get_call_expr_in): Likewise.
965 * tree-gimple.h (const_get_call_expr_in): Likewise.
966 * tree.c (const_lookup_attribute, attribute_list_equal,
967 attribute_list_contained): Likewise.
968 * tree.h (attribute_list_equal, attribute_list_contained,
969 const_lookup_attribute): Likewise.
970 * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
972 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
974 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
975 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
977 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
980 * config/alpha/constraints.md: Delete "svn:mime-type" property
981 with svn propdel "svn:mime-type".
983 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
986 * ifcvt.c (noce_get_alt_condition): Make sure that the previous
987 non NOTE insn doesn't cross basic block.
988 (noce_try_abs): Likewise.
989 (noce_process_if_block): Likewise.
991 2007-08-26 David Edelsohn <edelsohn@gnu.org>
994 * config/rs6000/predicates.md (offsettable_mem_operand): Memory
995 operand without auto-inc-dec.
996 * config/rs6000/rs6000.md (floatsidf2_internal): Use
997 offsettable_mem_operand.
998 (floatunssidf2_internal): Same.
999 (fix_truncdfsi2_internal): Same.
1000 (floatsidf_ppc64): Same.
1001 (floatunssidf_ppc64): Same.
1002 (fix_trunctfsi2_internal): Same.
1004 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
1007 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
1008 pass defines needed for version.c.
1010 2007-08-25 Joseph Myers <joseph@codesourcery.com>
1012 * configure.ac (--debug-prefix-map check): Change assembler
1013 version presumed to have feature to 2.18.
1014 * configure: Regenerate.
1016 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1018 * c-common.c (vector_types_convertible_p,
1019 decl_with_nonnull_addr_p, c_promoting_integer_type_p,
1020 self_promoting_args_p): Constify.
1021 * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
1022 c_promoting_integer_type_p, self_promoting_args_p,
1023 anon_aggr_type_p, vector_types_convertible_p): Likewise.
1024 * c-decl.c (anon_aggr_type_p): Likewise.
1025 * * c-dump.c (dump_stmt): Likewise.
1026 * c-objc-common.c (has_c_linkage): Likewise.
1027 * c-tree.h (same_translation_unit_p): Likewise.
1028 * c-typeck.c (null_pointer_constant_p,
1029 tagged_types_tu_compatible_p, function_types_compatible_p,
1030 type_lists_compatible_p, lvalue_or_else, lvalue_p,
1031 comptypes_internal, struct tagged_tu_seen_cache,
1032 same_translation_unit_p, alloc_tagged_tu_seen_cache,
1033 c_size_in_bytes): Likewise.
1034 * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
1035 hash_ptr, eq_ptr): Likewise.
1036 * langhooks-def.h (lhd_decl_ok_for_sibcall,
1037 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
1038 * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
1039 * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
1041 * optabs.c (optab_for_tree_code): Likewise.
1042 * optabs.h (optab_for_tree_code): Likewise.
1043 * rtl.h (simplify_rtx): Likewise.
1044 * simplify-rtx.c (simplify_rtx): Likewise.
1045 * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
1046 dump_flag, dump_node): Likewise.
1047 * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
1048 queue_and_dump_type, dump_flag): Likewise.
1049 * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
1050 * tree-pass.h (dump_node): Likewise.
1051 * tree-vectorizer.c (vect_can_force_dr_alignment_p,
1052 supportable_narrowing_operation): Likewise.
1053 * tree-vectorizer.h (vect_can_force_dr_alignment_p,
1054 supportable_narrowing_operation): Likewise.
1055 * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
1056 is_negative_overflow_infinity, is_positive_overflow_infinity,
1057 is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
1058 nonnull_arg_p, get_value_range, vrp_operand_equal_p,
1059 update_value_range, add_equivalence, ssa_name_nonnegative_p,
1060 ssa_name_nonzero_p, fp_predicate): Likewise.
1061 * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
1062 * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
1063 ssa_name_nonnegative_p): Likewise.
1065 2007-08-25 Hans Kester <hans.kester@ellips.nl>
1067 * config.gcc : Add x86_64-elf target.
1069 2007-08-25 Jakub Jelinek <jakub@redhat.com>
1071 * expr.c (store_expr): Fix order of store_by_pieces arguments.
1073 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
1074 Nigel Stephens <nigel@mips.com>
1078 * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
1079 (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
1080 * expr.c (SET_BY_PIECES_P): Define.
1081 (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
1082 it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
1083 (store_expr): Pass MEMSETP argument to can_store_by_pieces and
1085 * expr.h (SET_RATIO): Define.
1086 (can_store_by_pieces, store_by_pieces): Update prototypes.
1087 * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
1088 can_store_by_pieces/store_by_pieces.
1089 (expand_builtin_memcpy_args): Likewise.
1090 (expand_builtin_strncpy): Likewise.
1091 (expand_builtin_memset_args): Likewise. Also remove special case
1092 for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
1093 decide what to do instead.
1094 * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
1095 to can_store_by_pieces.
1097 * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
1098 * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
1100 * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
1101 * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
1102 * config/mips/mips.h (MIPS_CALL_RATIO): Define.
1103 (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
1104 (STORE_BY_PIECES_P): Define.
1106 2007-08-24 Tom Tromey <tromey@redhat.com>
1108 * varpool.c (varpool_last_needed_node): Fix comment typo.
1109 * c-decl.c (duplicate_decls): Fix comment typo.
1110 (clone_underlying_type): Update comment.
1112 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1114 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
1115 alpha_in_small_data_p, alpha_split_complex_arg,
1116 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
1118 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
1119 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
1121 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
1122 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1123 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
1124 * config/darwin.c (darwin_binds_local_p): Likewise.
1125 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
1127 * config/i386/i386-protos.h (i386_pe_binds_local_p,
1128 i386_pe_valid_dllimport_attribute_p): Likewise.
1129 * config/i386/i386.c (ix86_function_regparm,
1130 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
1131 x86_can_output_mi_thunk, ix86_mangle_type,
1132 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1133 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
1134 i386_pe_binds_local_p): Likewise.
1135 * config/ia64/ia64.c
1136 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
1137 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
1138 ia64_invalid_conversion, ia64_invalid_unary_op,
1139 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
1141 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
1142 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
1143 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1144 * config/mips/mips.c (mips_use_blocks_for_constant_p,
1145 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
1146 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1147 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
1148 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
1149 * config/pa/pa.c (pa_commutative_p): Likewise.
1150 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
1152 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
1153 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
1154 rs6000_use_blocks_for_constant_p,
1155 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
1156 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1157 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
1158 * config/s390/s390.c (s390_mangle_type,
1159 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
1161 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1162 th_in_small_data_p): Likewise.
1163 * config/sh/sh.c (sh_ms_bitfield_layout_p,
1164 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
1166 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
1167 sparc_mangle_type): Likewise.
1168 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
1169 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
1170 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
1172 * hooks.c (hook_bool_mode_const_rtx_false,
1173 hook_bool_mode_const_rtx_true,
1174 hook_bool_const_tree_hwi_hwi_const_tree_false,
1175 hook_bool_const_tree_hwi_hwi_const_tree_true,
1176 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1177 hook_constcharptr_const_tree_null,
1178 hook_constcharptr_const_rtx_null,
1179 hook_constcharptr_const_tree_const_tree_null,
1180 hook_constcharptr_int_const_tree_null,
1181 hook_constcharptr_int_const_tree_const_tree_null): New.
1182 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1183 hook_bool_tree_hwi_hwi_tree_false,
1184 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
1185 hook_int_tree_tree_1, hook_constcharptr_tree_null,
1186 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
1187 hook_constcharptr_int_tree_null,
1188 hook_constcharptr_int_tree_tree_null): Delete.
1189 (default_can_output_mi_thunk_no_vcall): Constify.
1190 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1191 hook_bool_tree_hwi_hwi_tree_false,
1192 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
1193 hook_int_tree_tree_1, hook_constcharptr_tree_null,
1194 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
1195 hook_constcharptr_int_tree_null,
1196 hook_constcharptr_int_tree_tree_null): Delete.
1197 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
1198 hook_bool_const_tree_hwi_hwi_const_tree_false,
1199 hook_bool_const_tree_hwi_hwi_const_tree_true,
1200 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1201 hook_constcharptr_const_tree_null,
1202 hook_constcharptr_const_rtx_null,
1203 hook_constcharptr_const_tree_const_tree_null,
1204 hook_constcharptr_int_const_tree_null,
1205 hook_constcharptr_int_const_tree_const_tree_null): New.
1206 (default_can_output_mi_thunk_no_vcall): Constify.
1207 * integrate.c (function_attribute_inlinable_p): Likewise.
1208 * integrate.h (function_attribute_inlinable_p): Likewise.
1209 * jump.c (rtx_renumbered_equal_p): Likewise.
1210 * output.h (decl_readonly_section, categorize_decl_for_section,
1211 default_use_anchors_for_symbol_p, default_binds_local_p,
1212 default_binds_local_p_1): Likewise.
1213 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
1215 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1216 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
1217 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
1218 TARGET_COMP_TYPE_ATTRIBUTES,
1219 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
1220 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
1221 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
1222 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
1223 TARGET_DWARF_CALLING_CONVENTION): Likewise.
1224 * target.h (can_output_mi_thunk, needs_block_p,
1225 first_cycle_multipass_dfa_lookahead_guard_spec,
1226 vector_alignment_reachable, comp_type_attributes,
1227 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
1228 commutative_p, use_blocks_for_constant_p,
1229 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
1230 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
1231 invalid_within_doloop, valid_dllimport_attribute_p,
1232 split_complex_arg, invalid_arg_for_unprototyped_fn,
1233 invalid_conversion, invalid_unary_op, invalid_binary_op):
1235 * targhooks.c (default_invalid_within_doloop,
1236 hook_invalid_arg_for_unprototyped_fn,
1237 default_builtin_vector_alignment_reachable): Likewise.
1238 (hook_bool_rtx_commutative_p): Delete.
1239 (hook_bool_const_rtx_commutative_p): New.
1240 * targhooks.h (default_invalid_within_doloop,
1241 default_builtin_vector_alignment_reachable,
1242 hook_invalid_arg_for_unprototyped_fn): Constify.
1243 (hook_bool_rtx_commutative_p): Delete.
1244 (hook_bool_const_rtx_commutative_p): New.
1245 * varasm.c (bss_initializer_p, decl_default_tls_model,
1246 categorize_decl_for_section, decl_readonly_section,
1247 default_use_anchors_for_symbol_p, default_binds_local_p,
1248 default_binds_local_p_1): Constify.
1250 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1252 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1253 __NO_BUILTIN if -fno-builtin.
1255 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1257 * config/bfin/bfin.c (print_operand): Report error instead of
1258 ICE for wrong operand.
1260 2007-08-24 Michael Matz <matz@suse.de>
1262 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
1264 2007-08-24 Richard Guenther <rguenther@suse.de>
1267 * tree-ssa.c (useless_type_conversion_p): Split into a
1268 recursive and a non-recursive part.
1269 (useless_type_conversion_p_1): New function.
1270 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
1271 from maybe_fold_offset_to_reference is trivially convertible
1272 to the desired type before doing the simplification.
1274 2007-08-24 Jakub Jelinek <jakub@redhat.com>
1276 * expr.c (store_expr): Optimize initialization of an array
1278 * expr.h (builtin_strncpy_read_str): New prototype.
1279 * builtins.c (builtin_strncpy_read_str): Remove prototype.
1282 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
1285 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
1286 field when initializing if_info structure.
1288 2007-08-24 Richard Guenther <rguenther@suse.de>
1290 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
1292 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
1293 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
1294 * tree-inline.c (inlinable_function_p): Fold in common parts of
1295 the cannot_inline_tree_fn langhook.
1296 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
1297 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
1298 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1299 cannot_inline_tree_fn langhook.
1300 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1301 cannot_inline_tree_fn member.
1303 2007-08-24 Richard Guenther <rguenther@suse.de>
1305 * expr.c (get_inner_reference): Do computation of bitoffset
1306 from offset in a way we can detect overflow reliably.
1308 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1310 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
1312 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1314 * config/bfin/bfin.opt (mfast-fp): Add.
1315 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
1316 libbffastfp override libgcc if -mfast-fp.
1317 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
1318 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
1319 (Blackfin Options): Document -mfast-fp.
1321 2007-08-24 Jakub Jelinek <jakub@redhat.com>
1323 PR tree-optimization/32573
1325 * tree-data-ref.c (initialize_data_dependence_relation): Clear
1326 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
1327 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
1328 (build_classic_dist_vector): Return false rather than true if
1329 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
1330 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
1331 returned false. Don't call save_dist_v before calling
1332 build_classic_dist_vector_1.
1333 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
1334 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
1335 DDR_DIR_VECTS vectors.
1337 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
1339 * configure.ac (leb128): Modify sed statement to work with any
1340 binutils version string.
1341 * configure: Regenerate
1343 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1345 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
1346 Wrap in RTX_CODE macro guard.
1347 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
1348 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
1349 arm_mark_dllimport, arm_pe_encode_section_info,
1350 arm_pe_unique_section): Use ISO-C function declarations.
1351 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
1352 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
1353 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
1355 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
1356 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
1358 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
1360 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
1361 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
1362 (register_move_cost): Use ISO-C function declarations.
1363 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
1364 * config/score/score-protos.h (score_declare_object): Add
1366 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
1368 * final.c (profile_function): Avoid empty if-bodies.
1371 * calls.c (must_pass_in_stack_var_size,
1372 must_pass_in_stack_var_size_or_pad): Constify.
1373 * config/alpha/alpha-protos.h (function_value): Likewise.
1374 * config/alpha/alpha.c (alpha_return_in_memory,
1375 alpha_pass_by_reference, function_value,
1376 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
1377 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
1379 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
1380 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1381 TARGET_PROMOTE_PROTOTYPES): Likewise.
1382 * config/arm/arm-protos.h (arm_return_in_memory,
1383 arm_pad_arg_upward, arm_function_value): Likewise.
1384 * config/arm/arm.c (arm_pass_by_reference,
1385 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
1386 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1387 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
1389 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
1390 * config/avr/avr-protos.h (avr_function_value): Likewise.
1391 * config/avr/avr.c (avr_return_in_memory,
1392 gas_output_limited_string, gas_output_ascii, avr_function_value,
1393 avr_return_in_memory): Likewise.
1394 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
1395 * config/bfin/bfin.c (bfin_pass_by_reference,
1396 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
1397 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
1399 * config/cris/cris.c (cris_pass_by_reference,
1400 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
1401 * config/crx/crx.c (crx_return_in_memory): Likewise.
1402 * config/darwin.c (function_base, machopic_function_base_name):
1404 * config/fr30/fr30.c (fr30_must_pass_in_stack,
1405 TARGET_PROMOTE_PROTOTYPES): Likewise.
1406 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
1407 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
1408 * config/i386/i386-protos.h (ix86_return_in_memory,
1409 ix86_sol10_return_in_memory): Likewise.
1410 * config/i386/i386.c (ix86_function_value,
1411 ix86_function_sseregparm, ix86_must_pass_in_stack,
1412 type_natural_mode, classify_argument, examine_argument,
1413 construct_container, ix86_pass_by_reference, function_value_32,
1414 function_value_64, ix86_function_value_1, return_in_memory_32,
1415 return_in_memory_64, return_in_memory_ms_64,
1416 ix86_return_in_memory, ix86_sol10_return_in_memory,
1417 TARGET_PROMOTE_PROTOTYPES): Likewise.
1418 * config/ia64/ia64-protos.h (ia64_function_value,
1419 ia64_hpux_function_arg_padding): Likewise.
1420 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
1421 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
1422 ia64_hpux_function_arg_padding): Likewise.
1423 * config/iq2000/iq2000-protos.h (function_arg,
1424 iq2000_function_value): Likewise.
1425 * config/iq2000/iq2000.c (iq2000_return_in_memory,
1426 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
1427 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1428 function_arg, iq2000_function_value): Likewise.
1429 * config/m32c/m32c-protos.h (m32c_function_value,
1430 m32c_promote_function_return): Likewise.
1431 * config/m32c/m32c.c (m32c_pass_by_reference,
1432 m32c_promote_prototypes, m32c_promote_function_return,
1433 m32c_function_value): Likewise.
1434 * config/m32r/m32r.c (m32r_return_in_memory,
1435 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
1436 m32r_in_small_data_p): Likewise.
1437 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
1439 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
1440 m68hc11_function_arg_padding): Likewise.
1441 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
1442 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
1443 m68k_function_value): Likewise.
1444 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
1445 mcore_function_value): Likewise.
1446 * config/mcore/mcore.c (handle_structs_in_regs,
1447 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
1448 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1449 mcore_num_arg_regs, mcore_function_value): Likewise.
1450 * config/mips/mips-protos.h (mips_pad_arg_upward,
1451 mips_function_value): Likewise.
1452 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
1453 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
1454 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1455 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
1456 mips_function_value): Likewise.
1457 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
1459 * config/mmix/mmix.c (mmix_pass_by_reference,
1460 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
1461 mmix_encode_section_info): Likewise.
1462 * config/mn10300/mn10300-protos.h (mn10300_function_value):
1464 * config/mn10300/mn10300.c (mn10300_return_in_memory,
1465 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
1466 mn10300_function_value): Likewise.
1467 * config/mt/mt-protos.h (mt_function_value): Likewise.
1468 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
1469 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
1470 * config/pa/pa-protos.h (function_arg_padding, function_value,
1471 pa_return_in_memory): Likewise.
1472 * config/pa/pa.c (pa_pass_by_reference,
1473 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1474 function_arg_padding, function_value, pa_return_in_memory):
1476 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
1477 * config/rs6000/rs6000-protos.h (rs6000_function_value,
1478 function_arg_padding): Likewise.
1479 * config/rs6000/rs6000.c (rs6000_return_in_memory,
1480 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
1481 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
1482 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1483 function_arg_padding, altivec_expand_dst_builtin,
1484 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
1485 altivec_init_builtins, rs6000_common_init_builtins,
1486 rs6000_function_value): Likewise.
1487 * s390/s390-protos.h (s390_function_value): Likewise.
1488 * config/s390/s390.c (s390_function_arg_size,
1489 s390_pass_by_reference, s390_return_in_memory,
1490 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
1491 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
1492 * config/score/score-protos.h (score_function_value): Likewise.
1493 * config/score/score.c (score_arg_partial_bytes,
1494 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1495 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
1496 score_pass_by_reference, score_add_offset, score_function_value):
1498 * config/sh/sh-protos.h (sh_attr_renesas_p,
1499 sh_promote_prototypes): Likewise.
1500 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
1501 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
1502 sh_attr_renesas_p): Likewise.
1503 * config/sparc/sparc-protos.h (function_value,
1504 function_arg_padding): Likewise.
1505 * config/sparc/sparc.c (sparc_promote_prototypes,
1506 sparc_return_in_memory, sparc_pass_by_reference,
1507 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1508 function_arg_record_value_2, function_arg_record_value_1,
1509 function_arg_record_value, function_arg_record_value,
1510 function_arg_padding, function_value): Likewise.
1511 * config/spu/spu-protos.h (spu_function_value): Likewise.
1512 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
1513 spu_function_value): Likewise.
1514 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
1516 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
1517 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
1518 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
1520 * config/v850/v850.c (v850_return_in_memory,
1521 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
1522 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
1523 * config/xtensa/xtensa.c (xtensa_return_in_msb,
1524 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
1525 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
1527 * explow.c (promote_mode, hard_function_value): Likewise.
1528 * expr.h (hard_function_value, promote_mode): Likewise.
1529 * function.c (aggregate_value_p): Likewise.
1530 * hooks.c (hook_bool_const_tree_true): New.
1531 * hooks.h (hook_bool_const_tree_true): New.
1532 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
1533 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
1534 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1535 TARGET_RETURN_IN_MSB): Likewise.
1536 * target.h (promote_function_args, promote_function_return,
1537 promote_prototypes, return_in_memory, return_in_msb,
1538 pass_by_reference, must_pass_in_stack, callee_copies,
1539 function_value): Likewise.
1540 * targhooks.c (default_return_in_memory,
1541 hook_pass_by_reference_must_pass_in_stack,
1542 hook_callee_copies_named,
1543 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
1544 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
1545 default_function_value): Likewise.
1546 * targhooks.h (default_return_in_memory,
1547 hook_pass_by_reference_must_pass_in_stack,
1548 hook_callee_copies_named,
1549 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
1550 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
1551 default_function_value): Likewise.
1552 * tree-ssa-structalias.c (const_equiv_class_label_t): New.
1553 (equiv_class_label_hash, equiv_class_label_eq): Constify.
1554 * tree-vectorizer.c (bb_in_loop_p): Likewise.
1555 * tree.c (needs_to_live_in_memory): Likewise.
1556 * tree.h (struct tree_type, needs_to_live_in_memory,
1557 aggregate_value_p, must_pass_in_stack_var_size,
1558 must_pass_in_stack_var_size_or_pad): Likewise.
1559 * vmsdbgout.c (write_debug_addr, write_debug_delta4,
1560 write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
1561 lookup_filename): Likewise.
1563 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
1566 * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
1567 fake fcomi i387 instruction for !TARGET_CMOVE.
1568 (ix86_expand_branch): Expand natural sequence with one jump for
1569 all targets, not only TARGET_CMOVE.
1570 * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
1571 pattern to implement fake fcomi sequence. Split instruction after
1572 reload to correct compare sequences.
1573 (*cmpfp_xf_cc): Ditto.
1574 (*cmpfp_<mode>_cc): Ditto.
1575 (*cmpfp_u_cc): Ditto.
1576 (*cmpfp_<mode>_cc): Ditto.
1578 2007-08-23 Richard Guenther <rguenther@suse.de>
1580 * tree-pretty-print.c (dump_generic_node): Annotate
1581 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
1583 2007-08-23 Richard Guenther <rguenther@suse.de>
1585 * builtins.c (expand_builtin_mathfn): Wrap argument in
1586 save_expr directly instead of re-building the call.
1587 (expand_builtin_mathfn_2): Likewise.
1588 (expand_builtin_mathfn_3): Likewise.
1589 (expand_builtin_interclass_mathfn): Likewise.
1590 (expand_builtin_int_roundingfn): Set arg.
1591 (expand_builtin_int_roundingfn_2): Likewise.
1593 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
1595 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
1596 *sse_nand<mode>3, *sse_xor<mode>3): New.
1598 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
1600 * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
1601 * config/i386/i386.c (print_operand): Handle ';' code. Output
1602 semicolon for TARGET_MACHO.
1603 * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
1604 emit semicolon after 'lock' prefix.
1605 (sync_double_compare_and_swap<mode>): Ditto.
1606 (*sync_double_compare_and_swapdi_pic): Ditto.
1607 (*sync_compare_and_swap_cc<mode>): Ditto.
1608 (sync_double_compare_and_swap_cc<mode>): Ditto.
1609 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
1610 (sync_old_add<mode>): Ditto.
1611 (sync_add<mode>): Ditto.
1612 (sync_sub<mode>): Ditto.
1613 (sync_ior<mode>): Ditto.
1614 (sync_and<mode>): Ditto.
1615 (sync_xor<mode>): Ditto.
1617 2007-08-22 Chao-ying Fu <fu@mips.com>
1619 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
1621 (copy_rtx): Handle CONST_FIXED.
1622 (rtx_equal_p): Likewise.
1623 * rtl.h (fixed_value.h): New include.
1624 (rtx_def): Add a new field of fixed_value to u.
1625 (XCNMPFV): Define for accessing fixed_value.
1626 (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
1628 * rtl.def (CONST_FIXED): New constant.
1629 (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
1630 UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
1631 US_ASHIFT): New codes.
1632 * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
1633 us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
1634 unsigned_fract_convert, unsigned_sat_fract): Document them.
1635 * varasm.c (assemble_integer): Extend to support fixed-point constants
1636 by using different machine classes.
1637 (decode_addr_const): Handle FIXED_CST.
1638 (const_hash_1): Likewise.
1639 (compare_constant): Likewise.
1640 (copy_constant): Likewise.
1641 (const_rtx_hash_1): Handle CONST_FIXED.
1642 (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1643 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1645 (initializer_constant_valid_p): Handle FIXED_CST.
1646 (output_constant): Support FIXED_POINT_TYPE.
1647 * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
1648 * cse.c (hash_rtx): Support CONST_FIXED.
1649 (exp_equiv_p): Likewise.
1650 (cannon_reg): Likewise.
1651 (fold_rtx): Likewise.
1652 (equiv_constant): Likewise.
1653 (cse_process_notes_1): Likewise.
1654 (count_reg_usage): Likewise.
1655 * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
1656 (rtx_equal_for_cselib_p): Handle CONST_FIXED.
1657 (wrap_constant): Check CONST_FIXED.
1658 (cselib_hash_rtx): Support CONST_FIXED.
1659 (cselib_subst_to_values): Likewise.
1660 * df-scan.c (df_uses_record): Likewise.
1661 * gcse.c (want_to_gcse_p): Likewise.
1662 (oprs_unchanged_p): Likewise.
1663 (oprs_not_set_p): Likewise.
1664 (compute_transp): Likewise.
1665 (extract_mentioned_regs_helper): Likewise.
1666 * genemit.c (gen_exp): Likewise.
1667 * local-alloc.c (equiv_init_varies_p): Likewise.
1668 (contains_replace_regs): Likewise.
1669 (memref_referenced_p): Likewise.
1670 * loop-invariant.c (check_maybe_invariant): Likewise.
1671 (hash_invariant_expr_1): Likewise.
1672 (invariant_expr_equal_p): Likewise.
1673 * postreload-gcse.c (oprs_unchanged_p): Likewise.
1674 * regclass.c (reg_scan_mark_refs): Likewise.
1675 * regrename.c (scan_rtx): Likewise.
1676 * resource.c (mark_referenced_resources): Likewise.
1677 (mark_set_resources): Likewise.
1678 * rtlanal.c (rtx_unstable_p): Likewise.
1679 (rtx_varies_p): Likewise.
1680 (count_occurrences): Likewise.
1681 (reg_mentioned_p): Likewise.
1682 (modified_between_p): Likewise.
1683 (modified_in_p): Likewise.
1684 (volatile_insn_p): Likewise.
1685 (volatile_refs_p): Likewise.
1686 (side_effects_p): Likewise.
1687 (may_trap_p_1): Likewise.
1688 (inequality_comparisons_p): Likewise.
1689 (computed_jump_p_1): Likewise.
1690 (commutative_operand_precedence): Likewise.
1691 * sched-deps.c (sched_analyze_2): Likewise.
1692 * sched-vis.c (print_value): Likewise.
1693 * reload.c (operands_match_p): Likewise.
1694 (subst_reg_equivs): Likewise.
1695 * reload1.c (eliminate_regs_1): Likewise.
1696 (elimination_effects): Likewise.
1697 (scan_paradoxical_subregs): Likewise.
1698 * alias.c (rtx_equal_for_memref_p): Likewise.
1699 * Makefile.in (RTL_BASE_H): Add fixed-value.h.
1700 * emit-rtl.c (const_fixed_htab): New hash table.
1701 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
1703 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
1704 const_fixed_from_fixed_value): New functions.
1705 (verify_rtx_sharing): Handle CONST_FIXED.
1706 (copy_rtx_if_shared_1): Likewise.
1707 (reset_used_flags): Likewise.
1708 (set_used_flags): Likewise.
1709 (copy_insn_1): Likewise.
1710 (init_emit_once): Create const_fixed_htab.
1711 Store fixed-point scalar and vector zero and one to const_tiny_rtx.
1713 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
1715 PR tree-optimization/32949
1716 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
1717 before failing for ivs with non-constant step.
1719 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
1721 * doc/md.texi (Iterators): Renamed from Macros. All contents
1722 changed to reflect rename of respectively define_code_macro and
1723 define_mode_macro to define_code_iterator and define_mode_iterator.
1724 (Mode Iterators, Code Iterators): Similar.
1725 * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
1726 (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
1727 (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
1728 (initialize_iterators, find_iterator, check_code_iterator)
1729 (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
1730 (read_mapping, read_rtx_1): Similar.
1731 * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
1732 config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
1733 config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
1734 config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
1735 config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
1736 config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
1737 config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
1738 config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
1739 config/rs6000/sync.md, config/rs6000/rs6000.md,
1740 config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
1741 config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
1742 config/vax/vax.md, config/bfin/bfin.md: Similar.
1744 2007-08-22 David Daney <ddaney@avtrex.com>
1746 * doc/install.texi (Testing): Mention testing on a simulator.
1748 2007-08-22 Janis Johnson <janis187@us.ibm.com>
1750 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
1752 * doc/libgcc.texi (Decimal float library routines): Fix formatting
1753 and rearrange floating point conversion functions into different
1756 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1758 * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
1759 dfa_post_advance_cycle): New scheduler hooks.
1760 * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1761 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
1763 (TARGET_SCHED): Use them.
1764 * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1765 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
1766 * haifa-sched.c (advance_one_cycle): Invoke new hooks.
1768 * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
1769 function to facilitate debugging.
1770 (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
1771 (output_insn_has_dfa_reservation_p): New static function to output
1772 insn_has_dfa_reservation_p ().
1773 (write_automata): Use it.
1774 * genattr.c (main): Output declaration for
1775 insn_has_dfa_reservation_p ().
1777 2007-08-22 Christian Bruel <christian.bruel@st.com>
1778 Richard Guenther <rguenther@suse.de>
1780 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
1781 * simplify_rtx (simplify_binary_operation_1): Likewise.
1783 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
1785 PR rtl-optimization/32557
1786 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
1787 of REGNO (mws->mw_reg).
1789 2007-08-22 Richard Guenther <rguenther@suse.de>
1792 * builtins.c (expand_builtin_int_roundingfn): Replace call
1793 argument wrapped with SAVE_EXPR directly.
1794 (expand_builtin_int_roundingfn_2): Likewise.
1796 2007-08-22 Richard Guenther <rguenther@suse.de>
1798 * tree-inline.c (inlinable_function_p): Restore disregarding
1799 inline limits for GNU extern inline functions.
1801 2007-08-22 Richard Guenther <rguenther@suse.de>
1804 * tree.c (host_integerp): Treat sizetype as signed as it is
1807 2007-08-21 Ian Lance Taylor <iant@google.com>
1809 PR tree-optimization/33134
1810 * tree-vrp.c (adjust_range_with_scev): Call
1811 set_value_range_to_value.
1813 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
1815 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
1818 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
1820 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
1823 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
1825 * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
1826 cases to set eight bytes at a time.
1827 (expand_block_move): Likewise.
1829 2007-08-21 Jakub Jelinek <jakub@redhat.com>
1832 * dwarf2out.c (gen_decl_die): Don't call
1833 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
1835 2007-08-21 Paul Brook <paul@codesourcery.com>
1836 Nathan Sidwell <nathan@codesourcery.com>
1837 Mark Mitchell <mark@codesourcery.com>
1838 Joseph Myers <joseph@codesourcery.com>
1840 * configure.ac: Add --with-pkgversion and --with-bugurl.
1841 * configure: Regenerate.
1842 * doc/install.texi: Document them.
1843 * version.c (version_string): Remove VERSUFFIX.
1844 (VERSUFFIX): Remove.
1845 (pkgversion_string): New.
1846 (bug_report_url): Do not hard-code initializer.
1847 * version.h (pkgversion_string): Declare.
1848 * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
1850 (version.o): Define PKGVERSION and BUGURL.
1851 (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
1852 (%.pod): Define BUGURL.
1853 * gcc.c (process_command, main): Use pkgversion_string.
1854 * toplev.c (compile_file, print_version): Likewise.
1855 * protoize.c (main): Likewise.
1856 * gcov.c (print_version): Likewise. Update copyright date.
1857 * gcov-dump.c (print_version): Likewise. Update copyright date.
1858 * mips-tdump.c (main): Likewise. Update copyright date.
1859 * mips-tfile.c (main): Likewise. Update copyright date.
1860 * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
1861 * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
1862 shorten description.
1863 * doc/gcc.texi: Include VERSION_PACKAGE in version description.
1864 * doc/gccint.texi: Likewise.
1865 * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
1866 Update copyright date.
1868 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
1870 * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
1871 (ix86_expand_strlensi_unroll_1): Ditto.
1872 (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
1873 (ix86_expand_carry_flag_compare): Update comment.
1875 2007-08-21 Jakub Jelinek <jakub@redhat.com>
1878 * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
1879 (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
1881 2007-08-21 Richard Guenther <rguenther@suse.de>
1883 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
1885 2007-08-21 Richard Guenther <rguenther@suse.de>
1888 * fold-const.c (fold_binary): Remove index +p PTR folding.
1889 Fix types of POINTER_PLUS_EXPR generated by folding of
1892 2007-08-20 Chao-ying Fu <fu@mips.com>
1894 * c-common.h (enum rid): Add new enumeration values of RID_SAT,
1895 RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
1896 RID_ONEWAY, so that it can be checked in declspecs_add_type.
1897 (c_common_fixed_point_type_for_size): Declare.
1898 * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
1899 (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
1900 (c_token_starts_declspecs): Likewise.
1901 (c_parser_declspecs): Likewise.
1902 (c_parser_attributes): Likewise.
1903 * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
1904 (c_declspecs): Add saturating_p.
1905 * c-decl.c (build_null_declspecs): Initialize saturating_p.
1906 (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
1907 _Sat. Handle RID_SAT.
1908 Avoid using void, bool, char, int, float, double, _Decimal32,
1909 _Decimal64, _Decimal128, and complex with _Sat.
1910 Handle RID_FRACT and RID_ACCUM.
1911 Make sure _Sat is used with _Fract or _Accum.
1912 (finish_declspecs): Handle cts_fract and cts_accum.
1913 * c-common.c (fixed-value.h): New include.
1914 (constant_expression_warning): Handle FIXED_CST.
1915 (overflow_warning): Likewise.
1916 (warnings_for_convert_and_check): Likewise.
1917 (c_common_fixed_point_type_for_size): New.
1918 (c_common_type_for_mode): Handle fixed-point modes to
1919 return various saturating/non-saturating, signed/unsigned types.
1920 (c_common_signed_or_unsigned_type): Support fixed-point types.
1921 (shorten_compare): Check fixed-point zero.
1922 Handle FIXED_POINT_TYPE.
1923 (c_common_truthvalue_conversion): Handle FIXED_CST.
1924 Handle FIXED_POINT_TYPE.
1925 (c_common_nodes_and_builtins): Record builtin types for fixed-point
1927 (handle_mode_attribute): Handle fixed-point modes. Need to check
1928 if the signness of base type and fixed-point modes are consistent.
1929 (handle_vector_size_attribute): Handle fixed-point modes.
1930 (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
1931 (warn_for_div_by_zero): Check fixed-point zero.
1932 * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
1933 a common fixed-point type based on fbit, ibit, sign, and saturation.
1934 (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
1935 NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
1936 PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
1937 (convert_for_assignment): Support FIXED_POINT_TYPE.
1938 (digest_init): Handle FIXED_POINT_TYPE.
1939 (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
1940 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1941 TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
1942 GE_EXPR, LT_EXPR, GT_EXPR.
1943 * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
1944 (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
1945 * target.h (gcc_target): Add fixed_point_supported_p.
1946 * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
1947 MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
1948 (default_fixed_point_supported_p): Define.
1949 * targhooks.h (default_fixed_point_supported_p): Declare.
1950 * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
1951 * doc/install.texi (Configuration): Add --enable-fixed-point.
1952 * configure.ac (--enable-fixed-point): New to enable fixed-point
1953 arithmetic extension to C. For mips targets, we enable it by default.
1954 * configure, config.in: Regenerate.
1956 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
1958 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
1960 2007-08-20 David Edelsohn <edelsohn@gnu.org>
1962 * dwarf2out.c (text_section_used): Move declaration outside ifdef
1963 DWARF2_DEBUGGING_INFO.
1964 (cold_text_section_used): Same.
1965 (cold_text_section): Same.
1967 2007-08-20 Richard Guenther <rguenther@suse.de>
1969 * c-typeck.c (convert_for_assignment): Use the type of
1970 the member for the initialization.
1972 2007-08-20 Richard Guenther <rguenther@suse.de>
1974 * c-objc-common.c (c_disregard_inline_limits): Remove.
1975 * c-objc-common.h (c_disregard_inline_limits): Likewise.
1976 * cgraphunit.c (cgraph_process_new_functions): Call
1977 disregard_inline_limits_p.
1978 (cgraph_preserve_function_body_p): Likewise.
1979 * ipa-inline.c (compute_inline_parameters): Likewise.
1980 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
1982 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
1983 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1984 disregard_inline_limits langhook.
1985 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1987 * langhooks.h (lang_hooks_for_tree_inlining): Remove
1988 disregard_inline_limits langhook.
1989 * tree-inline.c (disregard_inline_limits_p): New function.
1990 * tree-inline.h (disregard_inline_limits_p): Declare.
1992 2007-08-20 Richard Guenther <rguenther@suse.de>
1994 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
1995 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
1996 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1997 auto_var_in_fn_p langhook.
1998 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
2000 * tree.c (auto_var_in_fn_p): ... here.
2001 (find_var_from_fn): Call auto_var_in_fn_p directly.
2002 * langhooks.h (lang_hooks_for_tree_inlining): Remove
2003 auto_var_in_fn_p langhook.
2004 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
2005 (copy_body_r): Likewise.
2006 (self_inlining_addr_expr): Likewise.
2007 * tree.h (auto_var_in_fn_p): Declare.
2009 2007-08-20 Richard Guenther <rguenther@suse.de>
2011 * tree.c (WALK_SUBTREE): Call walk_tree_1.
2012 (walk_type_fields): Take lh parameter.
2013 (walk_tree): Rename to ...
2014 (walk_tree_1): ... this. Do not call the walk_subtrees
2015 langhook but the now passed callback. Pass lh on recursion.
2016 (walk_tree_without_duplicates): Rename to ...
2017 (walk_tree_without_duplicates_1): ... this. Take lh parameter
2018 and call walk_tree_1.
2019 * tree.h (walk_tree_lh): New typedef.
2020 (walk_tree_1): Declare.
2021 (walk_tree_without_duplicates_1): Likewise.
2022 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
2023 (walk_tree_without_duplicates): New define to
2024 walk_tree_without_duplicates_1 with NULL lh parameter.
2025 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
2026 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
2028 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
2029 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
2030 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
2033 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
2036 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
2037 code in front of the compacting of basic blocks.
2038 Move the folding of statements inbetween the cgraph checking
2039 and compacting of basic blocks.
2041 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2042 Serge Belyshev <belyshev@depni.sinp.msu.ru>
2045 * config/alpha/alpha.c (va_list_skip_additions): Check for
2046 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
2047 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
2048 PLUS_EXPR when checking ap.__base.
2049 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
2050 when doing addition on pointer types. Use size_int instead of
2052 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
2053 ptr_type in the second operand.
2055 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2058 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
2060 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2063 * cfgexpand.c (expand_one_register_var): Mark pointer
2064 DECL_ARTIFICIAL as REG_POINTER also.
2065 * stmt.c (expand_decl): Likewise.
2067 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
2074 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
2075 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
2076 on_worklist argument and avoid adding things to worklist multiple
2078 (add_to_worklist): Ditto.
2079 (mark_aliases_call_clobbered): Mark entire structure clobbered if
2080 single SFT is clobbered.
2081 (set_initial_properties): Ditto.
2082 (compute_call_clobbered): Update for changes to function
2084 (create_overlap_variables_for): Always create SFT for offset 0.
2085 (create_structure_vars): Handle PHI's, since we are in SSA form at
2087 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
2088 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
2090 (add_vars_for_offset): Figure out aliases from access + points-to.
2091 (add_virtual_operand): Use add_vars-for_offset.
2092 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
2093 (add_call_clobber_ops): Remove makes_clobbering_call set.
2094 (get_expr_operands): Always pass through the INDIRECT_REF
2096 * tree-ssa-structalias.c (struct constraint_graph): Remove
2098 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
2099 address_taken, pt_used, number_incoming.
2100 (FIRST_ADDR_NODE): Removed.
2101 (merge_graph_nodes): Remove broken code for the moment.
2102 (init_graph): New function.
2103 (build_pred_graph): Remove code to init_graph.
2104 Add location equivalence support.
2105 (struct scc_info): Rename roots to deleted.
2107 (init_scc_info): Ditto
2108 (init_topo_info): Use graph->size.
2109 (compute_topo_order): Ditto.
2110 (do_da_constraint): Removed.
2111 (do_sd_constraint): Remove calls to find().
2112 set_union_with_increment should always get 0 as last arg here.
2113 (do_complex_constraint): Replace do_da_constraint with assert.
2115 (struct equiv_class_label): New.
2116 (pointer_equiv_class_table): Ditto.
2117 (location_equiv_class_table): Ditto.
2118 (equiv_class_label_hash): Ditto.
2119 (equiv_class_label_eq): Ditto
2120 (equiv_class_lookup): Ditto.
2121 (equiv_class_ladd): Ditto.
2122 (pointer_equiv_class): Ditto.
2123 (location_equiv_class): Ditto.
2124 (condense_visit): Rename and rewrite from label_visit to do only
2125 SCC related stuff for HU.
2126 (label_visit): Do HU work for HU.
2127 (perform_var_substitution): Update to do HU and location
2129 (free_var_substitution_info): Update to free HU and location
2130 equivalence structures. */
2131 (find_equivalent_node): Update for pointer but not location
2133 (unite_pointer_equivalences): New function.
2134 (move_complex_constraints): Rewrite to only do moving.
2135 (rewrite_constraints): Split out of move_complex_constraints.
2136 (solve_graph): Use graph->size.
2137 (process_constraint_1): Add from_call argument, use it.
2138 Split *a = &b into two constraints.
2139 (process_constraint): Use new process_constraint_1.
2140 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
2141 (get_constraint_for): Handle non-pointer integers properly.
2142 Remove code that used to handle structures.
2143 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
2144 with unknown addends.
2145 (handle_rhs_call): New function.
2146 (find_func_aliases): Use handle_rhs_call.
2147 (set_uids_in_ptset): Add an assert.
2148 (set_used_smts): Fix bug in not considering unified vars.
2149 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
2150 (compute_points_to_sets): Update for other function changes.
2151 (delete_points_to_sets): Ditto.
2152 (ipa_pta_execute): Ditto.
2153 (pass_ipa_pta): We need to update SSA after ipa_pta.
2155 2007-08-19 Jan Hubicka <jh@suse.cz>
2157 * i386.md: Replace "rim" and "mri" constraints by "g".
2159 2007-08-19 Joseph Myers <joseph@codesourcery.com>
2161 * dwarf2out.c (text_section_used, cold_text_section_used,
2162 cold_text_section, dwarf2out_note_section_used): New.
2163 (dwarf2out_init): Initialize cold_text_section.
2164 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
2165 dwarf2out_note_section_used.
2166 (size_of_aranges): Only count entry for text section if it was
2167 used. Count entry for cold text section if it was used.
2168 (output_aranges): Only output entries for text section and cold
2169 text section if they were used.
2171 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2173 * tree-pretty-print.c (debug_generic_expr): Add a comment about
2175 (debug_generic_stmt): Likewise.
2176 (debug_tree_chain): Likewise.
2178 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
2180 * tree-data-refs.c (split_constant_offset): Expose.
2181 * tree-data-refs.h (split_constant_offset): Add declaration.
2183 * tree-vectorizer.h (dr_alignment_support): Renamed
2184 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
2185 Added a new value dr_explicit_realign.
2186 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
2187 dr_offset, dr_step, and dr_aligned_to, along with new access
2188 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
2189 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
2190 STMT_VINFO_DR_ALIGNED_TO.
2192 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
2194 In case of outer-loop vectorization with non-fixed misalignment - use
2195 the dr_explicit_realign scheme instead of the optimized realignment
2197 (new_stmt_vec_info): Initialize new fields.
2199 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
2200 'nested_in_vect_loop' case. Change verbosity level.
2201 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
2202 Don't fail on zero step in the outer-loop for loads.
2203 (vect_analyze_data_refs): Call split_constant_offset to calculate
2204 base, offset and init relative to the outer-loop.
2206 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
2207 BSI function argument with a new function argument - at_loop.
2208 Simplify the condition that determines STEP. Takes additional argument
2209 INV_P. Support outer-loop vectorization (handle the
2210 nested_in_vect_loop case), including zero step in the outer-loop. Call
2211 vect_create_addr_base_for_vector_ref with additional argument.
2212 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
2213 Updated function documentation. Handle the 'nested_in_vect_loop' case.
2214 Fixed and simplified calculation of step.
2215 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
2216 of bsi, and with additional argument. Call bump_vector_ptr with
2217 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
2218 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
2219 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
2220 when the realignment setup needs to take place inside the loop.
2221 Support the dr_explicit_realign scheme. Allow generating the optimized
2222 realignment scheme for outer-loop vectorization. Added documentation.
2223 (vectorizable_load): Support the dr_explicit_realign scheme. Handle
2224 the 'nested_in_vect_loop' case, including loads that are invariant in
2225 the outer-loop and the realignment schemes. Handle the case when the
2226 realignment setup needs to take place inside the loop. Call
2227 vect_setup_realignment with additional arguments. Call
2228 vect_create_data_ref_ptr with additional argument and with loop instead
2229 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
2230 (vect_gen_niters_for_prolog_loop): Call
2231 vect_create_addr_base_for_vector_ref with additional arguments.
2232 (vect_create_cond_for_align_checks): Likewise.
2233 (bump_vector_ptr): Updated to support the new dr_explicit_realign
2234 scheme: takes additional argument bump; argument ptr_incr is now
2235 optional; updated documentation.
2236 (vect_init_vector): Takes additional argument (bsi). Use it, if
2237 available, to insert the vector initialization.
2238 (get_initial_def_for_induction): Pass additional argument in call to
2240 (vect_get_vec_def_for_operand): Likewise.
2241 (vect_setup_realignment): Likewise.
2242 (vectorizable_load): Likewise.
2244 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
2246 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
2247 as argument instead of struct loop.
2248 (nested_in_vect_loop_p): New function.
2249 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
2251 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
2252 from other phis in the loop.
2253 (destroy_loop_vec_info): Add additional argument to declaration.
2255 * tree-vectorizer.c (supportable_widening_operation): Also check if
2256 nested_in_vect_loop_p (don't allow changing the order in this case).
2257 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
2258 of struct loop. Call nested_in_vect_loop_p and don't require
2259 flag_unsafe_math_optimizations if it returns true.
2260 (new_stmt_vec_info): When setting def_type for phis differentiate
2261 loop-header phis from other phis.
2262 (bb_in_loop_p): New function.
2263 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
2264 just update their loop_vinfo. Order of BB traversal now matters -
2265 call dfs_enumerate_from with bb_in_loop_p.
2266 (destroy_loop_vec_info): Takes additional argument to control whether
2267 stmt_vinfo of the loop stmts should be destroyed as well.
2268 (vect_is_simple_reduction): Allow the "non-reduction" use of a
2269 reduction stmt to be defines by a non loop-header phi.
2270 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
2272 * tree-vect-transform.c (vectorizable_reduction): Call
2273 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
2274 (vectorizable_call): Likewise.
2275 (vectorizable_conversion): Likewise.
2276 (vectorizable_operation): Likewise.
2277 (vectorizable_type_promotion): Likewise.
2278 (vectorizable_type_demotion): Likewise.
2279 (vectorizable_store): Likewise.
2280 (vectorizable_live_operation): Likewise.
2281 (vectorizable_reduction): Likewise. Also pass loop_info to
2282 vect_is_simple_reduction instead of loop.
2283 (vect_init_vector): Call nested_in_vect_loop_p.
2284 (get_initial_def_for_reduction): Likewise.
2285 (vect_create_epilog_for_reduction): Likewise.
2286 (vect_init_vector): Check which loop to work with, in case there's an
2288 (get_initial_def_for_inducion): Extend to handle outer-loop
2289 vectorization. Fix indentation.
2290 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
2291 In the case vect_induction_def get the vector def from the induction
2292 phi node, instead of calling get_initial_def_for_inducion.
2293 (get_initial_def_for_reduction): Extend to handle outer-loop
2295 (vect_create_epilog_for_reduction): Extend to handle outer-loop
2297 (vect_transform_loop): Change assert to just skip this case. Add a
2299 (vect_finish_stmt_generation): Add a couple asserts.
2301 (vect_estimate_min_profitable_iters): Multiply
2302 cost of inner-loop stmts (in outer-loop vectorization) by estimated
2304 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
2305 this is an inner-loop reduction in outer-loop vectorization.
2307 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
2308 Same code as what used to be vect_analyze_scalar_cycles, only with
2309 additional argument loop, and loop_info passed to
2310 vect_is_simple_reduction instead of loop.
2311 (vect_analyze_scalar_cycles): Code factored out into
2312 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
2313 Updated documentation.
2314 (analyze_operations): Check for inner-loop loop-closed exit-phis during
2315 outer-loop vectorization that are live or not used in the outerloop,
2316 cause this requires special handling.
2317 (vect_enhance_data_refs_alignment): Don't consider versioning for
2319 (vect_analyze_data_refs): Check that there are no datarefs in the
2321 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
2322 and vect_used_in_outer_by_reduction cases.
2323 (process_use): Also consider the case of outer-loop stmt defining an
2324 inner-loop stmt and vice versa.
2325 (vect_analyze_loop_1): New function.
2326 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
2327 loops. Call vect_analyze_loop_1.
2328 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
2329 been vectorized. Call destroy_loop_vec_info with additional argument.
2331 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
2332 in the inner-loop when doing outer-loop vectorization. Add
2333 documentation and printout.
2334 (vect_recog_dot_prod_pattern): Likewise. Also add check for
2335 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
2337 2007-08-18 Andrew Pinski <pinskia@gmail.com>
2339 * tree-affine.h (print_aff): New prototype.
2340 (debug_aff): Likewise.
2341 * tree-affine.c (print_aff): New function.
2342 (debug_aff): Likewise.
2344 2007-08-18 Paul Brook <paul@codesourcery.com>
2345 Joseph Myers <joseph@codesourcery.com>
2347 * common.opt (-fdebug-prefix-map=): New option.
2348 * opts.c: Include debug.h.
2349 (common_handle_option): Handle -fdebug-prefix-map.
2350 * final.c: Include ggc.h.
2351 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
2352 remap_debug_filename): New.
2353 * Makefile.in (final.o, opts.o): Update dependencies.
2354 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
2355 * configure.ac: Check for assembler --debug-prefix-map support.
2356 * configure, config.in: Regenerate.
2357 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
2358 (ASM_DEBUG_SPEC): Include ASM_MAP.
2359 * doc/install.texi (--with-debug-prefix-map): Document.
2360 * doc/invoke.texi (-fdebug-prefix-map): Document.
2361 * dbxout.c (dbxout_init, dbxout_start_source_file,
2362 dbxout_source_file): Call remap_debug_filename.
2363 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
2364 dwarf2out_start_source_file, dwarf2out_finish): Call
2365 remap_debug_filename.
2366 (file_table_relative_p): Do not check d->emitted_number.
2367 * toplev.c (output_file_directive): Call remap_debug_filename.
2368 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
2369 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
2371 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2373 * loop-invariant.c (find_invariants_to_move): Add missing macro
2376 2007-08-17 Tom Tromey <tromey@redhat.com>
2378 * tree.h (struct tree_label_decl): Removed old "java" fields.
2380 2007-08-17 Richard Sandiford <richard@codesourcery.com>
2381 Nigel Stephens <nigel@mips.com>
2383 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
2384 Treat -mno-data-in-code and -mcode-xonly as aliases for
2385 -mcode-readable=no and -mcode-readable=pcrel respectively.
2386 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
2387 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
2388 (MULTILIB_DIRNAMES): Update accordingly.
2390 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
2392 * Makefile.in (version.o): Depend on $(REVISION) only if
2393 REVISION_s is defined.
2395 2007-08-17 Sa Liu <saliu@de.ibm.com>
2396 Ulrich Weigand <uweigand@de.ibm.com>
2399 * tree.c (reconstruct_complex_type): For a pointer to a vector,
2400 use build_qualified_type to retain qualifiers of the base type.
2402 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
2404 * config/score/score.md : Update pattern tablejump.
2405 * config/score/score.c : Update score_initialize_trampoline
2407 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
2408 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
2409 * doc/contrib.texi: Add my entry.
2411 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
2413 * Makefile.in (REVISION): New.
2416 (version.o): Also depend on $(REVISION). Add
2417 -DREVISION=$(REVISION_s).
2419 * version.c (version_string): Add REVISION.
2421 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
2423 * tree-eh.c (lower_try_finally_onedest): Reset the locus
2424 of GOTO that's relocated to a different block.
2426 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2428 * c-common.c (const_strip_array_types): New.
2429 * c-common.h (lang_missing_noreturn_ok_p): Delete.
2430 (const_strip_array_types): New.
2431 * c-objc-common.c (c_disregard_inline_limits,
2432 c_warn_unused_global_decl): Constify.
2433 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
2434 c_vla_type_p, c_incomplete_type_error): Likewise.
2435 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
2436 * hooks.c (hook_bool_const_tree_false): New.
2437 * hooks.h (hook_bool_const_tree_false): Likewise.
2438 * langhooks-def.h (lhd_warn_unused_global_decl,
2439 lhd_incomplete_type_error, lhd_expr_size,
2440 lhd_tree_inlining_disregard_inline_limits,
2441 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
2442 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
2443 * langhooks.c (lhd_warn_unused_global_decl,
2444 lhd_incomplete_type_error,
2445 lhd_tree_inlining_disregard_inline_limits,
2446 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
2447 lhd_expr_size): Likewise.
2448 * langhooks.h (lang_hooks_for_tree_inlining,
2449 lang_hooks_for_tree_dump, lang_hooks_for_types,
2450 lang_hooks_for_decls, lang_hooks): Likewise.
2451 * pointer-set.c (pointer_set_t, pointer_set_create,
2452 pointer_set_contains, insert_aux, pointer_set_insert,
2453 pointer_set_traverse, pointer_map_t, pointer_map_create,
2454 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
2456 * pointer-set.h (pointer_set_contains, pointer_set_insert,
2457 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
2458 pointer_map_traverse): Likewise.
2459 * predict.c (assert_is_empty): Likewise.
2460 * tree-affine.c (free_name_expansion): Likewise.
2461 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
2462 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
2463 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
2465 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
2467 * tree-vectorizer.c (new_loop_vec_info): Initialize new
2469 (destroy_loop_vec_info): Add call to VEC_free.
2470 * tree-vectorizer.h (may_alias_ddrs): Define.
2471 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
2472 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2473 Change reporting to dump.
2474 (vect_is_duplicate_ddr): New.
2475 (vect_mark_for_runtime_alias_test): New.
2476 (vect_analyze_data_ref_dependences) Add call to
2477 vect_mark_for_runtime_alias_test.
2478 (vect_enhance_data_refs_alignment): Define local variable
2479 vect_versioning_for_alias_required, don't perform
2480 peeling for alignment if versioning for alias is
2482 (vect_enhance_data_refs_alignment): Use
2483 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
2484 PARAM_VECT_MAX_VERSION_CHECKS.
2485 * tree-vect-transform.c
2486 (vect_create_cond_for_alias_checks): New.
2487 (vect_transform_loop): Add call to
2488 vect_create_cond_for_alias_checks.
2489 (vect_vfa_segment_size): New.
2490 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
2492 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
2493 * gcc/doc/invoke.texi
2494 (vect-max-version-for-alignment-checks): Document.
2495 (vect-max-version-for-alias-checks): Document.
2496 (vect-max-version-checks): Remove.
2498 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
2500 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
2501 the same line as the instruction for all asm dialects.
2502 (*rep_movsi): Ditto.
2503 (*rep_movsi_rex64): Ditto.
2504 (*rep_movqi): Ditto.
2505 (*rep_movqi_rex64): Ditto.
2506 (*rep_stosdi_rex64): Ditto.
2507 (*rep_stossi): Ditto.
2508 (*rep_stossi_rex64): Ditto.
2509 (*rep_stosqi): Ditto.
2510 (*rep_stosqi_rex64): Ditto.
2511 (*cmpstrnqi_nz_1): Ditto.
2512 (*cmpstrnqi_nz_rex_1): Ditto.
2513 (*cmpstrnqi_1): Ditto.
2514 (*cmpstrnqi_rex_1): Ditto.
2515 (*strlenqi_1): Ditto.
2516 (*strlenqi_rex_1): Ditto.
2517 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
2518 prefix on the same line as the instruction for all asm dialects.
2519 (sync_double_compare_and_swap<mode>): Ditto.
2520 (*sync_double_compare_and_swapdi_pic): Ditto.
2521 (*sync_compare_and_swap_cc<mode>): Ditto.
2522 (sync_double_compare_and_swap_cc<mode>): Ditto.
2523 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
2524 (sync_old_add<mode>): Ditto.
2525 (sync_add<mode>): Ditto.
2526 (sync_sub<mode>): Ditto.
2527 (sync_ior<mode>): Ditto.
2528 (sync_and<mode>): Ditto.
2529 (sync_xor<mode>): Ditto.
2531 2007-08-16 Richard Sandiford <richard@codesourcery.com>
2534 * reload.c (find_reloads): Check that the memory returned by
2535 find_reloads_toplev was not the result of forcing a constant
2537 (find_reloads_toplev): Always use simplify_gen_subreg to get
2538 the subreg of a constant. If the result is also a constant,
2539 but not a legitimate one, force it into the constant pool
2540 and reload its address.
2542 2007-08-15 David Edelsohn <edelsohn@gnu.org>
2544 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
2547 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
2549 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
2550 directive for the current vector ABI.
2552 2007-08-15 Steve Ellcey <sje@cup.hp.com>
2555 * caller-save.c (reg_save_code): Set invalide status on restore code.
2557 2007-08-15 Diego Novillo <dnovillo@google.com>
2559 * tree-ssa-alias.c (compute_memory_partitions): Use
2560 alias_bitmap_obstack to allocate bitmaps.
2561 (reset_alias_info): Factor out of init_alias_info.
2562 Mark all name tags not associated to an SSA name for renaming.
2563 (init_alias_info): Call it.
2564 (create_name_tags): Tidy. Add comments.
2565 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
2567 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2569 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
2570 scheduler dependencies.
2572 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
2574 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
2576 (*iorsi_1_zext): Likewise.
2577 (*iorsi_1_zext_imm): Likewise.
2578 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
2579 with "rm"/"xm" constraint.
2580 (sse2_vmsqrtv2df2): Likewise.
2582 2007-08-15 Jakub Jelinek <jakub@redhat.com>
2585 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
2588 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
2590 * tree-pass.h (PROP_pta): Removed.
2591 (TODO_rebuild_alias): New.
2592 (pass_may_alias): Removed.
2593 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
2594 aliasing if we changed something.
2595 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
2597 (pass_may_alias): Removed.
2598 (create_structure_vars): Return TODO_rebuild_alias.
2599 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
2600 * tree-sra.c (tree_sra): Only rebuild aliasing if something
2602 (tree_sra_early): We never affect aliasing right now.
2603 * tree-flow.h (compute_may_aliases): New prototype.
2604 * passes.c: Remove pass_may_alias from the passes.
2605 (execute_function_todo): Support TODO_rebuild_alias.
2607 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
2609 * i386.c: (legitimize_address): Move dllimported variable check
2610 infront of legitimizing pic address of CONST symbols.
2612 2007-08-14 Steve Ellcey <sje@cup.hp.com>
2614 PR tree-optimization/32941
2615 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
2616 (goto_queue_cmp): Remove.
2617 (find_goto_replacement): Change search method.
2618 (maybe_record_in_goto_queue): Add assert.
2619 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
2620 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
2622 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2624 * alias.c (component_uses_parent_alias_set): Constify.
2625 * alias.h (component_uses_parent_alias_set): Likewise.
2626 * cfgrtl.c (print_rtl_with_bb): Likewise.
2627 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
2628 mpz_get_double_int): Likewise.
2629 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
2630 mpz_get_double_int): Likewise.
2631 * expr.c (is_aligning_offset, undefined_operand_subword_p,
2632 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
2634 * expr.h (safe_from_p): Likewise.
2635 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
2637 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
2638 zero_sized_type, goa_lhs_expr_p): Likewise.
2639 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
2640 * rtl.h (print_rtl_with_bb): Likewise.
2641 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
2642 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
2643 * tree-flow-inline.h (bb_stmt_list): Constify.
2644 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
2646 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
2647 const_first_stmt, const_last_stmt): New.
2648 (block_may_fallthru, empty_block_p): Constify.
2649 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
2650 EXPR_ONLY_BODY): New.
2651 (expr_first, expr_last, expr_only): Use macro for body.
2652 (const_expr_first, const_expr_last, const_expr_only): New.
2653 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
2654 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
2655 ctsi_prev, ctsi_stmt): New.
2656 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
2657 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
2658 * tree-ssa-loop-niter.c (loop_only_exit_p,
2659 derive_constant_upper_bound): Likewise.
2660 * tree-ssa-phiopt.c (empty_block_p): Likewise.
2661 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
2662 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
2663 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
2664 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
2665 * tree.c (get_type_static_bounds): Likewise.
2666 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
2667 (get_type_static_bounds): Constify.
2669 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
2672 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
2673 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
2674 (*<addsub><mode>3_cc_overflow): New.
2675 (*add<mode>3_cconly_overflow): New.
2676 (*sub<mode>3_cconly_overflow): New.
2677 (*<addsub>si3_zext_cc_overflow): New.
2678 * config/i386/predicates.md (fcmov_comparison_operator): Accept
2679 CCCmode for LTU, GTU, LEU and GEU.
2680 (ix86_comparison_operator): Likewise.
2681 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
2682 * config/i386/i386.c (put_condition_code): Support CCCmode.
2683 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
2684 or MINUS expressions.
2686 2007-08-14 Andrew Pinski <pinskia@gmail.com>
2689 * c-typeck.c (build_binary_op): Disallow vector float types with
2690 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
2692 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
2694 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
2695 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
2696 (dep_def): New typedef.
2697 (init_dep_1, sd_debug_dep): Declare functions.
2698 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
2699 (debug_dep_links): Remove.
2700 (struct _deps_list): New field 'n_links'.
2701 (DEPS_LIST_N_LINKS): New macro.
2702 (FOR_EACH_DEP_LINK): Remove.
2703 (create_deps_list, free_deps_list, delete_deps_list): Remove
2705 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
2706 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2707 (copy_deps_list_change_con, move_dep_link): Ditto.
2708 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
2709 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
2711 (INSN_BACK_DEPS): Remove.
2712 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
2714 (INSN_DEP_COUNT): Remove.
2715 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
2716 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
2717 Declare global variables.
2718 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
2719 (add_forw_dep, compute_forward_dependences): Remove declarations.
2720 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
2721 (add_back_forw_dep, delete_back_forw_dep): Ditto.
2722 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
2724 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
2726 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
2727 (sd_list_types_def): New typedef.
2728 (sd_next_list): Declare function.
2729 (struct _sd_iterator): New type.
2730 (sd_iterator_def): New typedef.
2731 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
2733 (FOR_EACH_DEP): New cycle wrapper.
2734 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
2736 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
2737 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
2740 * sched-deps.c (init_dep_1): Make global.
2741 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
2743 (dump_dep): New static function.
2744 (dump_dep_flags): New static variable.
2745 (sd_debug_dep): New function.
2746 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
2748 (move_dep_link): Use remove_from_deps_list (), instead of
2750 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
2751 (dep_link_is_detached_p): New static function.
2752 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
2754 (dn_pool, dl_pool): New alloc_pools.
2755 (dn_pool_diff, dl_pool_diff): New static variables.
2756 (create_dep_node, delete_dep_node): New static function.
2757 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
2758 (deps_list_empty_p): Make it static. Use 'n_links' field.
2759 (deps_pools_are_empty_p): New static function.
2760 (alloc_deps_list, delete_deps_list): Remove.
2761 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
2762 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2763 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
2764 (forward_dependency_cache): Remove.
2765 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
2766 'back' from the names. Change signature to use dep_t instead of
2768 (add_back_dep): Ditto. Make global.
2769 (check_dep_status): Rename to check_dep ().
2770 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
2772 (sd_finish_insn): Ditto.
2773 (sd_find_dep_between_no_cache): New static function.
2774 (sd_find_dep_between): New function.
2775 (ask_dependency_caches, set_dependency_caches): New static functions.
2776 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
2777 (add_or_update_dep_1): Separate pieces of functionality into
2778 ask_dependency_caches (), update_dependency_caches (),
2779 change_spec_dep_to_hard (), update_dep ().
2780 (get_back_and_forw_lists): New static function.
2781 (sd_add_dep): Separate setting of dependency caches into
2782 set_dependency_caches ().
2783 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
2785 (sd_delete_dep): Ditto.
2786 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
2787 (dump_lists): New static function.
2788 (sd_debug_lists): New debug function.
2789 (delete_all_dependences, fixup_sched_groups): Update to use
2790 sd_* infrastructure.
2791 (sched_analyze_2): Create data-speculative dependency only if
2792 data-speculation is enabled.
2793 (sched_analyze_insn): If insn cannot be speculative, make all its
2794 dependencies non-speculative.
2795 (sched_analyze): Use sd_init_insn ().
2796 (add_forw_dep, compute_forward_dependencies): Remove.
2797 (delete_dep_nodes_in_back_deps): New static function.
2798 (sched_free_deps): New function.
2799 (init_dependency_caches): Init alloc_pools.
2800 (extend_depedency_caches): Update after removing of
2801 forward_dependency_cache.
2802 (free_dependency_caches): Ditto. Free alloc_pools.
2803 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
2804 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
2806 (add_back_forw_dep, delete_back_forw_dep): Ditto.
2807 (add_dependence): Use init_dep ().
2808 (get_dep_weak_1): New static function.
2809 (get_dep_weak): Move logic to get_dep_weak_1 ().
2810 (dump_ds): New static function moved from haifa-sched.c:
2811 debug_spec_status ().
2812 (debug_ds): New debug function.
2813 (check_dep_status): Rename to check_dep (). Update to check whole
2816 * haifa-sched.c (spec_info): Make global.
2817 (added_recovery_block_p): Rename to
2818 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
2819 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
2820 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
2821 to use new interfaces.
2822 (ok_for_early_queue_removal): Ditto.
2823 (schedule_block): Initialize logical uids of insns emitted by the
2825 (sched_init): Initialize new variable.
2826 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
2828 (extend_global): Initialize insn data.
2829 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
2830 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
2832 (add_to_speculative_block): Update to use new interfaces.
2833 (create_recovery_block): Set new variables.
2834 (create_check_block_twin, fix_recovery_deps): Update to use new
2836 (sched_insn_is_legitimate_for_speculation_p): New function.
2837 (speculate_insn): Move checking logic to
2838 sched_insn_is_legitimate_for_speculation_p ().
2839 (sched_remove_insn): Finalize sched-deps information of instruction.
2840 (clear_priorities, add_jump_dependencies): Update to use new
2842 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
2844 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
2845 to use new interfaces.
2846 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
2847 (new_ready): Try to use control speculation only if it is available.
2848 (add_branch_dependences): Update to use new interfaces.
2849 (compute_block_backward_dependences): Rename to
2850 compute_block_dependences (). Call
2851 targetm.sched.dependencies_evaluation_hook ().
2852 (free_block_dependencies): New static function.
2853 (debug_dependencies): Update to use new interfaces.
2854 (schedule_region): Remove separate computation of forward dependencies.
2855 Move call of targetm.sched.dependencies_evaluation_hook () to
2856 compute_block_dependences (). Free dependencies at the end of
2857 scheduling the region.
2859 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
2861 (add_deps_for_risky_insns): Ditto.
2862 (schedule_ebb): Remove separate computation of forward dependencies.
2863 Free dependencies at the end of scheduling the ebb.
2865 * ddg.c (create_ddg_dependence): Update to use new interfaces.
2866 (build_intra_loop_deps): Ditto. Remove separate computation of
2867 forward dependencies. Free sched-deps dependencies.
2869 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
2870 to use new interfaces.
2871 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
2873 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
2875 (is_costly_group): Ditto.
2877 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2879 * alias.c (rtx_equal_for_memref_p): Constify.
2880 * basic-block.h (const_edge, const_basic_block): New.
2881 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
2882 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
2883 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
2884 probably_never_executed_bb_p, edge_probability_reliable_p,
2885 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
2886 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
2888 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
2889 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
2891 * cfganal.c (flow_active_insn_p, forwarder_block_p,
2892 flow_nodes_print, dfs_enumerate_from): Likewise.
2893 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
2894 control_flow_insn_p, count_basic_blocks): Likewise.
2895 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
2896 get_loop_body_with_size, loop_exit_edge_p): Likewise.
2897 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
2898 average_num_loop_insns, loop_exit_edge_p,
2899 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
2900 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
2901 average_num_loop_insns, seq_cost): Likewise.
2902 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
2903 * dominance.c (dominated_by_p): Likewise.
2904 * emit-rtl.c (validate_subreg): Likewise.
2905 * except.c (can_throw_internal, can_throw_external): Likewise.
2906 * except.h (can_throw_internal, can_throw_external): Likewise.
2907 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
2908 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
2909 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
2910 simple_mem, store_ops_ok, load_kills_store, find_loads,
2911 store_killed_in_insn, store_killed_after, store_killed_before,
2912 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
2914 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
2915 noce_mem_write_may_trap_or_fault_p): Likewise.
2916 * pointer-set.c (pointer_set_contains, pointer_map_contains):
2918 * pointer-set.h (pointer_set_contains, pointer_map_contains):
2920 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
2921 probably_cold_bb_p, probably_never_executed_bb_p,
2922 edge_probability_reliable_p, br_prob_note_reliable_p,
2923 can_predict_insn_p): Likewise.
2924 * regclass.c (reg_set_to_hard_reg_set): Likewise.
2925 * resource.c (return_insn_p): Likewise.
2926 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
2928 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
2929 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
2930 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
2931 verify_gimple_modify_stmt): Likewise.
2932 * tree-chrec.c (is_not_constant_evolution,
2933 is_multivariate_chrec_rec, is_multivariate_chrec,
2934 chrec_contains_symbols, chrec_contains_undetermined,
2935 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
2936 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
2937 eq_evolutions_p, scev_direction): Likewise.
2938 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
2939 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
2940 chrec_contains_symbols_defined_in_loop,
2941 chrec_contains_undetermined, tree_contains_chrecs,
2942 evolution_function_is_affine_multivariate_p,
2943 evolution_function_is_univariate_p, chrec_zerop,
2944 evolution_function_is_constant_p, evolution_function_is_affine_p,
2945 evolution_function_is_affine_or_constant_p,
2946 tree_does_not_contain_chrecs, chrec_type): Likewise.
2947 * tree-data-ref.c (tree_fold_divides_p,
2948 object_address_invariant_in_loop_p, dr_may_alias_p,
2949 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
2950 same_access_functions, constant_access_functions,
2951 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
2953 * tree-flow.h (scev_direction): Likewise.
2954 * tree-gimple.c (is_gimple_stmt): Likewise.
2955 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
2957 * tree-pretty-print.c (op_prio): Likewise.
2958 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
2959 analyzable_condition, backedge_phi_arg_p): Likewise.
2960 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
2961 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
2962 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
2965 2007-08-13 Dan Hipschman <dsh@google.com>
2968 * c-format.c (check_format_arg): Move check for zero-length
2969 format strings below the check for unterminated strings.
2971 2007-08-13 Andrew Pinski <pinskia@gmail.com>
2974 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
2977 2007-08-13 Nick Clifton <nickc@redhat.com>
2979 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
2981 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2984 * c-format.c (gcc_gfc_length_specs): New array.
2985 (gcc_gfc_char_table): Add unsigned specifier, and references to
2986 the l length modifier.
2987 (format_types_orig): Use the new gcc_gfc_length_specs.
2989 2007-08-12 Sa Liu <saliu@de.ibm.com>
2991 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
2992 and with REG_RETVAL note after split.
2994 2007-08-11 David Daney <ddaney@avtrex.com>
2996 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
2997 as ATTRIBUTE_UNUSED.
2999 2007-08-11 David Edelsohn <edelsohn@gnu.org>
3000 Segher Boessenkool <segher@kernel.crashing.org>
3002 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
3003 HAVE_LOCAL_CPU_DETECT not defined.
3005 2007-08-11 Jan Hubicka <jh@suse.cz>
3007 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
3008 (cgraph_process_new_functions): Honor previous value of
3009 disregard_inline_limits.
3010 * ipa-inline.c (compute_inline_parameters): Likewise.
3012 2007-08-11 Ian Lance Taylor <iant@google.com>
3014 * alias.h (alias_set_type): Define new type.
3015 (ALIAS_SET_MEMORY_BARRIER): Use it.
3016 * rtl.h: Include alias.h.
3017 (struct mem_attrs): Use alias_set_type.
3018 * tree.h: Include alias.h
3019 (struct tree_type): Use alias_set_type.
3020 (struct tree_struct_field_tag): Likewise.
3021 (struct tree_decl_common): Likewise.
3022 * alias.c (struct alias_set_entry): Use alias_set_type.
3023 (get_alias_set_entry, alias_set_subset_of): Likewise.
3024 (alias_sets_conflict_p): Likewise.
3025 (alias_sets_must_conflict_p): Likewise.
3026 (objects_must_conflict_p): Likewise.
3027 (get_alias_set, new_alias_set): Likewise.
3028 (record_alias_subset, record_component_aliases): Likewise.
3029 (varargs_set, frame_set): Change to alias_set_type.
3030 (get_varargs_alias_set): Use alias_set_type.
3031 (get_frame_alias_set): Likewise.
3032 * builtins.c (setjmp_alias_set): Change to alias_set_type.
3033 * dse.c (struct store_info): Use alias_set_type.
3034 (struct read_info, struct clear_alias_mode_holder): Likewise.
3035 (clear_alias_set_lookup, canon_address): Likewise.
3036 (record_store, check_mem_read_rtx): Likewise.
3037 (dse_record_singleton_alias_set): Likewise.
3038 (dse_invalidate_singleton_alias_set): Likewise.
3039 * emit-rtl.c (get_mem_attrs): Likewise.
3040 (set_mem_attributes_minus_bitpos): Likewise.
3041 (set_mem_alias_set): Likewise.
3042 * expr.c (store_constructor_field, store_field): Likewise.
3043 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
3044 * langhooks.c (lhd_get_alias_set): Likewise.
3045 * langhooks-def.h (lhd_get_alias_set): Likewise.
3046 * reload1.c (alter_reg): Likewise.
3047 * tree-flow.h (struct fieldoff): Likewise.
3048 * tree-ssa-alias.c (struct alias_map_d): Likewise.
3049 (may_alias_p, get_smt_for, create_sft): Likewise.
3050 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
3051 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
3052 (merge_smts_into): Likewise.
3053 * varasm.c (const_alias_set): Likewise.
3054 * c-common.c (strict_aliasing_warning): Likewise.
3055 (c_common_get_alias_set): Likewise.
3056 * dse.h (dse_record_singleton_alias_set): Update declaration.
3057 (dse_invalidate_singleton_alias_set): Likewise.
3058 * emit-rtl.h (set_mem_alias_set): Likewise.
3059 * c-common.h (c_common_get_alias_set): Likewise.
3060 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
3061 * print-tree.c (print_node): Likewise.
3062 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
3064 (alpha_setup_incoming_varargs): Use alias_set_type.
3065 * config/i386/i386.c (setup_incoming_varargs_64): Use
3067 (setup_incoming_varargs_ms_64): Likewise.
3068 (ix86_GOT_alias_set): Likewise.
3069 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
3070 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3071 (set): Change to alias_set_type.
3072 (get_TOC_alias_set): Use alias_set_type.
3073 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
3075 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
3076 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
3078 (struct_value_alias_set): Likewise.
3079 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
3081 2007-08-11 Richard Sandiford <richard@codesourcery.com>
3083 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
3084 * config/vxworks.h (TARGET_VXWORKS): Override.
3085 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
3086 "mips" if TARGET_VXWORKS.
3088 2007-08-11 Richard Sandiford <richard@codesourcery.com>
3090 * calls.c (avoid_likely_spilled_reg): New function.
3091 (expand_call): Use it.
3093 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3095 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
3097 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
3099 * config/mips/predicates.md (const_call_insn_operand): Invoke
3100 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
3102 2007-08-10 David Edelsohn <edelsohn@gnu.org>
3105 * config/rs6000/driver-rs6000.c: Include link.h.
3106 Use ElfW instead of wordsize-specif typedef.
3108 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3110 * system.h (CONST_CAST): New.
3111 * c-decl.c (c_make_fname_decl): Use it.
3112 * c-lex.c (cb_ident, lex_string): Likewise.
3113 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
3114 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
3115 give_switch, set_multilib_dir): Likewise.
3116 * gengtype-parse.c (string_seq, typedef_name): Likewise.
3117 * passes.c (execute_one_pass): Likewise.
3118 * prefix.c (update_path): Likewise.
3119 * pretty-print.c (pp_base_destroy_prefix): Likewise.
3120 * tree.c (build_string): Likewise.
3122 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
3124 * tree-flow-inline.h (is_exec_stmt): Remove.
3125 (is_label_stmt): Remove.
3126 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
3129 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
3131 * lower-subreg.c (resolve_shift_zext): Don't adjust
3132 src_reg_num for wordmode operands.
3134 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
3135 David Ung <davidu@mips.com>
3137 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
3138 (TARGET_SCHED_REORDER2): Define.
3139 (mips_maybe_swap_ready): New.
3140 (mips_last_74k_agen_insn): New.
3141 (mips_74k_agen_init): New.
3142 (mips_74k_agen_reorder): New function to group loads and stores
3144 (mips_sched_init): New.
3145 (mips_sched_reorder): Don't do initialization here. Call
3146 mips_74k_agen_reorder.
3147 (mips_variable_issue): Call mips_74k_agen_init.
3149 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
3151 * tree-flow-inline.h (get_filename): Remove.
3153 2007-08-10 Richard Sandiford <richard@codesourcery.com>
3155 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
3157 (mips_fetch_insns): Delete in favor of...
3158 (mips_load_store_insns): ...this new function.
3159 * config/mips/mips.c (mips_address_insns): Add a boolean argument
3160 to say whether multiword moves _might_ be split.
3161 (mips_fetch_insns): Delete in favor of...
3162 (mips_load_store_insns): ...this new function.
3163 (mips_rtx_costs): Update the call to mips_address_insns.
3164 (mips_address_cost): Likewise.
3165 * config/mips/mips.md (length): Use mips_load_store_insns instead
3166 of mips_fetch_insns.
3167 * config/mips/constraints.md (R): Use mips_address_insns rather
3168 than mips_fetch_insns. Assume that the move never needs to be split.
3170 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
3172 * config/mips/mips.opt (mhard-float, msoft-float): Make these
3173 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
3174 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
3175 * config/mips/mips.h (mips16_hard_float): Delete.
3176 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
3177 definitions, and replace with....
3178 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
3179 * config/mips/mips.c (mips16_hard_float): Delete. Replace
3180 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
3181 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
3182 (override_options): Replace MASK_SOFT_FLOAT references with
3183 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
3184 and mips16_hard_float when TARGET_MIPS16.
3186 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
3189 * c-typeck.c (build_binary_op): Check for non pointer types before
3190 calling int_fits_type_p.
3192 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
3195 * fold-const.c (omit_one_operand): Return only the ommitted expression
3196 if the result is an empty statement.
3197 (pedantic_omit_one_operand): Likewise.
3199 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
3201 * c-typeck.c (readonly_error): Improve error for assignment.
3203 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
3205 (pp_c_expression): Ditto.
3207 2007-08-09 Simon Baldwin <simonb@google.com>
3209 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
3210 break that was preventing simplify_associative_operation() for xor.
3212 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
3213 Nigel Stephens <nigel@mips.com>
3215 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
3216 Document change in interpretation of value from boolean to
3218 * optabs.c (expand_ffs, expand_ctz): New functions to compute
3219 ffs and ctz using clz.
3220 (expand_unop): Call them.
3221 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
3223 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3224 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
3225 enable the new ffs expansion on this target.
3227 2007-08-09 Jan Hubicka <jh@suse.cz>
3229 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
3230 (expand_ternary_op): Likewise.
3231 (expand_vec_shift_expr): Likewise.
3232 (expand_binop_directly): Likewise.
3233 (expand_binop): Likewise.
3234 (sign_expand_binop): Likewise.
3235 (expand_twoval_unop): Likewise.
3236 (expand_twoval_binop): Likewise.
3237 (expand_twoval_binop_libfunc): Likewise.
3238 (widen_clz): Likewise.
3239 (widen_bswap): Likewise.
3240 (expand_parity): Likewise.
3241 (expand_unop): Likewise.
3242 (expand_abs_nojump): Likewise.
3243 (expand_copysign): Likewise.
3244 (emit_no_conflict_block): Likewise.
3245 (emit_libcall_block): Likewise.
3246 (can_compare_p): Likewise.
3247 (prepare_cmp_insn): Likewise.
3248 (emit_cmp_and_jump_insn_1): Likewise.
3249 (prepare_float_lib_cmp): Likewise.
3250 (emit_conditional_add): Likewise.
3251 (gen_add2_insn): Likewise.
3252 (have_add2_insn): Likewise.
3253 (gen_sub2_insn): Likewise.
3254 (have_sub2_insn): Likewise.
3255 (can_extend_p): Likewise.
3256 (can_fix_p): Likewise.
3257 (can_float_p): Likewise.
3258 (expand_float): Likewise.
3259 (expand_fix): Likewise.
3260 (expand_sfix_optab): Likewise.
3261 (new_optab): Likewise.
3262 (new_convert_optab): Likewise.
3263 (init_libfuncs): Likewise.
3264 (init_interclass_conv_libfuncs): Likewise.
3265 (init_intraclass_conv_libfuncs): Likewise.
3266 (set_conv_libfunc): Likewise.
3267 (init_optabs): Likewise.
3268 (debug_optab_libfuncs): Likewise.
3269 (gen_cond_trap): Likewise.
3270 * optabs.h (optab_handler, convert_optab_hanlder): New.
3271 * genopinit.c: Update optabs generation table.
3272 * reload.c (find_reloads_address_1): Use optabs accestors.
3273 * builtins.c (expand_builtin_mathfn): Likewise.
3274 (expand_builtin_mathfn_2): Likewise.
3275 (expand_builtin_mathfn_3): Likewise.
3276 (expand_builtin_interclass_mathfn): Likewise.
3277 (expand_builtin_sincos): Likewise.
3278 (expand_builtin_cexpi): Likewise.
3279 (expand_builtin_powi): Likewise.
3280 (expand_builtin_strlen): Likewise.
3281 * dojump.c (do_jump): Likewise.
3282 * expr.c (convert_move): Likewise.
3283 (move_by_pieces): Likewise.
3284 (move_by_pieces_ninsns): Likewise.
3285 (can_store_by_pieces): Likewise.
3286 (store_by_pieces_1): Likewise.
3287 (emit_move_via_integer): Likewise.
3288 (emit_move_complex): Likewise.
3289 (emit_move_ccmode): Likewise.
3290 (emit_move_insn_1): Likewise.
3291 (emit_single_push_insn): Likewise.
3292 (store_constructor): Likewise.
3293 (expand_expr_real_1): Likewise.
3294 (do_store_flag): Likewise.
3295 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
3296 (enumerate_modes): Likewise.
3297 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3298 (supportable_widening_operation): Likewise.
3299 (supportable_narrowing_operation): Likewise.
3300 * expmed.c (store_bit_field_1): Likewise.
3301 (extract_bit_field_1): Likewise.
3302 (expand_mult_highpart_optab): Likewise.
3303 (expand_smod_pow2): Likewise.
3304 (expand_divmod): Likewise.
3305 (emit_store_flag): Likewise.
3306 * tree-vect-patterns.c
3307 (vect_pattern_recog_1): Likewise.
3308 * tree-ssa-loop-prefetch.c
3309 (nontemporal_store_p): Likewise.
3310 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
3311 (vect_create_epilog_for_reduction): Likewise.
3312 (vectorizable_reduction): Likewise.
3313 (vectorizable_operation): Likewise.
3314 (vect_strided_store_supported): Likewise.
3315 (vectorizable_store): Likewise.
3316 (vect_strided_load_supported): Likewise.
3317 (vectorizable_load): Likewise.
3318 * combine.c (simplify_comparison): Likewise.
3319 * tree-vect-generic.c
3320 (type_for_widest_vector_mode): Likewise.
3321 (expand_vector_operations_1): Likewise.
3322 * config/spu/spu.c (spu_expand_mov): Likewise.
3323 (spu_emit_vector_compare): Likewise.
3324 * config/rs6000/rs6000.c
3325 (rs6000_emit_vector_compare): Likewise.
3326 * stmt.c (add_case_node): Likewise.
3327 * reload1.c (gen_reload):
3329 2007-08-09 Michael Matz <matz@suse.de>
3331 * tree.h (fixed_zerop): Declare as taking a const_tree.
3332 * tree.c (fixed_zerop): Take a const_tree.
3334 2007-08-09 Ira Rosen <irar@il.ibm.com>
3336 * tree-vect-transform.c (vectorizable_store): Remove call to
3337 copy_virtual_operands() and call mark_symbols_for_renaming() for
3338 the created vector store.
3339 (vect_setup_realignment): Don't call copy_virtual_operands() and
3340 update_vuses_to_preheader().
3341 (vectorizable_load): Don't call copy_virtual_operands().
3342 (update_vuses_to_preheader): Remove.
3344 2007-08-08 Chao-ying Fu <fu@mips.com>
3346 * tree.def (FIXED_POINT_TYPE): New type.
3347 (FIXED_CST): New constant.
3348 (FIXED_CONVERT_EXPR): New expr.
3349 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
3350 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
3351 * tree.h (struct tree_base): Add saturating_flag.
3352 Remove one bit of spare for saturating_flag.
3353 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
3354 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
3355 FIXED_POINT_TYPE_P): Define.
3356 (TYPE_SATURATING): Define.
3357 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
3358 (struct tree_fixed_cst): New.
3359 (TYPE_IBIT, TYPE_FBIT): Define.
3360 (tree_node): Add fixed_cst.
3361 (enum tree_index): Add new enumeration values of
3362 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
3363 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,