1 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr>
4 * common.opt: Mention ABI version 2 in comment.
6 2007-09-04 Jan Hubicka <jh@suse.cz>
8 * optabs.c (debug_optab_libfunc): Update; make available to gdb.
9 (libfunc_entry): New structure.
10 (libfunc_hash): New hashtable.
11 (hash_libfunc): New function.
12 (eq_libfunc): New function.
13 (convert_optab_libfunc): New function.
14 (optab_libfunc): New function.
15 (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
16 expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
17 expand_float, expand_fix, new_optab, new_convert_optab):
18 Update for new libfunc API.
19 (init_libfunc, init_integral_libfuncs,
20 init_floating_libfuncs, init_interclass_conv_libfuncs
21 init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
22 (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
23 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
24 gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
25 gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
26 gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
27 gen_extend_conv_libfunc): New.
28 (init_one_libfunc): Revamp for hashtables.
29 (set_conv_libfunc): Likewise.
30 (init_optabs): Initialize hashtable; use lazy initialization where
32 * optabs.h (optab_handlers): Move out of GGC.
33 (optab, convert_optab): Move out of GGC; add lazy gen info.
34 (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
35 (optab_libfunc, convert_optab_libfunc): New.
36 * builtins.c (expand_builtin_powi): Update for new API.
37 * expr.c (convert_move): Likewise.
38 * expmed.c (expand_divmod): Likewise.
40 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
42 * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
43 GOT pointer only if there is a constant pool. Use the allocated space
46 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
48 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
51 2007-09-04 Revital Eres <eres@il.ibm.com>
52 Richard Guenther <rguenther@suse.de>
53 R. Clint Whaley <whaley@cs.utsa.edu>
55 * doc/invoke.texi (-fassociative-math, -freciprocal-math):
57 * tree-tailcall.c (process_assignment): Use -fassociative-math
58 when reodering operands of floating-point type.
59 * fold-const.c (fold_comparison, fold_binary): Use
60 -fassociative-math and -freciprocal-math instead of
61 -funsafe-math-optimization flag.
62 * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
63 * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
64 -freciprocal-math instead of -funsafe-math-optimizations.
65 * opts.c (set_fast_math_flags): Set -freciprocal-math and
66 -fassociative-math when -ffast-math is set.
67 (set_unsafe_math_optimizations_flags): New Function
68 to set -freciprocal-math and -fassociative-math when
69 -funsafe-math-optimizations is set.
70 (common_handle_option): Call it.
71 * tree-vectorizer.c (vect_is_simple_reduction): Use
72 -fassociative-math when doing reduction on floats.
73 * loop-unroll.c (analyze_insn_to_expand_var): Use
74 -fassociative-math when expanding an accumulator of type float.
75 * simplify-rtx.c (simplify_binary_operation_1): Use
76 -fassociative-math and -freciprocal-math when reordeing operands
77 of floating-point type.
78 * combine.c (combine_simplify_rtx): Likewise.
79 * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
81 * common.opt (-fassociative-math, -freciprocal-math): New flags.
83 2007-09-04 Paolo Carlini <pcarlini@suse.de>
86 * doc/install.texi (--enable-__cxa_atexit): Fix typo.
88 2007-09-04 Jan Hubicka <jh@suse.cz>
90 * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
92 2007-09-04 Jan Hubicka <jh@suse.cz>
94 * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
95 and corresponding MATCH_DUP.
97 2007-09-04 Uros Bizjak <ubizjak@gmail.com>
100 * combine.c (subst): Do not try to simplify X if it represents load
101 of FP constant from the constant pool via float extension.
103 2007-09-04 Ben Elliston <bje@au.ibm.com>
105 * c-opts.c: Include "tm_p.h".
106 * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
108 2007-09-04 Richard Guenther <rguenther@suse.de>
110 PR tree-optimization/33291
111 * tree-pretty-print.c (dump_generic_node): Dump all
112 qualifiers for pointer types, not only first. Dump
113 qualifiers for aggregate types as well.
114 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
115 use the canonical type for building ARRAY_REFs.
116 * gimplify.c (canonicalize_addr_expr): Clean up. The
117 correct validness check is compatibility of the pointer
118 types. Always use the canonical type for building
119 ARRAY_REFs and ADDR_EXPRs.
120 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
121 change that disabled propagation of ADDR_EXPRs into statements
124 2007-09-03 Zack Weinberg <zack@codesourcery.com>
126 * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
127 (umulsi3_highpart): Make into expanders; existing insns are
128 now named *[insn]_nov6. Add stars to existing [insn]_v6
131 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
133 * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
134 (unprotoize.o): Remove SHLIB_MULTILIB.
136 2007-09-03 Eric Weddington <eweddington@cso.atmel.com>
138 * doc/extend.texi: Document progmem attribute for AVR.
140 2007-09-03 Anatoly Sokolov <aesok@post.ru>
143 * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
145 2007-09-03 Zack Weinberg <zack@codesourcery.com>
147 * optabs.c (expand_ffs): Initialize val and defined_at_zero
150 * optabs.c: Remove unnecessary forward declarations.
151 (expand_unop_direct): New, broken out of expand_unop.
152 (expand_doubleword_clz): New.
153 (expand_ctz): Move above expand_ffs. Use
154 start_sequence, end_sequence, add_equal_note, and
155 expand_unop_direct. Add more commentary.
156 (expand_ffs): Try both ctz optab and expand_ctz.
157 Generate a test and branch if the hardware doesn't give us
158 a useful value for input zero. Style improvements similar to
161 * config/arm/arm.md (ffssi2, ctzsi2): Delete.
163 2007-09-03 Zack Weinberg <zack@codesourcery.com>
165 * config.gcc: Delete stanza for arm-semi-aof and
166 armel-semi-aof targets.
167 * config/arm/arm-protos.h
169 * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
170 make all #ifndef AOF_ASSEMBLER blocks unconditional. Also
171 delete aof_pic_label and remove mention of AOF in comments.
172 * config/arm/arm.md: Delete patterns used only for AOF assembly.
174 * config/arm/semiaof.h
175 * config/arm/t-semi: Delete file.
177 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
179 * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
180 CONST_CAST_BB): New macros for type-specific casts.
181 (CONST_CAST): Add a TYPE parameter and define it in terms of
184 * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
185 * c-lex.c (cb_ident, lex_string): Likewise,
186 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
187 * config/i386/i386.c (ix86_function_regparm,
188 ix86_function_sseregparm): Use CONST_CAST_TREE.
189 * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
191 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
192 give_switch, set_multilib_dir): Likewise,
193 * gengtype-parse.c (string_seq, typedef_name): Likewise,
194 * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
195 * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
196 * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
197 * prefix.c (update_path): Likewise,
198 * pretty-print.c (pp_base_destroy_prefix): Likewise,
199 * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
200 * tree-cfg.c (tree_can_merge_blocks_p,
201 tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
202 * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
203 * tree.c (build_string): Supply a TYPE for CONST_CAST.
204 (attribute_list_contained): Use CONST_CAST_TREE.
206 2007-09-03 Krister Walfridsson <cato@df.lth.se>
208 * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
210 2007-09-03 Richard Sandiford <richard@codesourcery.com>
213 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
214 before forcing them into a register.
216 2007-09-03 Richard Sandiford <richard@codesourcery.com>
218 * config/mips/mips.md (fetchop_bit): Use define_code_iterator
219 rather than define_code_macro.
221 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
223 * gcc.c (xputenv): New function.
224 (putenv_from_prefixes): Use xputenv instead of putenv.
225 (process_command): Use xputenv instead of putenv.
226 (set_collect_gcc_options): Use xputenv instead of putenv.
227 (main): Use xputenv instead of putenv.
229 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
231 * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
232 availability of swap instruction.
233 * config/cris/cris.md (bswapsi2): Implement using swap instruction.
235 2007-09-03 Revital Eres <eres@il.ibm.com>
237 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
240 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
241 Ayal Zaks <zaks@il.ibm.com>
242 Revital Eres <eres@il.ibm.com>
244 * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
245 compute_split_row): New functions.
246 (ps_unschedule_node): Remove.
247 (normalize_sched_times): Iterate over the already scheduled
248 insns instead of the number of nodes.
249 (MAX_SPLIT_NUM): New definition.
250 (sms_schedule_by_order): Change the scheduling heuristic to
251 avoid useless increases of initiation interval ii.
252 (get_sched_window): Add dump printouts.
254 2007-09-02 David Daney <ddaney@avtrex.com>
256 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
257 UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
258 (optab, insn): Add more attributes.
259 (fetchop_bit): New code macro.
260 (immediate_insn): New code macro attribute.
261 (sync): Change condition to ISA_HAS_SYNC.
262 (rdhwr): Change predicate for operand 0 to register_operand.
263 (memory_barrier): New expand.
264 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
265 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
266 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
267 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
268 sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
269 * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
270 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
271 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
272 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
274 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
275 Hans-Peter Nilsson <hp@axis.com>
277 * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
278 Defined to describe availability and behavior of CLZ.
279 * config/cris/cris.md (clzsi2): Implement using lz instruction.
280 * config/cris/cris.opt: Tweak comment for "-metrax4".
281 * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
282 * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
283 (count_leading_zeros): Define.
285 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
287 * ggc-page.c (ggc_pch_read): Call validate_free_objects.
289 2007-09-02 Joseph Myers <joseph@codesourcery.com>
292 * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
295 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
297 * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
298 config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
299 ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
300 sched-deps.c, sched-int.h, system.h, target.h,
301 tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
302 tree.def: Fix comment typos.
304 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
306 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
307 (override_options): Turn on -mstrict-align on non-ColdFire
309 * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
311 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
313 * c-common.c (const_strip_array_types): Delete.
314 * c-common.h (const_strip_array_types): Likewise.
315 * emit-rtl.c (const_next_insn, const_previous_insn,
316 const_next_nonnote_insn, const_prev_nonnote_insn,
317 const_next_real_insn, const_prev_real_insn,
318 const_next_active_insn, const_prev_active_insn, const_next_label,
319 const_prev_label): Delete.
320 * gimple-low.c (block_may_fallthru): Use expr_last.
321 * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
322 * rtl.h (const_previous_insn, const_next_insn,
323 const_prev_nonnote_insn, const_next_nonnote_insn,
324 const_prev_real_insn, const_next_real_insn,
325 const_prev_active_insn, const_next_active_insn, const_prev_label,
326 const_next_label): Delete.
327 * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
328 * system.h (CONST_CAST): Update comment.
329 * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
330 (const_first_stmt, const_last_stmt): Delete.
331 (tree_block_ends_with_condjump_p): Use last_stmt.
332 * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
333 * tree-iterator.c (const_expr_first, const_expr_last,
334 const_expr_only): Delete.
335 * tree.c (const_lookup_attribute): Likewise.
336 (attribute_list_contained): Use lookup_attribute.
337 * tree.h (const_lookup_attribute, const_expr_first,
338 const_expr_last, const_expr_only): Delete.
340 2007-09-01 Richard Guenther <rguenther@suse.de>
342 * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
343 instead of TREE_THIS_VOLATILE.
344 * tree-ssa-operands.c (add_virtual_operand): Do not set
345 has_volatile_ops. Do not check s_ann for NULL.
346 (get_indirect_ref_operands): Likewise.
347 (get_expr_operands): Likewise. For all reference trees
348 set has_volatile_ops based on TREE_THIS_VOLATILE. Also
349 check base of reference for TREE_THIS_VOLATILE.
351 2007-09-01 Richard Guenther <rguenther@suse.de>
353 * tree-cfg.c (verify_gimple_expr): Fix check for conversions
354 between integral types. Also allow conversions between
357 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
359 * optabs.c (prepare_float_lib_cmp): Use
360 libgcc_cmp_return_mode instead of word_mode.
361 * config/dfp-bit.h: Likewise.
362 * config/fp-bit.h: Likewise.
363 * config/spu/spu.c (spu_libgcc_cmp_return_mode):
365 (spu_libgcc_shift_count_mode): New function.
366 (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
367 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
369 2007-08-31 Joseph Myers <joseph@codesourcery.com>
371 * tree-pretty-print.c: Include output.h.
372 (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
373 HOST_WIDE_INT_PRINT_DEC.
374 * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
376 2007-08-31 Zdenek Dvorak <ook@ucw.cz>
378 PR rtl-optimization/33224
379 * loop-iv.c (latch_dominating_def): Check that the definition belongs
380 to the analysed region.
382 2007-08-31 Richard Guenther <rguenther@suse.de>
384 * function.c (allocate_struct_function): Do not set
385 current_function_returns_pointer.
386 * function.h (struct var_refs_queue): Remove.
387 (struct simple_obstack_stack): Likewise.
388 (struct function): Remove fixup_var_refs_queue member.
389 Remove returns_pointer flag.
390 (current_function_returns_pointer): Remove define.
392 2007-08-31 Nick Clifton <nickc@redhat.com>
394 * tree-ssa-coalesce.c (compare_pairs): Use the elements as
395 secondary keys in order to obtain a stable sort.
397 2007-08-31 Nick Clifton <nickc@redhat.com>
400 * config/m32r/constraints.md: Add W constraint for integer zero.
401 * config/m32r/m32r.md (get_pc): Use W and i constraints.
402 Fix length calculation by using alternatives.
404 2007-08-31 Richard Sandiford <richard@codesourcery.com>
406 * optabs.c (shift_optab_p, commutative_optab_p): New functions,
407 split out from expand_binop.
408 (avoid_expensive_constant): New function.
409 (expand_binop_directly): Remove commutative_op argument and
410 (expand_binop_directly): Remove commutative_op argument and
411 call cummutative_optab_p instead. Do not change op0 or op1
412 when swapping xop0 and xop1. Apply avoid_expensive_constant
413 to each argument after potential swapping. Enforce the
414 canonical order of commutative operands.
415 (expand_binop): Use shift_optab_p and commutative_optab_p.
416 Update the calls to expand_binop_directly. Only force constants
417 into registers when widening an operation. Only swap operands
418 once a direct expansion has been rejected.
419 (expand_twoval_binop): Only force constants into registers when
420 using a direct expansion.
422 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
424 * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
425 (sched_analyze_insn): Don't postprocess speculative dependencies when
426 target has no scheduling.
427 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
428 'uninitialized' warning.
430 2007-08-31 Richard Guenther <rguenther@suse.de>
432 * tree.c (build_complex_type): Always set TYPE_NAME for
435 2007-08-31 Olivier Hainque <hainque@adacore.com>
437 * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
438 internal macro. Default alignment factor for csect directives, chosen
439 to match what BIGGEST_ALIGNMENT allows.
440 (DATA_SECTION_ASM_OP): Use it.
441 * config/rs6000/rs6000.c
442 (rs6000_xcoff_output_readonly_section_asm_op):
443 Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
444 (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
446 2007-08-31 Olivier Hainque <hainque@adacore.com>
448 * dbxout.c (dbxout_block): Move declaration within the first
449 #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such
450 block to include the definition, together with the associated
453 2007-08-31 David Edelsohn <edelsohn@gnu.org>
454 Revital Eres <eres@il.ibm.com>
456 * doc/invoke.texi (-mpaired): Document flag.
457 * config.gcc: Include paired.h in powerpc extra_headers and
458 750cl.h in powerpc-*-linux*paired*.
459 * config/rs6000/rs6000.opt (-mpaired): New flag.
460 * config/rs6000/rs6000.c (paired_init_builtins,
461 paired_expand_builtin, paired_expand_lv_builtin,
462 paired_expand_stv_builtin, paired_expand_predicate_builtin):
463 New functions to support the paired single builtin functions.
464 (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
465 (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
467 (bdesc_paired_preds): New structure for paired predicate
469 (rs6000_expand_builtin): Expand paired single builtins.
470 (rs6000_init_builtins): Init paired single builtins.
471 (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
472 Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
473 and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types
474 v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
475 (rs6000_vector_mode_supported_p): Support paired vector mode.
476 * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
477 PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
479 (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
480 (DATA_ALIGNMENT): Likewise.
481 (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
482 (rs6000_builtins): Add PAIRED builtins.
483 * config/rs6000/rs6000.md: Include paired.md.
484 * config/rs6000/paired.h: New.
485 * config/rs6000/paired.md: New.
486 * config/rs6000/750cl.h: New.
487 * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
489 2007-08-30 Ollie Wild <aaw@google.com>
491 * c-opts.c (c_common_handle_option): Support -fno-directives-only.
492 * gcc.c (default_compilers): Add -fno-directives-only to
495 2007-08-30 Sandra Loosemore <sandra@codesourcery.com>
499 * regclass.c (initial_fixed_regs): Revert previous change and make
501 (initial_call_used_regs): Likewise.
502 (initial_call_really_used_regs): Delete, reverting previous addition.
503 (initial_reg_names): Likewise.
504 (init_reg_sets): Revert previous change.
505 (saved_fixed_regs): New.
506 (saved_call_used_regs): New.
507 (saved_call_really_used_regs): New.
508 (saved_reg_names): New.
509 (save_register_info): New.
510 (restore_register_info): New.
511 (init_reg_sets_1): Replace reset of register info with call to
512 restore_register_info.
513 * rtl.h (save_register_info): Declare.
514 * toplev.c (backend_init): Call save_register_info.
516 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
518 * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
519 from the original statement.
521 2007-08-30 Chao-ying Fu <fu@mips.com>
523 * c-lex.c (interpret_fixed): Declare.
524 (interpret_float): Process _Fract and _Accum.
525 (interpret_fixed): New function.
526 * final.c (output_addr_const): Process CONST_FIXED.
527 * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
528 (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
530 (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
532 (simplify_immed_subreg): Support CONST_FIXED.
533 Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
534 (simplify_subreg): Support CONST_FIXED.
536 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
538 * config/rs6000/ppu_intrinsics.h: New file.
539 * config.gcc (powerpc*-*-* <extra_headers>): Install
542 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
544 * cfg.c (dump_flow_info): Change to also print entry and exit
546 * print-rtl.c (print_rtl_single): Allow to print rtl with
549 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
551 * df-core.h (df_dump_region): New function.
552 * df.h (df_dump_region): New function.
553 * loop-invariant.c (find_defs): Add call to df_dump_region.
554 * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
557 2007-08-30 Jakub Jelinek <jakub@redhat.com>
559 * decl.c (start_preparsed_function): Set
560 DECL_DISREGARD_INLINE_LIMITS for GNU_INLINE_P functions.
563 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
564 true if any of the compare_section_name calls returned true,
565 rather than if any returned false.
567 2007-08-30 Richard Guenther <rguenther@suse.de>
569 PR tree-optimization/33199
570 * tree-ssa-structalias.c (handle_lhs_call): New function.
571 (find_func_aliases): In non-IPA mode make sure that for
572 calls that return a pointer we add a constraint for the
573 result to point to anything.
575 2007-08-30 Richard Guenther <rguenther@suse.de>
577 * doc/invoke.texi (-mveclibabi): Document new target option.
578 * config/i386/i386.opt (-mveclibabi): New target option.
579 * config/i386/i386.c (ix86_veclib_handler): Handler for
580 vectorization library support.
581 (override_options): Handle the -mveclibabi option, initialize
582 the vectorization library handler.
583 (ix86_builtin_vectorized_function): As fallback call the
584 vectorization library handler, if set.
585 (ix86_veclibabi_acml): New static function for ACML ABI style
586 vectorization support.
588 2007-08-30 Jakub Jelinek <jakub@redhat.com>
590 * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
591 used_m, even if it is 32-bit aligned, adjust used_m MEM to have
592 SImode and update m. Don't run gen_lowpart_common on arbitrary
593 memory address, force it to register first.
596 * dce.c (dce_process_block): Don't delete setters of
597 artificially used registers.
599 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
601 * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
602 "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
603 "*add<mode>3_alc_carry2_cconly"): New insn definitions.
605 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
607 * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
609 * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
610 "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
612 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
614 * system.h: Activate -Wcast-qual as warning-only.
616 2007-08-29 Paolo Bonzini <bonzini@gnu.org>
619 * config/rs6000/rs6000.c (compare_section_name): New function.
620 (rs6000_elf_in_small_data_p): Compare section prefixes instead
623 2007-08-29 Olivier Hainque <hainque@adacore.com>
625 * xcoffout.c: #include debug.h.
626 * Makefile.in (xcoffout.o): Add debug.h dependency.
628 2007-08-29 Uros Bizjak <ubizjak@gmail.com>
630 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
631 Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
633 2007-08-29 Richard Guenther <rguenther@suse.de>
635 * tree-pretty-print.c (dump_generic_node): Print
636 label DECL_UID as D.%u.
637 * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
639 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
641 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
642 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
644 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
647 * tree.c (build_type_attribute_qual_variant): Set canonical types
648 on the final, unqualified attribute variant before building the
651 2007-08-29 Jie Zhang <jie.zhang@analog.com>
653 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
654 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
656 2007-08-29 Jie Zhang <jie.zhang@analog.com>
659 2007-08-29 Jie Zhang <jie.zhang@analog.com>
660 * config/bfin/bfin.md (composev2hi): Put operands into vector
663 2007-08-29 Jie Zhang <jie.zhang@analog.com>
665 * config/bfin/bfin.md (composev2hi): Put operands into vector
668 2007-08-29 Jie Zhang <jie.zhang@analog.com>
670 * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
671 attribute when appropriate.
672 (bfin_handle_l1_text_attribute): New.
673 (bfin_handle_l1_data_attribute): New.
674 (bfin_attribute_table): Add attributes: l1_text, l1_data,
675 l1_data_A and l1_data_B.
676 * doc/extend.texi (node Function Attributes): Document l1_text
678 (Variable Attributes): Add Blackfin subsection. Document l1_data,
679 l1_data_A and l1_data_B variable attributes.
681 2007-08-28 Jie Zhang <jie.zhang@analog.com>
683 * config/bfin/bfin.opt (minline-plt): Add.
684 * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
685 call to global functions.
686 * doc/invoke.texi (Option Summary): Mention -minline-plt.
687 (Blackfin Options): Document -minline-plt.
689 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
691 * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
692 given a non-function.
693 (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
695 2007-08-28 DJ Delorie <dj@redhat.com>
697 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
699 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
701 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
703 2007-08-28 Richard Guenther <rguenther@suse.de>
705 * tree.h (struct tree_function_decl): Increase size of
706 function_code bitfield.
708 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
709 Kazu Hirata <kazu@codesourcery.com>
711 * gcc/config/m68k/linux.h
712 (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
713 * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
714 (m68k_return_in_memory): New.
715 * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
718 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
721 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
722 Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
723 operand) when top VEC_SELECT extracts scalar element.
724 * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
725 (*vec_extract_v4sf_mem): Ditto.
727 2007-08-28 Jakub Jelinek <jakub@redhat.com>
730 * passes.c (init_optimization_passes): Move pass_df_finish
731 after pass_postreload sublist.
733 PR rtl-optimization/33148
734 * simplify-rtx.c (simplify_unary_operation_1): Only optimize
735 (neg (lt X 0)) if X has scalar int mode.
738 * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
739 initializer, use build_vector_from_ctor if possible to create
740 VECTOR_CST out of it. If vector initializer is not VECTOR_CST
741 even after this, return NULL.
743 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
745 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
747 2007-08-28 Richard Guenther <rguenther@suse.de>
749 * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
750 (struct tree_function_decl): Make function_code a bitfield.
751 Add disregard_inline_limits flag.
752 * cgraphunit.c (cgraph_process_new_functions): Check
753 DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
754 (cgraph_preserve_function_body_p): Likewise.
755 * ipa-inline.c (compute_inline_parameters): Likewise.
756 * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
757 for GNU C extern inline functions.
758 (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
759 * tree-inline.c (disregard_inline_limits_p): Remove.
760 * tree-inline.h (disregard_inline_limits_p): Likewise.
761 * c-common.c (handle_always_inline_attribute): Set
762 DECL_DISREGARD_INLINE_LIMITS.
763 * langhooks.c (add_builtin_function): Verify the function code
764 fits in the bitfield.
766 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com>
767 Vladimir Yanovsky <yanov@il.ibm.com>
768 Revital Eres <eres@il.ibm.com>
769 Andrey Belevantsev <abel@ispras.ru>
771 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
773 * modulo-sched.c: Add documentation regarding do-loop.
774 (doloop_register_get): Change number of arguments to support
775 the new do-loop pattern and check whether COUNT_REG has no other
776 occurences in the loop besides in the control part.
777 (duplicate_insns_of_cycles): Do not duplicate the insn which
778 changes count_reg as it is already adjusted.
779 (generate_prolog_epilog): New argument to support the new
780 do-loop pattern. Change the subtract instruction to use
781 expand_simple_binop. Call duplicate_insns_of_cycles with new
783 (sms_schedule): Call doloop_register_get and
784 generate_prolog_epilog with new argument. Do not handle loops
785 with single sets insns with subreg in their lhs.
786 * loop-doloop.c (doloop_optimize): Support for another do-loop
788 (doloop_condition_get): Gets an instruction instead of a pattern
789 and change the return condition when the do-loop pattern is
791 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
792 deps when considering to not create edges.
794 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
796 * doc/extend.texi (gnu_inline funtion attribute): Document C++
799 2007-08-27 Jason Merrill <jason@redhat.com>
802 * gimplify.c (gimplify_modify_expr): Discard the assignment of
803 zero-sized types after calling gimplify_modify_expr_rhs.
805 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
807 * regclass.c (init_reg_autoinc): Fix typo.
809 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
811 Fix PR tree-optimization/33173
812 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
814 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
817 * config/i386/i386.h (VALID_DFP_MODE_P): New.
818 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
821 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
822 David Ung <davidu@mips.com>
823 Nigel Stephens <nigel@mips.com>
825 Separate target-specific initialization from general
826 back-end initialization.
828 * toplev.c (init_alignments): New, split out from...
829 (process_options): ...here.
830 (backend_init_target): New, split out from...
831 (backend_init): ...here.
832 (lang_dependent_init_target): New, split out from...
833 (lang_dependent_init): ...here.
834 (target_reinit): New.
835 * toplev.h (target_reinit): Declare.
836 * expr.c (init_expr_target): Renamed from init_expr_once, since it
837 now can be called more than once. Update comments.
838 * expr.h (init_expr_target): Likewise.
839 * alias.c (init_alias_target): Renamed from init_alias_once, since it
840 now can be called more than once. Explicitly zero
841 static_reg_base_value.
842 * emit-rtl.c (init_emit_regs): New, split out from...
843 (init_emit_once): Here.
844 * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
845 non-const, so that changes from command-line arguments can overwrite
846 values provided by the static initializers.
847 (initial_call_really_used_regs): New, used similarly to the above.
848 (initial_reg_names): Likewise.
849 (last_mode_for_init_move_cost): Promoted function-local static to
850 file-scope static to make it accessible outside init_move_cost.
851 (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
852 Do not initialize inv_reg_alloc_order yet, either. Do initialize
853 reg_names since it is needed for parsing command-line options.
854 (init_move_cost): Use last_mode_for_init_move_cost instead of
855 function-local static.
856 (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
857 call_really_used_regs now. Reinitialize reg_names. Also
858 initialize inv_reg_alloc_order. Zero reg_class_subunion and
859 reg_class_superunion. Clear losing_caller_save_reg_set.
860 Preserve global registers if called more than once. Reset
861 move cost, may_move_in_cost, may_move_out_cost, and
862 last_mode_for_init_move_cost.
863 (init_reg_modes_target): Renamed from init_reg_modes_once, since it
864 can now be invoked more than once. Update comments.
865 (init_regs): Update comments.
866 (fix_register): Update initial_fixed_regs, initial_call_used_regs,
867 and initial_call_really_used_regs, instead of the non-initial
868 variables. This allows us to save the command-line register settings
869 after target reinitialization.
870 (init_reg_autoinc): Zero forbidden_inc_dec_classes.
871 * rtl.h (init_emit_regs): Declare.
872 (init_reg_modes_target, init_alias_target): Renamed as described
874 * reload1.c (init_reload): Update comments.
875 * optabs.c (init_optabs): Likewise.
876 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
878 2007-08-26 Chao-ying Fu <fu@mips.com>
880 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
883 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
885 * alias.c (memory_modified_1, memory_modified_in_insn_p):
887 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
889 * bb-reorder.c (copy_bb_p): Likewise.
890 * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
891 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
892 block_ends_with_condjump_p): Likewise.
893 * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
894 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
895 block_ends_with_condjump_p): Likewise.
896 * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
897 * cfgrtl.c (can_delete_note_p, can_delete_label_p,
898 rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
899 rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
900 need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
901 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
902 debug_true_const_tree instad of debug_true_tree.
903 * debug.c (do_nothing_debug_hooks): Likewise.
904 * debug.h (ignore_block, debug_true_const_tree): Constify.
905 * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
906 dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
907 decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
908 same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
909 dbx_reg_number, is_based_loc, field_type,
910 simple_type_align_in_bits, simple_decl_align_in_bits,
911 simple_type_size_in_bits, field_byte_offset, insert_float,
912 type_tag, member_declared_type, is_redundant_typedef,
913 secname_for_decl, is_inlined_entry_point): Likewise.
914 * emit-rtl.c (const_next_insn, const_previous_insn,
915 const_next_nonnote_insn, const_prev_nonnote_insn,
916 const_next_real_insn, const_prev_real_insn,
917 const_next_active_insn, const_prev_active_insn, const_next_label,
918 const_prev_label): Likewise.
919 * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
921 * haifa-sched.c (may_trap_exp, haifa_classify_insn,
922 find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
923 sched_insn_is_legitimate_for_speculation_p): Likewise.
924 * jump.c (reversed_comparison_code_parts,
925 reversed_comparison_code, reversed_comparison, condjump_label):
927 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
928 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
930 * rtl.h (const_previous_insn, const_next_insn,
931 const_prev_nonnote_insn, const_next_nonnote_insn,
932 const_prev_real_insn, const_next_real_insn,
933 const_prev_active_insn, const_next_active_insn, const_prev_label,
934 const_next_label, modified_between_p, modified_in_p,
935 const_note_storeskeep_with_call_p, condjump_label,
936 reversed_comparison, reversed_comparison_code,
937 reversed_comparison_code_parts, memory_modified_in_insn_p,
938 stack_regs_mentioned): Likewise.
939 * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
940 keep_with_call_p): Likewise.
941 * sched-deps.c (deps_may_trap_p, sched_get_condition,
942 conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
943 sd_lists_size, sd_lists_empty_p): Likewise.
944 * sched-int.h (sched_insns_conditions_mutex_p,
945 haifa_classify_insn, no_real_insns_p,
946 sched_insn_is_legitimate_for_speculation_p, sd_next_list,
947 sd_lists_size, sd_lists_empty_p): Likewise.
948 * sdbout.c (sdb_debug_hooks): Likewise.
949 * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
950 stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
951 -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
953 * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
954 tree_can_throw_internal): Likewise.
955 * tree-flow-inline.h (phi_nodes): Likewise.
956 * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
957 tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
958 * tree-gimple.c (const_get_call_expr_in): Likewise.
959 * tree-gimple.h (const_get_call_expr_in): Likewise.
960 * tree.c (const_lookup_attribute, attribute_list_equal,
961 attribute_list_contained): Likewise.
962 * tree.h (attribute_list_equal, attribute_list_contained,
963 const_lookup_attribute): Likewise.
964 * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
966 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
968 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
969 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
971 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
974 * config/alpha/constraints.md: Delete "svn:mime-type" property
975 with svn propdel "svn:mime-type".
977 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
980 * ifcvt.c (noce_get_alt_condition): Make sure that the previous
981 non NOTE insn doesn't cross basic block.
982 (noce_try_abs): Likewise.
983 (noce_process_if_block): Likewise.
985 2007-08-26 David Edelsohn <edelsohn@gnu.org>
988 * config/rs6000/predicates.md (offsettable_mem_operand): Memory
989 operand without auto-inc-dec.
990 * config/rs6000/rs6000.md (floatsidf2_internal): Use
991 offsettable_mem_operand.
992 (floatunssidf2_internal): Same.
993 (fix_truncdfsi2_internal): Same.
994 (floatsidf_ppc64): Same.
995 (floatunssidf_ppc64): Same.
996 (fix_trunctfsi2_internal): Same.
998 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
1001 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
1002 pass defines needed for version.c.
1004 2007-08-25 Joseph Myers <joseph@codesourcery.com>
1006 * configure.ac (--debug-prefix-map check): Change assembler
1007 version presumed to have feature to 2.18.
1008 * configure: Regenerate.
1010 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1012 * c-common.c (vector_types_convertible_p,
1013 decl_with_nonnull_addr_p, c_promoting_integer_type_p,
1014 self_promoting_args_p): Constify.
1015 * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
1016 c_promoting_integer_type_p, self_promoting_args_p,
1017 anon_aggr_type_p, vector_types_convertible_p): Likewise.
1018 * c-decl.c (anon_aggr_type_p): Likewise.
1019 * * c-dump.c (dump_stmt): Likewise.
1020 * c-objc-common.c (has_c_linkage): Likewise.
1021 * c-tree.h (same_translation_unit_p): Likewise.
1022 * c-typeck.c (null_pointer_constant_p,
1023 tagged_types_tu_compatible_p, function_types_compatible_p,
1024 type_lists_compatible_p, lvalue_or_else, lvalue_p,
1025 comptypes_internal, struct tagged_tu_seen_cache,
1026 same_translation_unit_p, alloc_tagged_tu_seen_cache,
1027 c_size_in_bytes): Likewise.
1028 * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
1029 hash_ptr, eq_ptr): Likewise.
1030 * langhooks-def.h (lhd_decl_ok_for_sibcall,
1031 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
1032 * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
1033 * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
1035 * optabs.c (optab_for_tree_code): Likewise.
1036 * optabs.h (optab_for_tree_code): Likewise.
1037 * rtl.h (simplify_rtx): Likewise.
1038 * simplify-rtx.c (simplify_rtx): Likewise.
1039 * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
1040 dump_flag, dump_node): Likewise.
1041 * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
1042 queue_and_dump_type, dump_flag): Likewise.
1043 * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
1044 * tree-pass.h (dump_node): Likewise.
1045 * tree-vectorizer.c (vect_can_force_dr_alignment_p,
1046 supportable_narrowing_operation): Likewise.
1047 * tree-vectorizer.h (vect_can_force_dr_alignment_p,
1048 supportable_narrowing_operation): Likewise.
1049 * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
1050 is_negative_overflow_infinity, is_positive_overflow_infinity,
1051 is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
1052 nonnull_arg_p, get_value_range, vrp_operand_equal_p,
1053 update_value_range, add_equivalence, ssa_name_nonnegative_p,
1054 ssa_name_nonzero_p, fp_predicate): Likewise.
1055 * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
1056 * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
1057 ssa_name_nonnegative_p): Likewise.
1059 2007-08-25 Hans Kester <hans.kester@ellips.nl>
1061 * config.gcc : Add x86_64-elf target.
1063 2007-08-25 Jakub Jelinek <jakub@redhat.com>
1065 * expr.c (store_expr): Fix order of store_by_pieces arguments.
1067 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
1068 Nigel Stephens <nigel@mips.com>
1072 * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
1073 (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
1074 * expr.c (SET_BY_PIECES_P): Define.
1075 (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
1076 it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
1077 (store_expr): Pass MEMSETP argument to can_store_by_pieces and
1079 * expr.h (SET_RATIO): Define.
1080 (can_store_by_pieces, store_by_pieces): Update prototypes.
1081 * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
1082 can_store_by_pieces/store_by_pieces.
1083 (expand_builtin_memcpy_args): Likewise.
1084 (expand_builtin_strncpy): Likewise.
1085 (expand_builtin_memset_args): Likewise. Also remove special case
1086 for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
1087 decide what to do instead.
1088 * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
1089 to can_store_by_pieces.
1091 * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
1092 * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
1094 * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
1095 * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
1096 * config/mips/mips.h (MIPS_CALL_RATIO): Define.
1097 (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
1098 (STORE_BY_PIECES_P): Define.
1100 2007-08-24 Tom Tromey <tromey@redhat.com>
1102 * varpool.c (varpool_last_needed_node): Fix comment typo.
1103 * c-decl.c (duplicate_decls): Fix comment typo.
1104 (clone_underlying_type): Update comment.
1106 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1108 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
1109 alpha_in_small_data_p, alpha_split_complex_arg,
1110 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
1112 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
1113 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
1115 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
1116 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1117 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
1118 * config/darwin.c (darwin_binds_local_p): Likewise.
1119 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
1121 * config/i386/i386-protos.h (i386_pe_binds_local_p,
1122 i386_pe_valid_dllimport_attribute_p): Likewise.
1123 * config/i386/i386.c (ix86_function_regparm,
1124 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
1125 x86_can_output_mi_thunk, ix86_mangle_type,
1126 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1127 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
1128 i386_pe_binds_local_p): Likewise.
1129 * config/ia64/ia64.c
1130 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
1131 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
1132 ia64_invalid_conversion, ia64_invalid_unary_op,
1133 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
1135 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
1136 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
1137 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1138 * config/mips/mips.c (mips_use_blocks_for_constant_p,
1139 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
1140 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1141 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
1142 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
1143 * config/pa/pa.c (pa_commutative_p): Likewise.
1144 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
1146 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
1147 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
1148 rs6000_use_blocks_for_constant_p,
1149 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
1150 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1151 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
1152 * config/s390/s390.c (s390_mangle_type,
1153 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
1155 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1156 th_in_small_data_p): Likewise.
1157 * config/sh/sh.c (sh_ms_bitfield_layout_p,
1158 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
1160 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
1161 sparc_mangle_type): Likewise.
1162 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
1163 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
1164 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
1166 * hooks.c (hook_bool_mode_const_rtx_false,
1167 hook_bool_mode_const_rtx_true,
1168 hook_bool_const_tree_hwi_hwi_const_tree_false,
1169 hook_bool_const_tree_hwi_hwi_const_tree_true,
1170 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1171 hook_constcharptr_const_tree_null,
1172 hook_constcharptr_const_rtx_null,
1173 hook_constcharptr_const_tree_const_tree_null,
1174 hook_constcharptr_int_const_tree_null,
1175 hook_constcharptr_int_const_tree_const_tree_null): New.
1176 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1177 hook_bool_tree_hwi_hwi_tree_false,
1178 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
1179 hook_int_tree_tree_1, hook_constcharptr_tree_null,
1180 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
1181 hook_constcharptr_int_tree_null,
1182 hook_constcharptr_int_tree_tree_null): Delete.
1183 (default_can_output_mi_thunk_no_vcall): Constify.
1184 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1185 hook_bool_tree_hwi_hwi_tree_false,
1186 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
1187 hook_int_tree_tree_1, hook_constcharptr_tree_null,
1188 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
1189 hook_constcharptr_int_tree_null,
1190 hook_constcharptr_int_tree_tree_null): Delete.
1191 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
1192 hook_bool_const_tree_hwi_hwi_const_tree_false,
1193 hook_bool_const_tree_hwi_hwi_const_tree_true,
1194 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1195 hook_constcharptr_const_tree_null,
1196 hook_constcharptr_const_rtx_null,
1197 hook_constcharptr_const_tree_const_tree_null,
1198 hook_constcharptr_int_const_tree_null,
1199 hook_constcharptr_int_const_tree_const_tree_null): New.
1200 (default_can_output_mi_thunk_no_vcall): Constify.
1201 * integrate.c (function_attribute_inlinable_p): Likewise.
1202 * integrate.h (function_attribute_inlinable_p): Likewise.
1203 * jump.c (rtx_renumbered_equal_p): Likewise.
1204 * output.h (decl_readonly_section, categorize_decl_for_section,
1205 default_use_anchors_for_symbol_p, default_binds_local_p,
1206 default_binds_local_p_1): Likewise.
1207 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
1209 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
1210 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
1211 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
1212 TARGET_COMP_TYPE_ATTRIBUTES,
1213 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
1214 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
1215 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
1216 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
1217 TARGET_DWARF_CALLING_CONVENTION): Likewise.
1218 * target.h (can_output_mi_thunk, needs_block_p,
1219 first_cycle_multipass_dfa_lookahead_guard_spec,
1220 vector_alignment_reachable, comp_type_attributes,
1221 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
1222 commutative_p, use_blocks_for_constant_p,
1223 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
1224 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
1225 invalid_within_doloop, valid_dllimport_attribute_p,
1226 split_complex_arg, invalid_arg_for_unprototyped_fn,
1227 invalid_conversion, invalid_unary_op, invalid_binary_op):
1229 * targhooks.c (default_invalid_within_doloop,
1230 hook_invalid_arg_for_unprototyped_fn,
1231 default_builtin_vector_alignment_reachable): Likewise.
1232 (hook_bool_rtx_commutative_p): Delete.
1233 (hook_bool_const_rtx_commutative_p): New.
1234 * targhooks.h (default_invalid_within_doloop,
1235 default_builtin_vector_alignment_reachable,
1236 hook_invalid_arg_for_unprototyped_fn): Constify.
1237 (hook_bool_rtx_commutative_p): Delete.
1238 (hook_bool_const_rtx_commutative_p): New.
1239 * varasm.c (bss_initializer_p, decl_default_tls_model,
1240 categorize_decl_for_section, decl_readonly_section,
1241 default_use_anchors_for_symbol_p, default_binds_local_p,
1242 default_binds_local_p_1): Constify.
1244 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1246 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1247 __NO_BUILTIN if -fno-builtin.
1249 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1251 * config/bfin/bfin.c (print_operand): Report error instead of
1252 ICE for wrong operand.
1254 2007-08-24 Michael Matz <matz@suse.de>
1256 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
1258 2007-08-24 Richard Guenther <rguenther@suse.de>
1261 * tree-ssa.c (useless_type_conversion_p): Split into a
1262 recursive and a non-recursive part.
1263 (useless_type_conversion_p_1): New function.
1264 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
1265 from maybe_fold_offset_to_reference is trivially convertible
1266 to the desired type before doing the simplification.
1268 2007-08-24 Jakub Jelinek <jakub@redhat.com>
1270 * expr.c (store_expr): Optimize initialization of an array
1272 * expr.h (builtin_strncpy_read_str): New prototype.
1273 * builtins.c (builtin_strncpy_read_str): Remove prototype.
1276 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
1279 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
1280 field when initializing if_info structure.
1282 2007-08-24 Richard Guenther <rguenther@suse.de>
1284 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
1286 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
1287 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
1288 * tree-inline.c (inlinable_function_p): Fold in common parts of
1289 the cannot_inline_tree_fn langhook.
1290 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
1291 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
1292 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1293 cannot_inline_tree_fn langhook.
1294 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1295 cannot_inline_tree_fn member.
1297 2007-08-24 Richard Guenther <rguenther@suse.de>
1299 * expr.c (get_inner_reference): Do computation of bitoffset
1300 from offset in a way we can detect overflow reliably.
1302 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1304 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
1306 2007-08-24 Jie Zhang <jie.zhang@analog.com>
1308 * config/bfin/bfin.opt (mfast-fp): Add.
1309 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
1310 libbffastfp override libgcc if -mfast-fp.
1311 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
1312 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
1313 (Blackfin Options): Document -mfast-fp.
1315 2007-08-24 Jakub Jelinek <jakub@redhat.com>
1317 PR tree-optimization/32573
1319 * tree-data-ref.c (initialize_data_dependence_relation): Clear
1320 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
1321 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
1322 (build_classic_dist_vector): Return false rather than true if
1323 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
1324 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
1325 returned false. Don't call save_dist_v before calling
1326 build_classic_dist_vector_1.
1327 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
1328 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
1329 DDR_DIR_VECTS vectors.
1331 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
1333 * configure.ac (leb128): Modify sed statement to work with any
1334 binutils version string.
1335 * configure: Regenerate
1337 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1339 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
1340 Wrap in RTX_CODE macro guard.
1341 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
1342 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
1343 arm_mark_dllimport, arm_pe_encode_section_info,
1344 arm_pe_unique_section): Use ISO-C function declarations.
1345 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
1346 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
1347 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
1349 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
1350 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
1352 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
1354 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
1355 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
1356 (register_move_cost): Use ISO-C function declarations.
1357 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
1358 * config/score/score-protos.h (score_declare_object): Add
1360 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
1362 * final.c (profile_function): Avoid empty if-bodies.
1365 * calls.c (must_pass_in_stack_var_size,
1366 must_pass_in_stack_var_size_or_pad): Constify.
1367 * config/alpha/alpha-protos.h (function_value): Likewise.
1368 * config/alpha/alpha.c (alpha_return_in_memory,
1369 alpha_pass_by_reference, function_value,
1370 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
1371 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
1373 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
1374 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1375 TARGET_PROMOTE_PROTOTYPES): Likewise.
1376 * config/arm/arm-protos.h (arm_return_in_memory,
1377 arm_pad_arg_upward, arm_function_value): Likewise.
1378 * config/arm/arm.c (arm_pass_by_reference,
1379 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
1380 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1381 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
1383 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
1384 * config/avr/avr-protos.h (avr_function_value): Likewise.
1385 * config/avr/avr.c (avr_return_in_memory,
1386 gas_output_limited_string, gas_output_ascii, avr_function_value,
1387 avr_return_in_memory): Likewise.
1388 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
1389 * config/bfin/bfin.c (bfin_pass_by_reference,
1390 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
1391 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
1393 * config/cris/cris.c (cris_pass_by_reference,
1394 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
1395 * config/crx/crx.c (crx_return_in_memory): Likewise.
1396 * config/darwin.c (function_base, machopic_function_base_name):
1398 * config/fr30/fr30.c (fr30_must_pass_in_stack,
1399 TARGET_PROMOTE_PROTOTYPES): Likewise.
1400 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
1401 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
1402 * config/i386/i386-protos.h (ix86_return_in_memory,
1403 ix86_sol10_return_in_memory): Likewise.
1404 * config/i386/i386.c (ix86_function_value,
1405 ix86_function_sseregparm, ix86_must_pass_in_stack,
1406 type_natural_mode, classify_argument, examine_argument,
1407 construct_container, ix86_pass_by_reference, function_value_32,
1408 function_value_64, ix86_function_value_1, return_in_memory_32,
1409 return_in_memory_64, return_in_memory_ms_64,
1410 ix86_return_in_memory, ix86_sol10_return_in_memory,
1411 TARGET_PROMOTE_PROTOTYPES): Likewise.
1412 * config/ia64/ia64-protos.h (ia64_function_value,
1413 ia64_hpux_function_arg_padding): Likewise.
1414 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
1415 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
1416 ia64_hpux_function_arg_padding): Likewise.
1417 * config/iq2000/iq2000-protos.h (function_arg,
1418 iq2000_function_value): Likewise.
1419 * config/iq2000/iq2000.c (iq2000_return_in_memory,
1420 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
1421 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1422 function_arg, iq2000_function_value): Likewise.
1423 * config/m32c/m32c-protos.h (m32c_function_value,
1424 m32c_promote_function_return): Likewise.
1425 * config/m32c/m32c.c (m32c_pass_by_reference,
1426 m32c_promote_prototypes, m32c_promote_function_return,
1427 m32c_function_value): Likewise.
1428 * config/m32r/m32r.c (m32r_return_in_memory,
1429 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
1430 m32r_in_small_data_p): Likewise.
1431 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
1433 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
1434 m68hc11_function_arg_padding): Likewise.
1435 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
1436 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
1437 m68k_function_value): Likewise.
1438 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
1439 mcore_function_value): Likewise.
1440 * config/mcore/mcore.c (handle_structs_in_regs,
1441 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
1442 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1443 mcore_num_arg_regs, mcore_function_value): Likewise.
1444 * config/mips/mips-protos.h (mips_pad_arg_upward,
1445 mips_function_value): Likewise.
1446 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
1447 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
1448 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1449 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
1450 mips_function_value): Likewise.
1451 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
1453 * config/mmix/mmix.c (mmix_pass_by_reference,
1454 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
1455 mmix_encode_section_info): Likewise.
1456 * config/mn10300/mn10300-protos.h (mn10300_function_value):
1458 * config/mn10300/mn10300.c (mn10300_return_in_memory,
1459 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
1460 mn10300_function_value): Likewise.
1461 * config/mt/mt-protos.h (mt_function_value): Likewise.
1462 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
1463 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
1464 * config/pa/pa-protos.h (function_arg_padding, function_value,
1465 pa_return_in_memory): Likewise.
1466 * config/pa/pa.c (pa_pass_by_reference,
1467 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1468 function_arg_padding, function_value, pa_return_in_memory):
1470 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
1471 * config/rs6000/rs6000-protos.h (rs6000_function_value,
1472 function_arg_padding): Likewise.
1473 * config/rs6000/rs6000.c (rs6000_return_in_memory,
1474 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
1475 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
1476 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1477 function_arg_padding, altivec_expand_dst_builtin,
1478 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
1479 altivec_init_builtins, rs6000_common_init_builtins,
1480 rs6000_function_value): Likewise.
1481 * s390/s390-protos.h (s390_function_value): Likewise.
1482 * config/s390/s390.c (s390_function_arg_size,
1483 s390_pass_by_reference, s390_return_in_memory,
1484 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
1485 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
1486 * config/score/score-protos.h (score_function_value): Likewise.
1487 * config/score/score.c (score_arg_partial_bytes,
1488 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1489 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
1490 score_pass_by_reference, score_add_offset, score_function_value):
1492 * config/sh/sh-protos.h (sh_attr_renesas_p,
1493 sh_promote_prototypes): Likewise.
1494 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
1495 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
1496 sh_attr_renesas_p): Likewise.
1497 * config/sparc/sparc-protos.h (function_value,
1498 function_arg_padding): Likewise.
1499 * config/sparc/sparc.c (sparc_promote_prototypes,
1500 sparc_return_in_memory, sparc_pass_by_reference,
1501 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
1502 function_arg_record_value_2, function_arg_record_value_1,
1503 function_arg_record_value, function_arg_record_value,
1504 function_arg_padding, function_value): Likewise.
1505 * config/spu/spu-protos.h (spu_function_value): Likewise.
1506 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
1507 spu_function_value): Likewise.
1508 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
1510 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
1511 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
1512 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
1514 * config/v850/v850.c (v850_return_in_memory,
1515 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
1516 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
1517 * config/xtensa/xtensa.c (xtensa_return_in_msb,
1518 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
1519 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
1521 * explow.c (promote_mode, hard_function_value): Likewise.
1522 * expr.h (hard_function_value, promote_mode): Likewise.
1523 * function.c (aggregate_value_p): Likewise.
1524 * hooks.c (hook_bool_const_tree_true): New.
1525 * hooks.h (hook_bool_const_tree_true): New.
1526 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
1527 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
1528 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1529 TARGET_RETURN_IN_MSB): Likewise.
1530 * target.h (promote_function_args, promote_function_return,
1531 promote_prototypes, return_in_memory, return_in_msb,
1532 pass_by_reference, must_pass_in_stack, callee_copies,
1533 function_value): Likewise.
1534 * targhooks.c (default_return_in_memory,
1535 hook_pass_by_reference_must_pass_in_stack,
1536 hook_callee_copies_named,
1537 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
1538 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
1539 default_function_value): Likewise.
1540 * targhooks.h (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 * tree-ssa-structalias.c (const_equiv_class_label_t): New.
1547 (equiv_class_label_hash, equiv_class_label_eq): Constify.
1548 * tree-vectorizer.c (bb_in_loop_p): Likewise.
1549 * tree.c (needs_to_live_in_memory): Likewise.
1550 * tree.h (struct tree_type, needs_to_live_in_memory,
1551 aggregate_value_p, must_pass_in_stack_var_size,
1552 must_pass_in_stack_var_size_or_pad): Likewise.
1553 * vmsdbgout.c (write_debug_addr, write_debug_delta4,
1554 write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
1555 lookup_filename): Likewise.
1557 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
1560 * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
1561 fake fcomi i387 instruction for !TARGET_CMOVE.
1562 (ix86_expand_branch): Expand natural sequence with one jump for
1563 all targets, not only TARGET_CMOVE.
1564 * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
1565 pattern to implement fake fcomi sequence. Split instruction after
1566 reload to correct compare sequences.
1567 (*cmpfp_xf_cc): Ditto.
1568 (*cmpfp_<mode>_cc): Ditto.
1569 (*cmpfp_u_cc): Ditto.
1570 (*cmpfp_<mode>_cc): Ditto.
1572 2007-08-23 Richard Guenther <rguenther@suse.de>
1574 * tree-pretty-print.c (dump_generic_node): Annotate
1575 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
1577 2007-08-23 Richard Guenther <rguenther@suse.de>
1579 * builtins.c (expand_builtin_mathfn): Wrap argument in
1580 save_expr directly instead of re-building the call.
1581 (expand_builtin_mathfn_2): Likewise.
1582 (expand_builtin_mathfn_3): Likewise.
1583 (expand_builtin_interclass_mathfn): Likewise.
1584 (expand_builtin_int_roundingfn): Set arg.
1585 (expand_builtin_int_roundingfn_2): Likewise.
1587 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
1589 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
1590 *sse_nand<mode>3, *sse_xor<mode>3): New.
1592 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
1594 * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
1595 * config/i386/i386.c (print_operand): Handle ';' code. Output
1596 semicolon for TARGET_MACHO.
1597 * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
1598 emit semicolon after 'lock' prefix.
1599 (sync_double_compare_and_swap<mode>): Ditto.
1600 (*sync_double_compare_and_swapdi_pic): Ditto.
1601 (*sync_compare_and_swap_cc<mode>): Ditto.
1602 (sync_double_compare_and_swap_cc<mode>): Ditto.
1603 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
1604 (sync_old_add<mode>): Ditto.
1605 (sync_add<mode>): Ditto.
1606 (sync_sub<mode>): Ditto.
1607 (sync_ior<mode>): Ditto.
1608 (sync_and<mode>): Ditto.
1609 (sync_xor<mode>): Ditto.
1611 2007-08-22 Chao-ying Fu <fu@mips.com>
1613 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
1615 (copy_rtx): Handle CONST_FIXED.
1616 (rtx_equal_p): Likewise.
1617 * rtl.h (fixed_value.h): New include.
1618 (rtx_def): Add a new field of fixed_value to u.
1619 (XCNMPFV): Define for accessing fixed_value.
1620 (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
1622 * rtl.def (CONST_FIXED): New constant.
1623 (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
1624 UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
1625 US_ASHIFT): New codes.
1626 * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
1627 us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
1628 unsigned_fract_convert, unsigned_sat_fract): Document them.
1629 * varasm.c (assemble_integer): Extend to support fixed-point constants
1630 by using different machine classes.
1631 (decode_addr_const): Handle FIXED_CST.
1632 (const_hash_1): Likewise.
1633 (compare_constant): Likewise.
1634 (copy_constant): Likewise.
1635 (const_rtx_hash_1): Handle CONST_FIXED.
1636 (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1637 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1639 (initializer_constant_valid_p): Handle FIXED_CST.
1640 (output_constant): Support FIXED_POINT_TYPE.
1641 * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
1642 * cse.c (hash_rtx): Support CONST_FIXED.
1643 (exp_equiv_p): Likewise.
1644 (cannon_reg): Likewise.
1645 (fold_rtx): Likewise.
1646 (equiv_constant): Likewise.
1647 (cse_process_notes_1): Likewise.
1648 (count_reg_usage): Likewise.
1649 * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
1650 (rtx_equal_for_cselib_p): Handle CONST_FIXED.
1651 (wrap_constant): Check CONST_FIXED.
1652 (cselib_hash_rtx): Support CONST_FIXED.
1653 (cselib_subst_to_values): Likewise.
1654 * df-scan.c (df_uses_record): Likewise.
1655 * gcse.c (want_to_gcse_p): Likewise.
1656 (oprs_unchanged_p): Likewise.
1657 (oprs_not_set_p): Likewise.
1658 (compute_transp): Likewise.
1659 (extract_mentioned_regs_helper): Likewise.
1660 * genemit.c (gen_exp): Likewise.
1661 * local-alloc.c (equiv_init_varies_p): Likewise.
1662 (contains_replace_regs): Likewise.
1663 (memref_referenced_p): Likewise.
1664 * loop-invariant.c (check_maybe_invariant): Likewise.
1665 (hash_invariant_expr_1): Likewise.
1666 (invariant_expr_equal_p): Likewise.
1667 * postreload-gcse.c (oprs_unchanged_p): Likewise.
1668 * regclass.c (reg_scan_mark_refs): Likewise.
1669 * regrename.c (scan_rtx): Likewise.
1670 * resource.c (mark_referenced_resources): Likewise.
1671 (mark_set_resources): Likewise.
1672 * rtlanal.c (rtx_unstable_p): Likewise.
1673 (rtx_varies_p): Likewise.
1674 (count_occurrences): Likewise.
1675 (reg_mentioned_p): Likewise.
1676 (modified_between_p): Likewise.
1677 (modified_in_p): Likewise.
1678 (volatile_insn_p): Likewise.
1679 (volatile_refs_p): Likewise.
1680 (side_effects_p): Likewise.
1681 (may_trap_p_1): Likewise.
1682 (inequality_comparisons_p): Likewise.
1683 (computed_jump_p_1): Likewise.
1684 (commutative_operand_precedence): Likewise.
1685 * sched-deps.c (sched_analyze_2): Likewise.
1686 * sched-vis.c (print_value): Likewise.
1687 * reload.c (operands_match_p): Likewise.
1688 (subst_reg_equivs): Likewise.
1689 * reload1.c (eliminate_regs_1): Likewise.
1690 (elimination_effects): Likewise.
1691 (scan_paradoxical_subregs): Likewise.
1692 * alias.c (rtx_equal_for_memref_p): Likewise.
1693 * Makefile.in (RTL_BASE_H): Add fixed-value.h.
1694 * emit-rtl.c (const_fixed_htab): New hash table.
1695 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
1697 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
1698 const_fixed_from_fixed_value): New functions.
1699 (verify_rtx_sharing): Handle CONST_FIXED.
1700 (copy_rtx_if_shared_1): Likewise.
1701 (reset_used_flags): Likewise.
1702 (set_used_flags): Likewise.
1703 (copy_insn_1): Likewise.
1704 (init_emit_once): Create const_fixed_htab.
1705 Store fixed-point scalar and vector zero and one to const_tiny_rtx.
1707 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
1709 PR tree-optimization/32949
1710 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
1711 before failing for ivs with non-constant step.
1713 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
1715 * doc/md.texi (Iterators): Renamed from Macros. All contents
1716 changed to reflect rename of respectively define_code_macro and
1717 define_mode_macro to define_code_iterator and define_mode_iterator.
1718 (Mode Iterators, Code Iterators): Similar.
1719 * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
1720 (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
1721 (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
1722 (initialize_iterators, find_iterator, check_code_iterator)
1723 (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
1724 (read_mapping, read_rtx_1): Similar.
1725 * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
1726 config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
1727 config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
1728 config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
1729 config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
1730 config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
1731 config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
1732 config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
1733 config/rs6000/sync.md, config/rs6000/rs6000.md,
1734 config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
1735 config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
1736 config/vax/vax.md, config/bfin/bfin.md: Similar.
1738 2007-08-22 David Daney <ddaney@avtrex.com>
1740 * doc/install.texi (Testing): Mention testing on a simulator.
1742 2007-08-22 Janis Johnson <janis187@us.ibm.com>
1744 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
1746 * doc/libgcc.texi (Decimal float library routines): Fix formatting
1747 and rearrange floating point conversion functions into different
1750 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
1752 * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
1753 dfa_post_advance_cycle): New scheduler hooks.
1754 * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1755 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
1757 (TARGET_SCHED): Use them.
1758 * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1759 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
1760 * haifa-sched.c (advance_one_cycle): Invoke new hooks.
1762 * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
1763 function to facilitate debugging.
1764 (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
1765 (output_insn_has_dfa_reservation_p): New static function to output
1766 insn_has_dfa_reservation_p ().
1767 (write_automata): Use it.
1768 * genattr.c (main): Output declaration for
1769 insn_has_dfa_reservation_p ().
1771 2007-08-22 Christian Bruel <christian.bruel@st.com>
1772 Richard Guenther <rguenther@suse.de>
1774 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
1775 * simplify_rtx (simplify_binary_operation_1): Likewise.
1777 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
1779 PR rtl-optimization/32557
1780 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
1781 of REGNO (mws->mw_reg).
1783 2007-08-22 Richard Guenther <rguenther@suse.de>
1786 * builtins.c (expand_builtin_int_roundingfn): Replace call
1787 argument wrapped with SAVE_EXPR directly.
1788 (expand_builtin_int_roundingfn_2): Likewise.
1790 2007-08-22 Richard Guenther <rguenther@suse.de>
1792 * tree-inline.c (inlinable_function_p): Restore disregarding
1793 inline limits for GNU extern inline functions.
1795 2007-08-22 Richard Guenther <rguenther@suse.de>
1798 * tree.c (host_integerp): Treat sizetype as signed as it is
1801 2007-08-21 Ian Lance Taylor <iant@google.com>
1803 PR tree-optimization/33134
1804 * tree-vrp.c (adjust_range_with_scev): Call
1805 set_value_range_to_value.
1807 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
1809 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
1812 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
1814 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
1817 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
1819 * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
1820 cases to set eight bytes at a time.
1821 (expand_block_move): Likewise.
1823 2007-08-21 Jakub Jelinek <jakub@redhat.com>
1826 * dwarf2out.c (gen_decl_die): Don't call
1827 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
1829 2007-08-21 Paul Brook <paul@codesourcery.com>
1830 Nathan Sidwell <nathan@codesourcery.com>
1831 Mark Mitchell <mark@codesourcery.com>
1832 Joseph Myers <joseph@codesourcery.com>
1834 * configure.ac: Add --with-pkgversion and --with-bugurl.
1835 * configure: Regenerate.
1836 * doc/install.texi: Document them.
1837 * version.c (version_string): Remove VERSUFFIX.
1838 (VERSUFFIX): Remove.
1839 (pkgversion_string): New.
1840 (bug_report_url): Do not hard-code initializer.
1841 * version.h (pkgversion_string): Declare.
1842 * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
1844 (version.o): Define PKGVERSION and BUGURL.
1845 (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
1846 (%.pod): Define BUGURL.
1847 * gcc.c (process_command, main): Use pkgversion_string.
1848 * toplev.c (compile_file, print_version): Likewise.
1849 * protoize.c (main): Likewise.
1850 * gcov.c (print_version): Likewise. Update copyright date.
1851 * gcov-dump.c (print_version): Likewise. Update copyright date.
1852 * mips-tdump.c (main): Likewise. Update copyright date.
1853 * mips-tfile.c (main): Likewise. Update copyright date.
1854 * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
1855 * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
1856 shorten description.
1857 * doc/gcc.texi: Include VERSION_PACKAGE in version description.
1858 * doc/gccint.texi: Likewise.
1859 * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
1860 Update copyright date.
1862 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
1864 * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
1865 (ix86_expand_strlensi_unroll_1): Ditto.
1866 (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
1867 (ix86_expand_carry_flag_compare): Update comment.
1869 2007-08-21 Jakub Jelinek <jakub@redhat.com>
1872 * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
1873 (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
1875 2007-08-21 Richard Guenther <rguenther@suse.de>
1877 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
1879 2007-08-21 Richard Guenther <rguenther@suse.de>
1882 * fold-const.c (fold_binary): Remove index +p PTR folding.
1883 Fix types of POINTER_PLUS_EXPR generated by folding of
1886 2007-08-20 Chao-ying Fu <fu@mips.com>
1888 * c-common.h (enum rid): Add new enumeration values of RID_SAT,
1889 RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
1890 RID_ONEWAY, so that it can be checked in declspecs_add_type.
1891 (c_common_fixed_point_type_for_size): Declare.
1892 * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
1893 (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
1894 (c_token_starts_declspecs): Likewise.
1895 (c_parser_declspecs): Likewise.
1896 (c_parser_attributes): Likewise.
1897 * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
1898 (c_declspecs): Add saturating_p.
1899 * c-decl.c (build_null_declspecs): Initialize saturating_p.
1900 (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
1901 _Sat. Handle RID_SAT.
1902 Avoid using void, bool, char, int, float, double, _Decimal32,
1903 _Decimal64, _Decimal128, and complex with _Sat.
1904 Handle RID_FRACT and RID_ACCUM.
1905 Make sure _Sat is used with _Fract or _Accum.
1906 (finish_declspecs): Handle cts_fract and cts_accum.
1907 * c-common.c (fixed-value.h): New include.
1908 (constant_expression_warning): Handle FIXED_CST.
1909 (overflow_warning): Likewise.
1910 (warnings_for_convert_and_check): Likewise.
1911 (c_common_fixed_point_type_for_size): New.
1912 (c_common_type_for_mode): Handle fixed-point modes to
1913 return various saturating/non-saturating, signed/unsigned types.
1914 (c_common_signed_or_unsigned_type): Support fixed-point types.
1915 (shorten_compare): Check fixed-point zero.
1916 Handle FIXED_POINT_TYPE.
1917 (c_common_truthvalue_conversion): Handle FIXED_CST.
1918 Handle FIXED_POINT_TYPE.
1919 (c_common_nodes_and_builtins): Record builtin types for fixed-point
1921 (handle_mode_attribute): Handle fixed-point modes. Need to check
1922 if the signness of base type and fixed-point modes are consistent.
1923 (handle_vector_size_attribute): Handle fixed-point modes.
1924 (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
1925 (warn_for_div_by_zero): Check fixed-point zero.
1926 * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
1927 a common fixed-point type based on fbit, ibit, sign, and saturation.
1928 (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
1929 NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
1930 PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
1931 (convert_for_assignment): Support FIXED_POINT_TYPE.
1932 (digest_init): Handle FIXED_POINT_TYPE.
1933 (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
1934 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1935 TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
1936 GE_EXPR, LT_EXPR, GT_EXPR.
1937 * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
1938 (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
1939 * target.h (gcc_target): Add fixed_point_supported_p.
1940 * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
1941 MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
1942 (default_fixed_point_supported_p): Define.
1943 * targhooks.h (default_fixed_point_supported_p): Declare.
1944 * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
1945 * doc/install.texi (Configuration): Add --enable-fixed-point.
1946 * configure.ac (--enable-fixed-point): New to enable fixed-point
1947 arithmetic extension to C. For mips targets, we enable it by default.
1948 * configure, config.in: Regenerate.
1950 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
1952 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
1954 2007-08-20 David Edelsohn <edelsohn@gnu.org>
1956 * dwarf2out.c (text_section_used): Move declaration outside ifdef
1957 DWARF2_DEBUGGING_INFO.
1958 (cold_text_section_used): Same.
1959 (cold_text_section): Same.
1961 2007-08-20 Richard Guenther <rguenther@suse.de>
1963 * c-typeck.c (convert_for_assignment): Use the type of
1964 the member for the initialization.
1966 2007-08-20 Richard Guenther <rguenther@suse.de>
1968 * c-objc-common.c (c_disregard_inline_limits): Remove.
1969 * c-objc-common.h (c_disregard_inline_limits): Likewise.
1970 * cgraphunit.c (cgraph_process_new_functions): Call
1971 disregard_inline_limits_p.
1972 (cgraph_preserve_function_body_p): Likewise.
1973 * ipa-inline.c (compute_inline_parameters): Likewise.
1974 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
1976 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
1977 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1978 disregard_inline_limits langhook.
1979 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
1981 * langhooks.h (lang_hooks_for_tree_inlining): Remove
1982 disregard_inline_limits langhook.
1983 * tree-inline.c (disregard_inline_limits_p): New function.
1984 * tree-inline.h (disregard_inline_limits_p): Declare.
1986 2007-08-20 Richard Guenther <rguenther@suse.de>
1988 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
1989 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
1990 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
1991 auto_var_in_fn_p langhook.
1992 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
1994 * tree.c (auto_var_in_fn_p): ... here.
1995 (find_var_from_fn): Call auto_var_in_fn_p directly.
1996 * langhooks.h (lang_hooks_for_tree_inlining): Remove
1997 auto_var_in_fn_p langhook.
1998 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
1999 (copy_body_r): Likewise.
2000 (self_inlining_addr_expr): Likewise.
2001 * tree.h (auto_var_in_fn_p): Declare.
2003 2007-08-20 Richard Guenther <rguenther@suse.de>
2005 * tree.c (WALK_SUBTREE): Call walk_tree_1.
2006 (walk_type_fields): Take lh parameter.
2007 (walk_tree): Rename to ...
2008 (walk_tree_1): ... this. Do not call the walk_subtrees
2009 langhook but the now passed callback. Pass lh on recursion.
2010 (walk_tree_without_duplicates): Rename to ...
2011 (walk_tree_without_duplicates_1): ... this. Take lh parameter
2012 and call walk_tree_1.
2013 * tree.h (walk_tree_lh): New typedef.
2014 (walk_tree_1): Declare.
2015 (walk_tree_without_duplicates_1): Likewise.
2016 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
2017 (walk_tree_without_duplicates): New define to
2018 walk_tree_without_duplicates_1 with NULL lh parameter.
2019 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
2020 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
2022 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
2023 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
2024 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
2027 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
2030 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
2031 code in front of the compacting of basic blocks.
2032 Move the folding of statements inbetween the cgraph checking
2033 and compacting of basic blocks.
2035 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2036 Serge Belyshev <belyshev@depni.sinp.msu.ru>
2039 * config/alpha/alpha.c (va_list_skip_additions): Check for
2040 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
2041 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
2042 PLUS_EXPR when checking ap.__base.
2043 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
2044 when doing addition on pointer types. Use size_int instead of
2046 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
2047 ptr_type in the second operand.
2049 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2052 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
2054 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2057 * cfgexpand.c (expand_one_register_var): Mark pointer
2058 DECL_ARTIFICIAL as REG_POINTER also.
2059 * stmt.c (expand_decl): Likewise.
2061 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
2068 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
2069 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
2070 on_worklist argument and avoid adding things to worklist multiple
2072 (add_to_worklist): Ditto.
2073 (mark_aliases_call_clobbered): Mark entire structure clobbered if
2074 single SFT is clobbered.
2075 (set_initial_properties): Ditto.
2076 (compute_call_clobbered): Update for changes to function
2078 (create_overlap_variables_for): Always create SFT for offset 0.
2079 (create_structure_vars): Handle PHI's, since we are in SSA form at
2081 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
2082 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
2084 (add_vars_for_offset): Figure out aliases from access + points-to.
2085 (add_virtual_operand): Use add_vars-for_offset.
2086 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
2087 (add_call_clobber_ops): Remove makes_clobbering_call set.
2088 (get_expr_operands): Always pass through the INDIRECT_REF
2090 * tree-ssa-structalias.c (struct constraint_graph): Remove
2092 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
2093 address_taken, pt_used, number_incoming.
2094 (FIRST_ADDR_NODE): Removed.
2095 (merge_graph_nodes): Remove broken code for the moment.
2096 (init_graph): New function.
2097 (build_pred_graph): Remove code to init_graph.
2098 Add location equivalence support.
2099 (struct scc_info): Rename roots to deleted.
2101 (init_scc_info): Ditto
2102 (init_topo_info): Use graph->size.
2103 (compute_topo_order): Ditto.
2104 (do_da_constraint): Removed.
2105 (do_sd_constraint): Remove calls to find().
2106 set_union_with_increment should always get 0 as last arg here.
2107 (do_complex_constraint): Replace do_da_constraint with assert.
2109 (struct equiv_class_label): New.
2110 (pointer_equiv_class_table): Ditto.
2111 (location_equiv_class_table): Ditto.
2112 (equiv_class_label_hash): Ditto.
2113 (equiv_class_label_eq): Ditto
2114 (equiv_class_lookup): Ditto.
2115 (equiv_class_ladd): Ditto.
2116 (pointer_equiv_class): Ditto.
2117 (location_equiv_class): Ditto.
2118 (condense_visit): Rename and rewrite from label_visit to do only
2119 SCC related stuff for HU.
2120 (label_visit): Do HU work for HU.
2121 (perform_var_substitution): Update to do HU and location
2123 (free_var_substitution_info): Update to free HU and location
2124 equivalence structures. */
2125 (find_equivalent_node): Update for pointer but not location
2127 (unite_pointer_equivalences): New function.
2128 (move_complex_constraints): Rewrite to only do moving.
2129 (rewrite_constraints): Split out of move_complex_constraints.
2130 (solve_graph): Use graph->size.
2131 (process_constraint_1): Add from_call argument, use it.
2132 Split *a = &b into two constraints.
2133 (process_constraint): Use new process_constraint_1.
2134 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
2135 (get_constraint_for): Handle non-pointer integers properly.
2136 Remove code that used to handle structures.
2137 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
2138 with unknown addends.
2139 (handle_rhs_call): New function.
2140 (find_func_aliases): Use handle_rhs_call.
2141 (set_uids_in_ptset): Add an assert.
2142 (set_used_smts): Fix bug in not considering unified vars.
2143 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
2144 (compute_points_to_sets): Update for other function changes.
2145 (delete_points_to_sets): Ditto.
2146 (ipa_pta_execute): Ditto.
2147 (pass_ipa_pta): We need to update SSA after ipa_pta.
2149 2007-08-19 Jan Hubicka <jh@suse.cz>
2151 * i386.md: Replace "rim" and "mri" constraints by "g".
2153 2007-08-19 Joseph Myers <joseph@codesourcery.com>
2155 * dwarf2out.c (text_section_used, cold_text_section_used,
2156 cold_text_section, dwarf2out_note_section_used): New.
2157 (dwarf2out_init): Initialize cold_text_section.
2158 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
2159 dwarf2out_note_section_used.
2160 (size_of_aranges): Only count entry for text section if it was
2161 used. Count entry for cold text section if it was used.
2162 (output_aranges): Only output entries for text section and cold
2163 text section if they were used.
2165 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2167 * tree-pretty-print.c (debug_generic_expr): Add a comment about
2169 (debug_generic_stmt): Likewise.
2170 (debug_tree_chain): Likewise.
2172 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
2174 * tree-data-refs.c (split_constant_offset): Expose.
2175 * tree-data-refs.h (split_constant_offset): Add declaration.
2177 * tree-vectorizer.h (dr_alignment_support): Renamed
2178 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
2179 Added a new value dr_explicit_realign.
2180 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
2181 dr_offset, dr_step, and dr_aligned_to, along with new access
2182 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
2183 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
2184 STMT_VINFO_DR_ALIGNED_TO.
2186 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
2188 In case of outer-loop vectorization with non-fixed misalignment - use
2189 the dr_explicit_realign scheme instead of the optimized realignment
2191 (new_stmt_vec_info): Initialize new fields.
2193 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
2194 'nested_in_vect_loop' case. Change verbosity level.
2195 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
2196 Don't fail on zero step in the outer-loop for loads.
2197 (vect_analyze_data_refs): Call split_constant_offset to calculate
2198 base, offset and init relative to the outer-loop.
2200 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
2201 BSI function argument with a new function argument - at_loop.
2202 Simplify the condition that determines STEP. Takes additional argument
2203 INV_P. Support outer-loop vectorization (handle the
2204 nested_in_vect_loop case), including zero step in the outer-loop. Call
2205 vect_create_addr_base_for_vector_ref with additional argument.
2206 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
2207 Updated function documentation. Handle the 'nested_in_vect_loop' case.
2208 Fixed and simplified calculation of step.
2209 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
2210 of bsi, and with additional argument. Call bump_vector_ptr with
2211 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
2212 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
2213 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
2214 when the realignment setup needs to take place inside the loop.
2215 Support the dr_explicit_realign scheme. Allow generating the optimized
2216 realignment scheme for outer-loop vectorization. Added documentation.
2217 (vectorizable_load): Support the dr_explicit_realign scheme. Handle
2218 the 'nested_in_vect_loop' case, including loads that are invariant in
2219 the outer-loop and the realignment schemes. Handle the case when the
2220 realignment setup needs to take place inside the loop. Call
2221 vect_setup_realignment with additional arguments. Call
2222 vect_create_data_ref_ptr with additional argument and with loop instead
2223 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
2224 (vect_gen_niters_for_prolog_loop): Call
2225 vect_create_addr_base_for_vector_ref with additional arguments.
2226 (vect_create_cond_for_align_checks): Likewise.
2227 (bump_vector_ptr): Updated to support the new dr_explicit_realign
2228 scheme: takes additional argument bump; argument ptr_incr is now
2229 optional; updated documentation.
2230 (vect_init_vector): Takes additional argument (bsi). Use it, if
2231 available, to insert the vector initialization.
2232 (get_initial_def_for_induction): Pass additional argument in call to
2234 (vect_get_vec_def_for_operand): Likewise.
2235 (vect_setup_realignment): Likewise.
2236 (vectorizable_load): Likewise.
2238 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
2240 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
2241 as argument instead of struct loop.
2242 (nested_in_vect_loop_p): New function.
2243 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
2245 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
2246 from other phis in the loop.
2247 (destroy_loop_vec_info): Add additional argument to declaration.
2249 * tree-vectorizer.c (supportable_widening_operation): Also check if
2250 nested_in_vect_loop_p (don't allow changing the order in this case).
2251 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
2252 of struct loop. Call nested_in_vect_loop_p and don't require
2253 flag_unsafe_math_optimizations if it returns true.
2254 (new_stmt_vec_info): When setting def_type for phis differentiate
2255 loop-header phis from other phis.
2256 (bb_in_loop_p): New function.
2257 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
2258 just update their loop_vinfo. Order of BB traversal now matters -
2259 call dfs_enumerate_from with bb_in_loop_p.
2260 (destroy_loop_vec_info): Takes additional argument to control whether
2261 stmt_vinfo of the loop stmts should be destroyed as well.
2262 (vect_is_simple_reduction): Allow the "non-reduction" use of a
2263 reduction stmt to be defines by a non loop-header phi.
2264 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
2266 * tree-vect-transform.c (vectorizable_reduction): Call
2267 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
2268 (vectorizable_call): Likewise.
2269 (vectorizable_conversion): Likewise.
2270 (vectorizable_operation): Likewise.
2271 (vectorizable_type_promotion): Likewise.
2272 (vectorizable_type_demotion): Likewise.
2273 (vectorizable_store): Likewise.
2274 (vectorizable_live_operation): Likewise.
2275 (vectorizable_reduction): Likewise. Also pass loop_info to
2276 vect_is_simple_reduction instead of loop.
2277 (vect_init_vector): Call nested_in_vect_loop_p.
2278 (get_initial_def_for_reduction): Likewise.
2279 (vect_create_epilog_for_reduction): Likewise.
2280 (vect_init_vector): Check which loop to work with, in case there's an
2282 (get_initial_def_for_inducion): Extend to handle outer-loop
2283 vectorization. Fix indentation.
2284 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
2285 In the case vect_induction_def get the vector def from the induction
2286 phi node, instead of calling get_initial_def_for_inducion.
2287 (get_initial_def_for_reduction): Extend to handle outer-loop
2289 (vect_create_epilog_for_reduction): Extend to handle outer-loop
2291 (vect_transform_loop): Change assert to just skip this case. Add a
2293 (vect_finish_stmt_generation): Add a couple asserts.
2295 (vect_estimate_min_profitable_iters): Multiply
2296 cost of inner-loop stmts (in outer-loop vectorization) by estimated
2298 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
2299 this is an inner-loop reduction in outer-loop vectorization.
2301 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
2302 Same code as what used to be vect_analyze_scalar_cycles, only with
2303 additional argument loop, and loop_info passed to
2304 vect_is_simple_reduction instead of loop.
2305 (vect_analyze_scalar_cycles): Code factored out into
2306 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
2307 Updated documentation.
2308 (analyze_operations): Check for inner-loop loop-closed exit-phis during
2309 outer-loop vectorization that are live or not used in the outerloop,
2310 cause this requires special handling.
2311 (vect_enhance_data_refs_alignment): Don't consider versioning for
2313 (vect_analyze_data_refs): Check that there are no datarefs in the
2315 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
2316 and vect_used_in_outer_by_reduction cases.
2317 (process_use): Also consider the case of outer-loop stmt defining an
2318 inner-loop stmt and vice versa.
2319 (vect_analyze_loop_1): New function.
2320 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
2321 loops. Call vect_analyze_loop_1.
2322 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
2323 been vectorized. Call destroy_loop_vec_info with additional argument.
2325 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
2326 in the inner-loop when doing outer-loop vectorization. Add
2327 documentation and printout.
2328 (vect_recog_dot_prod_pattern): Likewise. Also add check for
2329 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
2331 2007-08-18 Andrew Pinski <pinskia@gmail.com>
2333 * tree-affine.h (print_aff): New prototype.
2334 (debug_aff): Likewise.
2335 * tree-affine.c (print_aff): New function.
2336 (debug_aff): Likewise.
2338 2007-08-18 Paul Brook <paul@codesourcery.com>
2339 Joseph Myers <joseph@codesourcery.com>
2341 * common.opt (-fdebug-prefix-map=): New option.
2342 * opts.c: Include debug.h.
2343 (common_handle_option): Handle -fdebug-prefix-map.
2344 * final.c: Include ggc.h.
2345 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
2346 remap_debug_filename): New.
2347 * Makefile.in (final.o, opts.o): Update dependencies.
2348 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
2349 * configure.ac: Check for assembler --debug-prefix-map support.
2350 * configure, config.in: Regenerate.
2351 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
2352 (ASM_DEBUG_SPEC): Include ASM_MAP.
2353 * doc/install.texi (--with-debug-prefix-map): Document.
2354 * doc/invoke.texi (-fdebug-prefix-map): Document.
2355 * dbxout.c (dbxout_init, dbxout_start_source_file,
2356 dbxout_source_file): Call remap_debug_filename.
2357 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
2358 dwarf2out_start_source_file, dwarf2out_finish): Call
2359 remap_debug_filename.
2360 (file_table_relative_p): Do not check d->emitted_number.
2361 * toplev.c (output_file_directive): Call remap_debug_filename.
2362 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
2363 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
2365 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2367 * loop-invariant.c (find_invariants_to_move): Add missing macro
2370 2007-08-17 Tom Tromey <tromey@redhat.com>
2372 * tree.h (struct tree_label_decl): Removed old "java" fields.
2374 2007-08-17 Richard Sandiford <richard@codesourcery.com>
2375 Nigel Stephens <nigel@mips.com>
2377 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
2378 Treat -mno-data-in-code and -mcode-xonly as aliases for
2379 -mcode-readable=no and -mcode-readable=pcrel respectively.
2380 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
2381 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
2382 (MULTILIB_DIRNAMES): Update accordingly.
2384 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
2386 * Makefile.in (version.o): Depend on $(REVISION) only if
2387 REVISION_s is defined.
2389 2007-08-17 Sa Liu <saliu@de.ibm.com>
2390 Ulrich Weigand <uweigand@de.ibm.com>
2393 * tree.c (reconstruct_complex_type): For a pointer to a vector,
2394 use build_qualified_type to retain qualifiers of the base type.
2396 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
2398 * config/score/score.md : Update pattern tablejump.
2399 * config/score/score.c : Update score_initialize_trampoline
2401 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
2402 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
2403 * doc/contrib.texi: Add my entry.
2405 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
2407 * Makefile.in (REVISION): New.
2410 (version.o): Also depend on $(REVISION). Add
2411 -DREVISION=$(REVISION_s).
2413 * version.c (version_string): Add REVISION.
2415 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
2417 * tree-eh.c (lower_try_finally_onedest): Reset the locus
2418 of GOTO that's relocated to a different block.
2420 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2422 * c-common.c (const_strip_array_types): New.
2423 * c-common.h (lang_missing_noreturn_ok_p): Delete.
2424 (const_strip_array_types): New.
2425 * c-objc-common.c (c_disregard_inline_limits,
2426 c_warn_unused_global_decl): Constify.
2427 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
2428 c_vla_type_p, c_incomplete_type_error): Likewise.
2429 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
2430 * hooks.c (hook_bool_const_tree_false): New.
2431 * hooks.h (hook_bool_const_tree_false): Likewise.
2432 * langhooks-def.h (lhd_warn_unused_global_decl,
2433 lhd_incomplete_type_error, lhd_expr_size,
2434 lhd_tree_inlining_disregard_inline_limits,
2435 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
2436 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
2437 * langhooks.c (lhd_warn_unused_global_decl,
2438 lhd_incomplete_type_error,
2439 lhd_tree_inlining_disregard_inline_limits,
2440 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
2441 lhd_expr_size): Likewise.
2442 * langhooks.h (lang_hooks_for_tree_inlining,
2443 lang_hooks_for_tree_dump, lang_hooks_for_types,
2444 lang_hooks_for_decls, lang_hooks): Likewise.
2445 * pointer-set.c (pointer_set_t, pointer_set_create,
2446 pointer_set_contains, insert_aux, pointer_set_insert,
2447 pointer_set_traverse, pointer_map_t, pointer_map_create,
2448 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
2450 * pointer-set.h (pointer_set_contains, pointer_set_insert,
2451 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
2452 pointer_map_traverse): Likewise.
2453 * predict.c (assert_is_empty): Likewise.
2454 * tree-affine.c (free_name_expansion): Likewise.
2455 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
2456 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
2457 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
2459 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
2461 * tree-vectorizer.c (new_loop_vec_info): Initialize new
2463 (destroy_loop_vec_info): Add call to VEC_free.
2464 * tree-vectorizer.h (may_alias_ddrs): Define.
2465 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
2466 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2467 Change reporting to dump.
2468 (vect_is_duplicate_ddr): New.
2469 (vect_mark_for_runtime_alias_test): New.
2470 (vect_analyze_data_ref_dependences) Add call to
2471 vect_mark_for_runtime_alias_test.
2472 (vect_enhance_data_refs_alignment): Define local variable
2473 vect_versioning_for_alias_required, don't perform
2474 peeling for alignment if versioning for alias is
2476 (vect_enhance_data_refs_alignment): Use
2477 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
2478 PARAM_VECT_MAX_VERSION_CHECKS.
2479 * tree-vect-transform.c
2480 (vect_create_cond_for_alias_checks): New.
2481 (vect_transform_loop): Add call to
2482 vect_create_cond_for_alias_checks.
2483 (vect_vfa_segment_size): New.
2484 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
2486 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
2487 * gcc/doc/invoke.texi
2488 (vect-max-version-for-alignment-checks): Document.
2489 (vect-max-version-for-alias-checks): Document.
2490 (vect-max-version-checks): Remove.
2492 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
2494 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
2495 the same line as the instruction for all asm dialects.
2496 (*rep_movsi): Ditto.
2497 (*rep_movsi_rex64): Ditto.
2498 (*rep_movqi): Ditto.
2499 (*rep_movqi_rex64): Ditto.
2500 (*rep_stosdi_rex64): Ditto.
2501 (*rep_stossi): Ditto.
2502 (*rep_stossi_rex64): Ditto.
2503 (*rep_stosqi): Ditto.
2504 (*rep_stosqi_rex64): Ditto.
2505 (*cmpstrnqi_nz_1): Ditto.
2506 (*cmpstrnqi_nz_rex_1): Ditto.
2507 (*cmpstrnqi_1): Ditto.
2508 (*cmpstrnqi_rex_1): Ditto.
2509 (*strlenqi_1): Ditto.
2510 (*strlenqi_rex_1): Ditto.
2511 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
2512 prefix on the same line as the instruction for all asm dialects.
2513 (sync_double_compare_and_swap<mode>): Ditto.
2514 (*sync_double_compare_and_swapdi_pic): Ditto.
2515 (*sync_compare_and_swap_cc<mode>): Ditto.
2516 (sync_double_compare_and_swap_cc<mode>): Ditto.
2517 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
2518 (sync_old_add<mode>): Ditto.
2519 (sync_add<mode>): Ditto.
2520 (sync_sub<mode>): Ditto.
2521 (sync_ior<mode>): Ditto.
2522 (sync_and<mode>): Ditto.
2523 (sync_xor<mode>): Ditto.
2525 2007-08-16 Richard Sandiford <richard@codesourcery.com>
2528 * reload.c (find_reloads): Check that the memory returned by
2529 find_reloads_toplev was not the result of forcing a constant
2531 (find_reloads_toplev): Always use simplify_gen_subreg to get
2532 the subreg of a constant. If the result is also a constant,
2533 but not a legitimate one, force it into the constant pool
2534 and reload its address.
2536 2007-08-15 David Edelsohn <edelsohn@gnu.org>
2538 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
2541 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
2543 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
2544 directive for the current vector ABI.
2546 2007-08-15 Steve Ellcey <sje@cup.hp.com>
2549 * caller-save.c (reg_save_code): Set invalide status on restore code.
2551 2007-08-15 Diego Novillo <dnovillo@google.com>
2553 * tree-ssa-alias.c (compute_memory_partitions): Use
2554 alias_bitmap_obstack to allocate bitmaps.
2555 (reset_alias_info): Factor out of init_alias_info.
2556 Mark all name tags not associated to an SSA name for renaming.
2557 (init_alias_info): Call it.
2558 (create_name_tags): Tidy. Add comments.
2559 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
2561 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2563 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
2564 scheduler dependencies.
2566 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
2568 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
2570 (*iorsi_1_zext): Likewise.
2571 (*iorsi_1_zext_imm): Likewise.
2572 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
2573 with "rm"/"xm" constraint.
2574 (sse2_vmsqrtv2df2): Likewise.
2576 2007-08-15 Jakub Jelinek <jakub@redhat.com>
2579 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
2582 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
2584 * tree-pass.h (PROP_pta): Removed.
2585 (TODO_rebuild_alias): New.
2586 (pass_may_alias): Removed.
2587 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
2588 aliasing if we changed something.
2589 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
2591 (pass_may_alias): Removed.
2592 (create_structure_vars): Return TODO_rebuild_alias.
2593 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
2594 * tree-sra.c (tree_sra): Only rebuild aliasing if something
2596 (tree_sra_early): We never affect aliasing right now.
2597 * tree-flow.h (compute_may_aliases): New prototype.
2598 * passes.c: Remove pass_may_alias from the passes.
2599 (execute_function_todo): Support TODO_rebuild_alias.
2601 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
2603 * i386.c: (legitimize_address): Move dllimported variable check
2604 infront of legitimizing pic address of CONST symbols.
2606 2007-08-14 Steve Ellcey <sje@cup.hp.com>
2608 PR tree-optimization/32941
2609 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
2610 (goto_queue_cmp): Remove.
2611 (find_goto_replacement): Change search method.
2612 (maybe_record_in_goto_queue): Add assert.
2613 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
2614 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
2616 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2618 * alias.c (component_uses_parent_alias_set): Constify.
2619 * alias.h (component_uses_parent_alias_set): Likewise.
2620 * cfgrtl.c (print_rtl_with_bb): Likewise.
2621 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
2622 mpz_get_double_int): Likewise.
2623 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
2624 mpz_get_double_int): Likewise.
2625 * expr.c (is_aligning_offset, undefined_operand_subword_p,
2626 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
2628 * expr.h (safe_from_p): Likewise.
2629 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
2631 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
2632 zero_sized_type, goa_lhs_expr_p): Likewise.
2633 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
2634 * rtl.h (print_rtl_with_bb): Likewise.
2635 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
2636 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
2637 * tree-flow-inline.h (bb_stmt_list): Constify.
2638 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
2640 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
2641 const_first_stmt, const_last_stmt): New.
2642 (block_may_fallthru, empty_block_p): Constify.
2643 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
2644 EXPR_ONLY_BODY): New.
2645 (expr_first, expr_last, expr_only): Use macro for body.
2646 (const_expr_first, const_expr_last, const_expr_only): New.
2647 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
2648 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
2649 ctsi_prev, ctsi_stmt): New.
2650 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
2651 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
2652 * tree-ssa-loop-niter.c (loop_only_exit_p,
2653 derive_constant_upper_bound): Likewise.
2654 * tree-ssa-phiopt.c (empty_block_p): Likewise.
2655 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
2656 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
2657 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
2658 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
2659 * tree.c (get_type_static_bounds): Likewise.
2660 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
2661 (get_type_static_bounds): Constify.
2663 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
2666 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
2667 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
2668 (*<addsub><mode>3_cc_overflow): New.
2669 (*add<mode>3_cconly_overflow): New.
2670 (*sub<mode>3_cconly_overflow): New.
2671 (*<addsub>si3_zext_cc_overflow): New.
2672 * config/i386/predicates.md (fcmov_comparison_operator): Accept
2673 CCCmode for LTU, GTU, LEU and GEU.
2674 (ix86_comparison_operator): Likewise.
2675 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
2676 * config/i386/i386.c (put_condition_code): Support CCCmode.
2677 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
2678 or MINUS expressions.
2680 2007-08-14 Andrew Pinski <pinskia@gmail.com>
2683 * c-typeck.c (build_binary_op): Disallow vector float types with
2684 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
2686 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
2688 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
2689 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
2690 (dep_def): New typedef.
2691 (init_dep_1, sd_debug_dep): Declare functions.
2692 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
2693 (debug_dep_links): Remove.
2694 (struct _deps_list): New field 'n_links'.
2695 (DEPS_LIST_N_LINKS): New macro.
2696 (FOR_EACH_DEP_LINK): Remove.
2697 (create_deps_list, free_deps_list, delete_deps_list): Remove
2699 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
2700 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2701 (copy_deps_list_change_con, move_dep_link): Ditto.
2702 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
2703 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
2705 (INSN_BACK_DEPS): Remove.
2706 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
2708 (INSN_DEP_COUNT): Remove.
2709 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
2710 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
2711 Declare global variables.
2712 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
2713 (add_forw_dep, compute_forward_dependences): Remove declarations.
2714 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
2715 (add_back_forw_dep, delete_back_forw_dep): Ditto.
2716 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
2718 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
2720 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
2721 (sd_list_types_def): New typedef.
2722 (sd_next_list): Declare function.
2723 (struct _sd_iterator): New type.
2724 (sd_iterator_def): New typedef.
2725 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
2727 (FOR_EACH_DEP): New cycle wrapper.
2728 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
2730 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
2731 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
2734 * sched-deps.c (init_dep_1): Make global.
2735 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
2737 (dump_dep): New static function.
2738 (dump_dep_flags): New static variable.
2739 (sd_debug_dep): New function.
2740 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
2742 (move_dep_link): Use remove_from_deps_list (), instead of
2744 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
2745 (dep_link_is_detached_p): New static function.
2746 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
2748 (dn_pool, dl_pool): New alloc_pools.
2749 (dn_pool_diff, dl_pool_diff): New static variables.
2750 (create_dep_node, delete_dep_node): New static function.
2751 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
2752 (deps_list_empty_p): Make it static. Use 'n_links' field.
2753 (deps_pools_are_empty_p): New static function.
2754 (alloc_deps_list, delete_deps_list): Remove.
2755 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
2756 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
2757 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
2758 (forward_dependency_cache): Remove.
2759 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
2760 'back' from the names. Change signature to use dep_t instead of
2762 (add_back_dep): Ditto. Make global.
2763 (check_dep_status): Rename to check_dep ().
2764 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
2766 (sd_finish_insn): Ditto.
2767 (sd_find_dep_between_no_cache): New static function.
2768 (sd_find_dep_between): New function.
2769 (ask_dependency_caches, set_dependency_caches): New static functions.
2770 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
2771 (add_or_update_dep_1): Separate pieces of functionality into
2772 ask_dependency_caches (), update_dependency_caches (),
2773 change_spec_dep_to_hard (), update_dep ().
2774 (get_back_and_forw_lists): New static function.
2775 (sd_add_dep): Separate setting of dependency caches into
2776 set_dependency_caches ().
2777 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
2779 (sd_delete_dep): Ditto.
2780 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
2781 (dump_lists): New static function.
2782 (sd_debug_lists): New debug function.
2783 (delete_all_dependences, fixup_sched_groups): Update to use
2784 sd_* infrastructure.
2785 (sched_analyze_2): Create data-speculative dependency only if
2786 data-speculation is enabled.
2787 (sched_analyze_insn): If insn cannot be speculative, make all its
2788 dependencies non-speculative.
2789 (sched_analyze): Use sd_init_insn ().
2790 (add_forw_dep, compute_forward_dependencies): Remove.
2791 (delete_dep_nodes_in_back_deps): New static function.
2792 (sched_free_deps): New function.
2793 (init_dependency_caches): Init alloc_pools.
2794 (extend_depedency_caches): Update after removing of
2795 forward_dependency_cache.
2796 (free_dependency_caches): Ditto. Free alloc_pools.
2797 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
2798 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
2800 (add_back_forw_dep, delete_back_forw_dep): Ditto.
2801 (add_dependence): Use init_dep ().
2802 (get_dep_weak_1): New static function.
2803 (get_dep_weak): Move logic to get_dep_weak_1 ().
2804 (dump_ds): New static function moved from haifa-sched.c:
2805 debug_spec_status ().
2806 (debug_ds): New debug function.
2807 (check_dep_status): Rename to check_dep (). Update to check whole
2810 * haifa-sched.c (spec_info): Make global.
2811 (added_recovery_block_p): Rename to
2812 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
2813 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
2814 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
2815 to use new interfaces.
2816 (ok_for_early_queue_removal): Ditto.
2817 (schedule_block): Initialize logical uids of insns emitted by the
2819 (sched_init): Initialize new variable.
2820 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
2822 (extend_global): Initialize insn data.
2823 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
2824 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
2826 (add_to_speculative_block): Update to use new interfaces.
2827 (create_recovery_block): Set new variables.
2828 (create_check_block_twin, fix_recovery_deps): Update to use new
2830 (sched_insn_is_legitimate_for_speculation_p): New function.
2831 (speculate_insn): Move checking logic to
2832 sched_insn_is_legitimate_for_speculation_p ().
2833 (sched_remove_insn): Finalize sched-deps information of instruction.
2834 (clear_priorities, add_jump_dependencies): Update to use new
2836 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
2838 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
2839 to use new interfaces.
2840 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
2841 (new_ready): Try to use control speculation only if it is available.
2842 (add_branch_dependences): Update to use new interfaces.
2843 (compute_block_backward_dependences): Rename to
2844 compute_block_dependences (). Call
2845 targetm.sched.dependencies_evaluation_hook ().
2846 (free_block_dependencies): New static function.
2847 (debug_dependencies): Update to use new interfaces.
2848 (schedule_region): Remove separate computation of forward dependencies.
2849 Move call of targetm.sched.dependencies_evaluation_hook () to
2850 compute_block_dependences (). Free dependencies at the end of
2851 scheduling the region.
2853 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
2855 (add_deps_for_risky_insns): Ditto.
2856 (schedule_ebb): Remove separate computation of forward dependencies.
2857 Free dependencies at the end of scheduling the ebb.
2859 * ddg.c (create_ddg_dependence): Update to use new interfaces.
2860 (build_intra_loop_deps): Ditto. Remove separate computation of
2861 forward dependencies. Free sched-deps dependencies.
2863 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
2864 to use new interfaces.
2865 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
2867 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
2869 (is_costly_group): Ditto.
2871 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2873 * alias.c (rtx_equal_for_memref_p): Constify.
2874 * basic-block.h (const_edge, const_basic_block): New.
2875 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
2876 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
2877 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
2878 probably_never_executed_bb_p, edge_probability_reliable_p,
2879 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
2880 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
2882 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
2883 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
2885 * cfganal.c (flow_active_insn_p, forwarder_block_p,
2886 flow_nodes_print, dfs_enumerate_from): Likewise.
2887 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
2888 control_flow_insn_p, count_basic_blocks): Likewise.
2889 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
2890 get_loop_body_with_size, loop_exit_edge_p): Likewise.
2891 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
2892 average_num_loop_insns, loop_exit_edge_p,
2893 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
2894 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
2895 average_num_loop_insns, seq_cost): Likewise.
2896 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
2897 * dominance.c (dominated_by_p): Likewise.
2898 * emit-rtl.c (validate_subreg): Likewise.
2899 * except.c (can_throw_internal, can_throw_external): Likewise.
2900 * except.h (can_throw_internal, can_throw_external): Likewise.
2901 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
2902 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
2903 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
2904 simple_mem, store_ops_ok, load_kills_store, find_loads,
2905 store_killed_in_insn, store_killed_after, store_killed_before,
2906 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
2908 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
2909 noce_mem_write_may_trap_or_fault_p): Likewise.
2910 * pointer-set.c (pointer_set_contains, pointer_map_contains):
2912 * pointer-set.h (pointer_set_contains, pointer_map_contains):
2914 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
2915 probably_cold_bb_p, probably_never_executed_bb_p,
2916 edge_probability_reliable_p, br_prob_note_reliable_p,
2917 can_predict_insn_p): Likewise.
2918 * regclass.c (reg_set_to_hard_reg_set): Likewise.
2919 * resource.c (return_insn_p): Likewise.
2920 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
2922 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
2923 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
2924 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
2925 verify_gimple_modify_stmt): Likewise.
2926 * tree-chrec.c (is_not_constant_evolution,
2927 is_multivariate_chrec_rec, is_multivariate_chrec,
2928 chrec_contains_symbols, chrec_contains_undetermined,
2929 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
2930 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
2931 eq_evolutions_p, scev_direction): Likewise.
2932 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
2933 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
2934 chrec_contains_symbols_defined_in_loop,
2935 chrec_contains_undetermined, tree_contains_chrecs,
2936 evolution_function_is_affine_multivariate_p,
2937 evolution_function_is_univariate_p, chrec_zerop,
2938 evolution_function_is_constant_p, evolution_function_is_affine_p,
2939 evolution_function_is_affine_or_constant_p,
2940 tree_does_not_contain_chrecs, chrec_type): Likewise.
2941 * tree-data-ref.c (tree_fold_divides_p,
2942 object_address_invariant_in_loop_p, dr_may_alias_p,
2943 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
2944 same_access_functions, constant_access_functions,
2945 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
2947 * tree-flow.h (scev_direction): Likewise.
2948 * tree-gimple.c (is_gimple_stmt): Likewise.
2949 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
2951 * tree-pretty-print.c (op_prio): Likewise.
2952 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
2953 analyzable_condition, backedge_phi_arg_p): Likewise.
2954 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
2955 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
2956 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
2959 2007-08-13 Dan Hipschman <dsh@google.com>
2962 * c-format.c (check_format_arg): Move check for zero-length
2963 format strings below the check for unterminated strings.
2965 2007-08-13 Andrew Pinski <pinskia@gmail.com>
2968 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
2971 2007-08-13 Nick Clifton <nickc@redhat.com>
2973 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
2975 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2978 * c-format.c (gcc_gfc_length_specs): New array.
2979 (gcc_gfc_char_table): Add unsigned specifier, and references to
2980 the l length modifier.
2981 (format_types_orig): Use the new gcc_gfc_length_specs.
2983 2007-08-12 Sa Liu <saliu@de.ibm.com>
2985 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
2986 and with REG_RETVAL note after split.
2988 2007-08-11 David Daney <ddaney@avtrex.com>
2990 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
2991 as ATTRIBUTE_UNUSED.
2993 2007-08-11 David Edelsohn <edelsohn@gnu.org>
2994 Segher Boessenkool <segher@kernel.crashing.org>
2996 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
2997 HAVE_LOCAL_CPU_DETECT not defined.
2999 2007-08-11 Jan Hubicka <jh@suse.cz>
3001 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
3002 (cgraph_process_new_functions): Honor previous value of
3003 disregard_inline_limits.
3004 * ipa-inline.c (compute_inline_parameters): Likewise.
3006 2007-08-11 Ian Lance Taylor <iant@google.com>
3008 * alias.h (alias_set_type): Define new type.
3009 (ALIAS_SET_MEMORY_BARRIER): Use it.
3010 * rtl.h: Include alias.h.
3011 (struct mem_attrs): Use alias_set_type.
3012 * tree.h: Include alias.h
3013 (struct tree_type): Use alias_set_type.
3014 (struct tree_struct_field_tag): Likewise.
3015 (struct tree_decl_common): Likewise.
3016 * alias.c (struct alias_set_entry): Use alias_set_type.
3017 (get_alias_set_entry, alias_set_subset_of): Likewise.
3018 (alias_sets_conflict_p): Likewise.
3019 (alias_sets_must_conflict_p): Likewise.
3020 (objects_must_conflict_p): Likewise.
3021 (get_alias_set, new_alias_set): Likewise.
3022 (record_alias_subset, record_component_aliases): Likewise.
3023 (varargs_set, frame_set): Change to alias_set_type.
3024 (get_varargs_alias_set): Use alias_set_type.
3025 (get_frame_alias_set): Likewise.
3026 * builtins.c (setjmp_alias_set): Change to alias_set_type.
3027 * dse.c (struct store_info): Use alias_set_type.
3028 (struct read_info, struct clear_alias_mode_holder): Likewise.
3029 (clear_alias_set_lookup, canon_address): Likewise.
3030 (record_store, check_mem_read_rtx): Likewise.
3031 (dse_record_singleton_alias_set): Likewise.
3032 (dse_invalidate_singleton_alias_set): Likewise.
3033 * emit-rtl.c (get_mem_attrs): Likewise.
3034 (set_mem_attributes_minus_bitpos): Likewise.
3035 (set_mem_alias_set): Likewise.
3036 * expr.c (store_constructor_field, store_field): Likewise.
3037 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
3038 * langhooks.c (lhd_get_alias_set): Likewise.
3039 * langhooks-def.h (lhd_get_alias_set): Likewise.
3040 * reload1.c (alter_reg): Likewise.
3041 * tree-flow.h (struct fieldoff): Likewise.
3042 * tree-ssa-alias.c (struct alias_map_d): Likewise.
3043 (may_alias_p, get_smt_for, create_sft): Likewise.
3044 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
3045 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
3046 (merge_smts_into): Likewise.
3047 * varasm.c (const_alias_set): Likewise.
3048 * c-common.c (strict_aliasing_warning): Likewise.
3049 (c_common_get_alias_set): Likewise.
3050 * dse.h (dse_record_singleton_alias_set): Update declaration.
3051 (dse_invalidate_singleton_alias_set): Likewise.
3052 * emit-rtl.h (set_mem_alias_set): Likewise.
3053 * c-common.h (c_common_get_alias_set): Likewise.
3054 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
3055 * print-tree.c (print_node): Likewise.
3056 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
3058 (alpha_setup_incoming_varargs): Use alias_set_type.
3059 * config/i386/i386.c (setup_incoming_varargs_64): Use
3061 (setup_incoming_varargs_ms_64): Likewise.
3062 (ix86_GOT_alias_set): Likewise.
3063 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
3064 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3065 (set): Change to alias_set_type.
3066 (get_TOC_alias_set): Use alias_set_type.
3067 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
3069 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
3070 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
3072 (struct_value_alias_set): Likewise.
3073 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
3075 2007-08-11 Richard Sandiford <richard@codesourcery.com>
3077 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
3078 * config/vxworks.h (TARGET_VXWORKS): Override.
3079 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
3080 "mips" if TARGET_VXWORKS.
3082 2007-08-11 Richard Sandiford <richard@codesourcery.com>
3084 * calls.c (avoid_likely_spilled_reg): New function.
3085 (expand_call): Use it.
3087 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3089 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
3091 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
3093 * config/mips/predicates.md (const_call_insn_operand): Invoke
3094 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
3096 2007-08-10 David Edelsohn <edelsohn@gnu.org>
3099 * config/rs6000/driver-rs6000.c: Include link.h.
3100 Use ElfW instead of wordsize-specif typedef.
3102 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3104 * system.h (CONST_CAST): New.
3105 * c-decl.c (c_make_fname_decl): Use it.
3106 * c-lex.c (cb_ident, lex_string): Likewise.
3107 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
3108 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
3109 give_switch, set_multilib_dir): Likewise.
3110 * gengtype-parse.c (string_seq, typedef_name): Likewise.
3111 * passes.c (execute_one_pass): Likewise.
3112 * prefix.c (update_path): Likewise.
3113 * pretty-print.c (pp_base_destroy_prefix): Likewise.
3114 * tree.c (build_string): Likewise.
3116 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
3118 * tree-flow-inline.h (is_exec_stmt): Remove.
3119 (is_label_stmt): Remove.
3120 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
3123 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
3125 * lower-subreg.c (resolve_shift_zext): Don't adjust
3126 src_reg_num for wordmode operands.
3128 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
3129 David Ung <davidu@mips.com>
3131 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
3132 (TARGET_SCHED_REORDER2): Define.
3133 (mips_maybe_swap_ready): New.
3134 (mips_last_74k_agen_insn): New.
3135 (mips_74k_agen_init): New.
3136 (mips_74k_agen_reorder): New function to group loads and stores
3138 (mips_sched_init): New.
3139 (mips_sched_reorder): Don't do initialization here. Call
3140 mips_74k_agen_reorder.
3141 (mips_variable_issue): Call mips_74k_agen_init.
3143 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
3145 * tree-flow-inline.h (get_filename): Remove.
3147 2007-08-10 Richard Sandiford <richard@codesourcery.com>
3149 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
3151 (mips_fetch_insns): Delete in favor of...
3152 (mips_load_store_insns): ...this new function.
3153 * config/mips/mips.c (mips_address_insns): Add a boolean argument
3154 to say whether multiword moves _might_ be split.
3155 (mips_fetch_insns): Delete in favor of...
3156 (mips_load_store_insns): ...this new function.
3157 (mips_rtx_costs): Update the call to mips_address_insns.
3158 (mips_address_cost): Likewise.
3159 * config/mips/mips.md (length): Use mips_load_store_insns instead
3160 of mips_fetch_insns.
3161 * config/mips/constraints.md (R): Use mips_address_insns rather
3162 than mips_fetch_insns. Assume that the move never needs to be split.
3164 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
3166 * config/mips/mips.opt (mhard-float, msoft-float): Make these
3167 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
3168 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
3169 * config/mips/mips.h (mips16_hard_float): Delete.
3170 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
3171 definitions, and replace with....
3172 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
3173 * config/mips/mips.c (mips16_hard_float): Delete. Replace
3174 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
3175 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
3176 (override_options): Replace MASK_SOFT_FLOAT references with
3177 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
3178 and mips16_hard_float when TARGET_MIPS16.
3180 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
3183 * c-typeck.c (build_binary_op): Check for non pointer types before
3184 calling int_fits_type_p.
3186 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
3189 * fold-const.c (omit_one_operand): Return only the ommitted expression
3190 if the result is an empty statement.
3191 (pedantic_omit_one_operand): Likewise.
3193 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
3195 * c-typeck.c (readonly_error): Improve error for assignment.
3197 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
3199 (pp_c_expression): Ditto.
3201 2007-08-09 Simon Baldwin <simonb@google.com>
3203 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
3204 break that was preventing simplify_associative_operation() for xor.
3206 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
3207 Nigel Stephens <nigel@mips.com>
3209 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
3210 Document change in interpretation of value from boolean to
3212 * optabs.c (expand_ffs, expand_ctz): New functions to compute
3213 ffs and ctz using clz.
3214 (expand_unop): Call them.
3215 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
3217 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3218 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
3219 enable the new ffs expansion on this target.
3221 2007-08-09 Jan Hubicka <jh@suse.cz>
3223 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
3224 (expand_ternary_op): Likewise.
3225 (expand_vec_shift_expr): Likewise.
3226 (expand_binop_directly): Likewise.
3227 (expand_binop): Likewise.
3228 (sign_expand_binop): Likewise.
3229 (expand_twoval_unop): Likewise.
3230 (expand_twoval_binop): Likewise.
3231 (expand_twoval_binop_libfunc): Likewise.
3232 (widen_clz): Likewise.
3233 (widen_bswap): Likewise.
3234 (expand_parity): Likewise.
3235 (expand_unop): Likewise.
3236 (expand_abs_nojump): Likewise.
3237 (expand_copysign): Likewise.
3238 (emit_no_conflict_block): Likewise.
3239 (emit_libcall_block): Likewise.
3240 (can_compare_p): Likewise.
3241 (prepare_cmp_insn): Likewise.
3242 (emit_cmp_and_jump_insn_1): Likewise.
3243 (prepare_float_lib_cmp): Likewise.
3244 (emit_conditional_add): Likewise.
3245 (gen_add2_insn): Likewise.
3246 (have_add2_insn): Likewise.
3247 (gen_sub2_insn): Likewise.
3248 (have_sub2_insn): Likewise.
3249 (can_extend_p): Likewise.
3250 (can_fix_p): Likewise.
3251 (can_float_p): Likewise.
3252 (expand_float): Likewise.
3253 (expand_fix): Likewise.
3254 (expand_sfix_optab): Likewise.
3255 (new_optab): Likewise.
3256 (new_convert_optab): Likewise.
3257 (init_libfuncs): Likewise.
3258 (init_interclass_conv_libfuncs): Likewise.
3259 (init_intraclass_conv_libfuncs): Likewise.
3260 (set_conv_libfunc): Likewise.
3261 (init_optabs): Likewise.
3262 (debug_optab_libfuncs): Likewise.
3263 (gen_cond_trap): Likewise.
3264 * optabs.h (optab_handler, convert_optab_hanlder): New.
3265 * genopinit.c: Update optabs generation table.
3266 * reload.c (find_reloads_address_1): Use optabs accestors.
3267 * builtins.c (expand_builtin_mathfn): Likewise.
3268 (expand_builtin_mathfn_2): Likewise.
3269 (expand_builtin_mathfn_3): Likewise.
3270 (expand_builtin_interclass_mathfn): Likewise.
3271 (expand_builtin_sincos): Likewise.
3272 (expand_builtin_cexpi): Likewise.
3273 (expand_builtin_powi): Likewise.
3274 (expand_builtin_strlen): Likewise.
3275 * dojump.c (do_jump): Likewise.
3276 * expr.c (convert_move): Likewise.
3277 (move_by_pieces): Likewise.
3278 (move_by_pieces_ninsns): Likewise.
3279 (can_store_by_pieces): Likewise.
3280 (store_by_pieces_1): Likewise.
3281 (emit_move_via_integer): Likewise.
3282 (emit_move_complex): Likewise.
3283 (emit_move_ccmode): Likewise.
3284 (emit_move_insn_1): Likewise.
3285 (emit_single_push_insn): Likewise.
3286 (store_constructor): Likewise.
3287 (expand_expr_real_1): Likewise.
3288 (do_store_flag): Likewise.
3289 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
3290 (enumerate_modes): Likewise.
3291 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3292 (supportable_widening_operation): Likewise.
3293 (supportable_narrowing_operation): Likewise.
3294 * expmed.c (store_bit_field_1): Likewise.
3295 (extract_bit_field_1): Likewise.
3296 (expand_mult_highpart_optab): Likewise.
3297 (expand_smod_pow2): Likewise.
3298 (expand_divmod): Likewise.
3299 (emit_store_flag): Likewise.
3300 * tree-vect-patterns.c
3301 (vect_pattern_recog_1): Likewise.
3302 * tree-ssa-loop-prefetch.c
3303 (nontemporal_store_p): Likewise.
3304 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
3305 (vect_create_epilog_for_reduction): Likewise.
3306 (vectorizable_reduction): Likewise.
3307 (vectorizable_operation): Likewise.
3308 (vect_strided_store_supported): Likewise.
3309 (vectorizable_store): Likewise.
3310 (vect_strided_load_supported): Likewise.
3311 (vectorizable_load): Likewise.
3312 * combine.c (simplify_comparison): Likewise.
3313 * tree-vect-generic.c
3314 (type_for_widest_vector_mode): Likewise.
3315 (expand_vector_operations_1): Likewise.
3316 * config/spu/spu.c (spu_expand_mov): Likewise.
3317 (spu_emit_vector_compare): Likewise.
3318 * config/rs6000/rs6000.c
3319 (rs6000_emit_vector_compare): Likewise.
3320 * stmt.c (add_case_node): Likewise.
3321 * reload1.c (gen_reload):
3323 2007-08-09 Michael Matz <matz@suse.de>
3325 * tree.h (fixed_zerop): Declare as taking a const_tree.
3326 * tree.c (fixed_zerop): Take a const_tree.
3328 2007-08-09 Ira Rosen <irar@il.ibm.com>
3330 * tree-vect-transform.c (vectorizable_store): Remove call to
3331 copy_virtual_operands() and call mark_symbols_for_renaming() for
3332 the created vector store.
3333 (vect_setup_realignment): Don't call copy_virtual_operands() and
3334 update_vuses_to_preheader().
3335 (vectorizable_load): Don't call copy_virtual_operands().
3336 (update_vuses_to_preheader): Remove.
3338 2007-08-08 Chao-ying Fu <fu@mips.com>
3340 * tree.def (FIXED_POINT_TYPE): New type.
3341 (FIXED_CST): New constant.
3342 (FIXED_CONVERT_EXPR): New expr.
3343 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
3344 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
3345 * tree.h (struct tree_base): Add saturating_flag.
3346 Remove one bit of spare for saturating_flag.
3347 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
3348 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
3349 FIXED_POINT_TYPE_P): Define.
3350 (TYPE_SATURATING): Define.
3351 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
3352 (struct tree_fixed_cst): New.
3353 (TYPE_IBIT, TYPE_FBIT): Define.
3354 (tree_node): Add fixed_cst.
3355 (enum tree_index): Add new enumeration values of
3356 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
3357 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
3358 TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
3359 TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
3360 TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
3361 TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
3362 TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
3363 TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
3364 TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
3365 TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
3366 TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
3367 TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
3368 TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
3369 TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
3370 TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
3371 TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
3372 TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
3373 TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
3374 (sat_short_fract_type_node, sat_fract_type_node,
3375 sat_long_fract_type_node, sat_long_long_fract_type_node,
3376 sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
3377 sat_unsigned_long_fract_type_node,
3378 sat_unsigned_long_long_fract_type_node, short_fract_type_node,
3379 fract_type_node, long_fract_type_node, long_long_fract_type_node,
3380 unsigned_short_fract_type_node, unsigned_fract_type_node,
3381 unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
3382 sat_short_accum_type_node, sat_accum_type_node,
3383 sat_long_accum_type_node, sat_long_long_accum_type_node,
3384 sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
3385 sat_unsigned_long_accum_type_node,
3386 sat_unsigned_long_long_accum_type_node, short_accum_type_node,
3387 accum_type_node, long_accum_type_node, long_long_accum_type_node,
3388 unsigned_short_accum_type_node, unsigned_accum_type_node,
3389 unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
3390 qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
3391 uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
3392 utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
3393 sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
3394 sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
3395 sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
3396 ta_type_node, uha_type_node, usa_type_node, uda_type_node,
3397 uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
3398 sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
3399 sat_uda_type_node, sat_uta_type_node): New macro.
3400 (make_fract_type, make_accum_type): Declare.
3401 (make_signed_fract_type, make_unsigned_fract_type,
3402 make_sat_signed_fract_type, make_sat_unsigned_fract_type,
3403 make_signed_accum_type, make_unsigned_accum_type,
3404 make_sat_signed_accum_type, make_sat_unsigned_accum_type,
3405 make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
3406 make_or_reuse_sat_signed_fract_type,
3407 make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
3408 make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
3409 make_or_reuse_sat_unsigned_accum_type): New macro.
3410 (fixed_zerop): Declare.
3411 * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
3412 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
3413 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
3414 LONG_LONG_ACCUM_TYPE_SIZE): Define.
3415 * treestruct.def: Add TS_FIXED_CST.
3416 * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
3418 (tree-dump.o): Likewise.
3419 (print-tree.o): Likewise.
3420 (tree-pretty-print.o): Likewise.
3421 (fold-const.o): Likewise.
3422 * tree-complex.c (some_nonzerop): Handle FIXED_CST.
3423 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
3424 (is_gimple_min_invariant): Handle FIXED_CST.
3425 * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
3426 MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
3427 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
3428 (layout_type): Handle FIXED_POINT_TYPE.
3429 (make_fract_type, make_accum_type): New functions.
3430 * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
3431 * tree-dump.c (fixed-value.h): New include.
3432 (dump_fixed): New function.
3433 (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
3434 * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
3435 (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
3436 * tree-pretty-print.c (fixed-value.h): New include.
3437 (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
3439 * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
3440 * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
3441 * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
3442 * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
3443 for non-saturating fixed-point types.
3444 (reassociate_bb): Likewise.
3445 * emit-rtl.c (fixed-value.h): New include.
3446 (fconst0, fconst1): New array.
3447 (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
3448 * tree-vect-generic.c expand_vector_operation): Support
3449 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
3451 (type_for_widest_vector_mode): Add one parameter for the
3453 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
3455 Pass the satp parameter to type_for_mode for fixed-point types.
3456 (expand_vector_operations_1): Pass the saturating flag to
3457 type_for_widest_vector_mode.
3458 Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
3459 and MODE_VECTOR_UACCUM.
3460 * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
3461 (vectorizable_condition): Likewise.
3462 * tree.c (fixed-value.h): New include.
3463 (tree_code_size): Support FIXED_CST.
3464 (build_fixed): New function.
3465 (build_one_cst): Support FIXED_POINT_TYPE for accum types.
3466 (fixed_zerop): New function.
3467 (tree_node_structure): Support FIXED_CST.
3468 (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
3469 (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
3470 (type_hash_eq): Handle FIXED_POINT_TYPE.
3471 (simple_cst_equal): Support FIXED_CST.
3472 (iterative_hash_expr): Handle FIXED_CST.
3473 (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
3474 (get_narrower): Likewise.
3475 (variably_modified_type_p): Handle FIXED_POINT_TYPE.
3476 (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
3477 (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
3478 MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
3480 (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
3481 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
3482 (initializer_zerop): Support FIXED_CST.
3483 (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
3484 * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
3485 DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
3486 (is_base_type): Handle FIXED_POINT_TYPE.
3487 (add_type_attribute): Handle FIXED_POINT_TYPE.
3488 (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
3489 * print-tree.c (fixed-value.h): New include.
3490 (print_node_brief): Support FIXED_CST.
3491 (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
3492 * c-pretty-print.c (fixed-value.h): New include.
3493 (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
3494 TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
3495 (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
3496 Support fixed-point types for inner items in VECTOR_TYPE.
3497 (pp_c_direct_declarator): Likewise.
3498 (pp_c_declarator): Likewise.
3499 (pp_c_fixed_constant): New function.
3500 (pp_c_constant): Handle FIXED_CST.
3501 (pp_c_primary_expression): Likewise.
3502 (pp_c_expression): Likewise.
3503 * fold-const.c (fixed-value.h): New include.
3504 (negate_expr_p): Return true for FIXED_CST.
3505 (fold_negate_expr): Support FIXED_CST.
3506 (split_tree): Support FIXED_CST.
3507 (const_binop): Support FIXED_CST.
3508 (fold_convert_const_int_from_fixed): New function to convert from
3510 (fold_convert_const_real_from_fixed): New function to convert from
3512 (fold_convert_const_fixed_from_fixed): New function to convert from
3513 fixed to another fixed.
3514 (fold_convert_const_fixed_from_int): New function to convert from
3516 (fold_convert_const_fixed_from_real): New function to convert from
3518 (fold_convert_const): Support conversions from fixed to int, from
3519 fixed to real, from fixed to fixed, from int to fixed, and from real
3521 (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
3522 (operand_equal_p): Support FIXED_CST.
3523 (make_range): For fixed-point modes, we need to pass the
3524 saturating flag as the 2nd parameter.
3525 (tree_swap_operands_p): Handle FIXED_CST.
3526 (fold_plusminus_mult_expr): For fract modes, we cannot generate
3528 (fold_unary): Support FIXED_CONVERT_EXPR.
3529 (fold_binary): Handle FIXED_CST.
3530 Make sure the type is not saturating, before associating operations.
3531 Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
3532 (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
3533 (fold_negate_const): Support FIXED_CST.
3534 (fold_relational_const): Support FIXED_CST.
3535 * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
3536 (gimplify_expr): Handle FIXED_CST.
3537 (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
3538 * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
3539 * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
3540 * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
3541 FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
3542 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
3543 LONG_LONG_ACCUM_TYPE_SIZE.
3544 * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
3545 * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
3546 * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
3547 * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
3548 MODE_ACCUM, and MODE_UACCUM.
3549 * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
3550 fixed-point types to disable reduction.
3551 * explow.c (promote_mode): Support FIXED_POINT_TYPE.
3553 2007-08-08 David Edelsohn <edelsohn@gnu.org>
3555 * config/rs6000/x-rs6000: New file.
3556 * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
3557 * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
3558 (EXTRA_SPEC_FUNCTIONS): Define.
3559 (HAVE_LOCAL_CPU_DETECT): Define.
3560 (CC1_CPU_SPEC): Define.
3561 * config/rs6000/driver-rs6000.c: New file.
3562 * config/rs6000/aix.h (CC1_SPEC): Define.
3563 * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
3564 * config.host: Add x-rs6000 to host_xmake_file if host and target
3565 are rs6000 or powerpc.
3567 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
3569 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
3571 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3572 Sandra Loosemore <sandra@codesourcery.com>
3573 Chao-ying Fu <fu@mips.com>
3574 Nigel Stephens <nigel@mips.com>
3575 David Ung <davidu@mips.com>
3577 * doc/invoke.texi (-mcode-readable): Document.
3578 * config/mips/mips.opt (mcode-readable): New option.
3579 * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
3580 * config/mips/mips.h (mips_code_readable_setting): New enum.
3581 (mips_code_readable): Declare.
3582 (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
3583 (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
3584 (JUMP_TABLES_IN_TEXT_SECTION): Use it.
3585 (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
3586 boiler-plate comments.
3587 (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
3588 * config/mips/mips.c (mips_code_readable): New variable.
3589 (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
3590 MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
3591 context and -mcode-readable setting to restrict the use of
3592 SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
3593 Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
3594 (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
3595 (mips_blocks_for_constant_p): Only return false for
3596 TARGET_MIPS16_PCREL_LOADS.
3597 (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
3598 for MIPS16. Handle SYMBOL_32_HIGH.
3599 (mips_const_insns): Allow HIGHs for MIPS16 too.
3600 (mips_unspec_address_offset): New function, split out from...
3601 (mips_unspec_address): ...here.
3602 (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
3603 16-bit symbolic constants. Assert approropiate conditions for
3604 using the "la" and "dla" macros.
3605 (mips_handle_option): Handle -mcode-readable=.
3606 (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
3607 Set up mips_lo_relocs[SYMBOL_32_HIGH].
3608 (mips_strip_unspec_address): New function, split out from...
3609 (print_operand_reloc): ...here.
3610 (print_operand): Pass constants through mips_strip_unspec_address.
3611 (print_operand_address): Likewise.
3612 (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
3613 (mips_select_rtx_section): Remove MIPS16 handling.
3614 (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
3615 (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
3616 (mips16_lay_out_constants): Do nothing unless
3617 TARGET_MIPS16_PCREL_LOADS.
3618 (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
3619 * config/mips/mips.md: Split HIGHs for MIPS16.
3620 (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
3622 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3624 * config/mips/mips-protos.h (mips_emit_move): Declare.
3625 * config/mips/mips.c (mips_emit_move): New function.
3626 (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
3627 (mips_legitimize_const_move): Likewise.
3628 (mips_legitimize_move): Likewise.
3629 (mips_split_64bit_move): Likewise.
3630 (mips_restore_gp): Likewise.
3631 (mips_load_call_address): Likewise.
3632 (mips_emit_fcc_reload): Likewise.
3633 (mips_set_return_address): Likewise.
3634 (mips_block_move_straight): Likewise.
3635 (mips_block_move_loop): Likewise.
3636 (mips_setup_incoming_varargs): Likewise.
3637 (mips_save_reg): Likewise.
3638 (mips_expand_prologue): Likewise.
3639 (mips_restore_reg): Likewise.
3640 (mips_expand_epilogue): Likewise.
3641 (mips_output_mi_thunk): Likewise.
3642 (build_mips16_call_stub): Likewise.
3643 (mips_builtin_branch_and_move): Likewise.
3644 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
3645 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
3646 (fixuns_truncdfdi2): Likewise.
3647 (fixuns_truncsfsi2): Likewise.
3648 (fixuns_truncsfdi2): Likewise.
3649 (loadgp_absolute): Likewise.
3650 (builtin_setjmp_setup): Likewise.
3651 (builtin_longjmp): Likewise.
3652 (untyped_call): Likewise.
3654 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3656 * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
3657 an "rtx *" argument. Return a bool.
3658 * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
3659 values and return true if they can be split. Take the same kind of
3660 mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
3661 and store the lo_sum there if nonnull. Use the symbol type to
3662 determine whether a $gp or HIGH is needed.
3663 (mips_legitimize_address): Update call to mips_split_symbol and
3664 simplify accordingly.
3665 (mips_legitimize_const_move): Likewise.
3666 * config/mips/mips.md: In the combine define_split,
3667 check mips_split_symbol instead of splittable_symbolic_operand.
3668 Update use of mips_split_symbol in the generator code.
3669 * config/mips/predicates.md (splittable_symbolic_operand): Delete.
3671 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3673 * config/mips/mips.c (mips_symbolic_address_p): Delete.
3674 (mips_symbol_insns_1): New function, split out from...
3675 (mips_symbol_insns): ...here. Take a mode argument. Treat loads
3676 and stores separately from load addresses.
3677 (mips_classify_address): Replace uses of mips_symbolic_address_p
3678 with uses of mips_symbol_insns.
3679 (mips_address_insns): Update calls to mips_symbol_insns.
3680 (mips_const_insns): Likewise.
3681 (mips_legitimize_address): Likewise.
3683 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3685 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
3686 * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
3687 block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
3688 Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
3689 non-call contexts if TARGET_MIPS16.
3690 (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
3691 (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
3692 code for SYMBOL_ABSOLUTE.
3693 (mips_symbol_insns): Likewise.
3695 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3697 * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
3698 * config/mips/mips.c (mips_classify_symbol): Take a context argument.
3699 (mips_symbolic_constant_p): Likewise. Update the call to
3700 mips_classify_symbol.
3701 (mips_classify_address): Update the calls to mips_symbolic_constant_p.
3702 (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
3703 (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
3704 (print_operand_reloc): Add a context argument. Update the call to
3705 mips_symbolic_constant_p.
3706 (print_operand): Update the calls to print_operand_reloc.
3707 (print_operand_address): Use print_operand_reloc rather than
3709 (mips_rewrite_small_data_p): Add a context argument. Update the call
3710 to mips_symbolic_constant_p.
3711 (mips_small_data_pattern_1): Make DATA the containing mem.
3712 Update the call to mips_rewrite_small_data_p.
3713 (mips_rewrite_small_data_1): Likewise.
3714 (mips_use_anchors_for_symbol_p): Update the call to
3715 mips_symbolic_constant_p.
3716 * config/mips/predicates.md (const_call_insn_operand): Likewise.
3717 (splittable_symbolic_operand): Likewise.
3718 (move_operand): Likewise.
3719 (absolute_symbolic_operand): Likewise.
3720 (got_disp_operand): Likewise.
3721 (got_page_ofst_operand): Likewise.
3723 2007-08-08 Richard Sandiford <richard@codesourcery.com>
3725 * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
3726 (SYMBOL_ABSOLUTE): ...this.
3727 (SYMBOL_SMALL_DATA): Rename to...
3728 (SYMBOL_GP_RELATIVE): ...this.
3729 (SYMBOL_CONSTANT_POOL): Rename to...
3730 (SYMBOL_PC_RELATIVE): ...this.
3731 * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
3732 (mips_symbolic_address_p, mips_symbol_insns, override_options)
3733 (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
3734 after above changes.
3735 * config/mips/predicates.md (const_call_insn_operand): Likewise.
3736 (general_symbolic_operand): Rename to...
3737 (absolute_symbolic_operand): ...this.
3738 * config/mips/mips.md: Update after above changes.
3740 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
3741 Revital Eres <eres@il.ibm.com>
3743 * ddg.c (print_ddg): Add dump information.
3744 * modulo-sched.c (print_node_sched_params): Add parameter and
3746 (calculate_maxii): Remove function.
3747 (undo_generate_reg_moves): Likewise.
3748 (undo_permute_partial_schedule): Likewise.
3749 (kernel_number_of_cycles): Likewise.
3750 (MAXII_FACTOR): New definition to calculate the upper bound of II.
3751 (sms_schedule): Use it. Remove profitability checks.
3752 (sms_schedule_by_order): Fix order of nodes within the cycle.
3754 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
3756 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
3757 -profile option, add pie support.
3758 (ENDFILE_SPEC): New spec.
3759 * config/gnu.h (LIB_SPEC): Add -profile option.
3761 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
3763 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
3764 * config/gnu.h (LIB_SPEC): Likewise.
3766 2007-08-07 Yaz Saito <saito@google.com>
3767 Ian Lance Taylor <iant@google.com>
3769 * common.opt (finstrument-functions-exclude-function-list): New
3771 (finstrument-functions-exclude-file-list): New option.
3772 * opts.c (char_p): Define and DEF_VEC.
3773 (flag_instrument_functions_exclude_functions): New static
3775 (flag_instrument_functions_exclude_files): New static variable.
3776 (add_instrument_functions_exclude_list): New static function.
3777 (flag_instrument_functions_exclude_p): New function.
3778 (common_handle_option): Handle new options.
3779 * flags.h (flag_instrument_functions_exclude_p): Declare.
3780 * gimplify.c (gimplify_function_tree): Call
3781 flag_instrument_functions_exclude_p.
3782 * doc/invoke.texi (Option Summary): Mention new options.
3783 (Code Gen Options): Document new options.
3785 2007-08-07 Ian Lance Taylor <iant@google.com>
3787 PR rtl-optimization/32776
3788 * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
3789 (resolve_use): Likewise.
3790 (decompose_multiword_subregs): Remove "changed" local variable.
3792 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
3794 * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
3795 * configure: Regenerate.
3796 * config.in: Regenerate.
3797 * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
3800 2007-08-07 Ian Lance Taylor <iant@google.com>
3802 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
3803 note, just delete the insn.
3805 2007-08-07 Andreas Schwab <schwab@suse.de>
3808 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
3811 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
3813 * lower-subreg.c (resolve_subreg_use): Remove assertion.
3814 (find_decomposable_shift_zext, resolve_shift_zext): New functions.
3815 (decompose_multiword_subregs): Use the functions above to decompose
3816 multiword shifts and zero-extends.
3818 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
3820 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
3821 "assemble" descriptions which were swapped.
3823 2007-08-06 Chao-ying Fu <fu@mips.com>
3825 * fixed-value.h: New file.
3826 * fixed-value.c: New file.
3827 * Makefile.in (OBJS-common): Add fixed-value.o.
3828 (fixed-value.o): New rule.
3829 (GTFILES): Add fixed-value.h.
3830 * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
3831 to compare a.low and b.low.
3832 * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
3834 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
3835 Daniel Jacobowitz <dan@codesourcery.com>
3838 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
3840 (x86_64-*-netbsd*): Likewise.
3841 (x86_64-*-linux*): Likewise.
3842 (x86_64-*-kfreebsd*-gnu): Likewise.
3843 (x86_64-*-knetbsd*-gnu): Likewise.
3844 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
3846 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
3848 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
3849 Add -fno-asynchronous-unwind-tables.
3851 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
3852 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
3853 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
3854 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
3855 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
3857 2007-08-06 Steve Ellcey <sje@cup.hp.com>
3859 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
3860 (TARGET_C_MODE_FOR_SUFFIX): New.
3862 2007-08-06 Steve Ellcey <sje@cup.hp.com>
3864 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
3866 2007-08-06 Steve Ellcey <sje@cup.hp.com>
3868 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
3870 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
3872 * config/i386/i386.md: Check TARGET_ macros and optimize_size
3873 before checking function returns in conditional expressions.
3875 2007-08-06 Alfred Minarik <a.minarik@aon.at>
3878 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
3880 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
3883 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
3884 for INTEGRAL_TYPE_P.
3886 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
3888 * configure.ac: Remove --enable-checking=df from default settings.
3889 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
3890 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
3891 if the parameter is true.
3892 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
3893 DF_VERIFY_SCHEDULED flag is true.
3894 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
3895 (df_finish_pass): Adjust prototype.
3896 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
3899 * see.c (pass_see): Add TODO_df_verify.
3900 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
3901 * global.c (rest_of_handle_global_alloc): Schedule verification
3903 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
3905 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
3906 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
3907 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
3909 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.