1 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
3 * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
5 * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
6 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
8 2007-11-28 Ben Elliston <bje@au.ibm.com>
10 * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
11 (maix32): Add Negative(maix64).
13 2007-11-27 Jakub Jelinek <jakub@redhat.com>
15 PR tree-optimization/34016
16 * tree-ssa-loop.c (pass_linear_transform): Add
17 TODO_update_ssa_only_virtuals to todo_flags_finish.
19 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
21 * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
22 * config/avr/avr.h (LINK_SPEC): Likewise.
23 (CRT_BINUTILS_SPECS): Likewsie.
24 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
26 2007-11-27 Jakub Jelinek <jakub@redhat.com>
29 * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
30 MEM_SIZE is set on all MEMs.
32 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
34 * config/s390/s390.opt (mhard-float): Add the option to be
35 overridden. That was missing in my last patch.
37 2007-11-27 Richard Guenther <rguenther@suse.de>
39 PR tree-optimization/34241
40 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
41 to only delete real conversion chains.
43 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
45 * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
46 mhard-float, mlong-double-64, mlong-double-128): Add the
47 option to be overridden.
49 2007-11-27 Richard Guenther <rguenther@suse.de>
51 * builtins.c (fold_builtin_1): Verify the argument types
53 (fold_builtin_n): Verify the number of arguments to variadic
56 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
58 * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
59 * doc/invoke.texi (Blackfin Options): Document the effects.
61 2007-11-27 Ben Elliston <bje@au.ibm.com>
63 * config/rs6000/sysv4.opt (m32): Add Negative(m64).
64 (m64): Add Negative(m32).
65 * config/rs6000/darwin.opt (m32): Add Negative(m64).
66 (m64): Add Negative(m32).
68 2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
70 * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
72 2007-11-26 Michael Meissner <michael.meissner@amd.com>
75 * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
76 constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
77 to get the mode for loading a pseudo register with a count rather
78 than duplicating code.
80 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
82 * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
83 * config/avr/avr.h (LINK_SPEC): Likewise.
84 (CRT_BINUTILS_SPECS): Likewsie.
85 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
87 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
89 * c-common.c (conversion_warning): Use get_unwidened instead of
92 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
95 * c-parser.c (struct c_parser): New bit in_if_block.
96 (c_parser_compound_statement_nostart): Handle unexpected 'else'
98 (c_parser_statement_after_labels): Set in_if_block to false while
100 (c_parser_if_body): Don't call c_parser_statement_after_labels if
101 a semicolon is found, just consume it. Don't call
102 c_parser_statement_after_labels if an open brace is found, call
103 c_parser_compound_statement instead.
104 (c_parser_else_body): New.
105 (c_parser_if_statement): Set in_if_block to true when parsing the
106 body of the 'if' statement. Use c_parser_else_body.
108 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
111 * c-decl.c (store_parm_decls): Pass 'false' for the new
112 allocate_struct_function parameter.
113 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
114 * tree-parloops.c (create_loop_fn): Likewise.
115 * function.c (push_function_context_to, push_struct_function,
116 init_function_start): Likewise.
117 (allocate_struct_function): Add boolean parameter.
118 * tree.h (allocate_struct_function): Add boolean parameter.
119 * function.h (struct function): Move returns_struct and
120 returns_pcc_struct to the end of the structure definiton.
122 2007-11-26 Uros Bizjak <ubizjak@gmail.com>
125 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
126 virtual registers are instantiated.
127 (truncxf<mode>2): Ditto.
128 (floatsi<mode>2): Ditto.
132 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
135 * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
136 the address before it is clobbered.
138 2007-11-26 Nick Clifton <nickc@redhat.com>
140 * config/mn10300/mn10300.md: (call_internal): Remove mode on
141 operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
142 (call_value_internal): Remove mode on operands 0 and 1 in order to
143 match UNPSEC'ed calls generated in PIC mode.
144 (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
147 2007-11-26 Richard Guenther <rguenther@suse.de>
150 * builtins.c (expand_builtin_pow): Use expand_expr to expand
151 the result of build_call_expr.
153 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com>
154 Revital Eres <eres@il.ibm.com>
157 * bb-reorder.c (insert_section_boundary_note): Clear
158 BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
160 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk>
162 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
164 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
166 * dwarf2asm.c (splay_tree_compare_strings): New function.
167 (dw2_force_const_mem): Use it.
169 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
171 * tree.c (type_hash_add): Don't violate strict aliasing rules.
173 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
176 * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
177 matches between anonymous union fields.
179 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz>
181 * tree-ssa-live.c (remove_unused_scope_block_p): Drop
182 declarations and blocks only after inlining. Check that
183 non-empty blocks are not dropped.
184 * tree-inline.c (expand_call_inline): Check that functions are
185 not inlined too late.
187 2007-11-26 Ben Elliston <bje@au.ibm.com>
189 * unwind-dw2-fde.c: Fix comment typo.
190 * unwind-generic.h: Likewise, fix comment typos.
192 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk>
194 * tree-sra.c (scalarize_use): Adjust the vpos argument to
195 sra_explode_bitfield_assignment in cases where the type is
196 wider than the bitfield.
198 2007-11-25 Richard Guenther <rguenther@suse.de>
200 * tree.h (struct tree_block): Move locus member next to flags.
201 * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
202 (SCOPE_LIST_CONCAT): Likewise.
203 (pop_scope): Likewise.
204 * function.c (instantiate_decls_1): Likewise.
205 (setjmp_vars_warning): Likewise.
206 * emit-rtl.c (set_used_decls): Likewise.
207 * tree-inline.c (add_lexical_block): Likewise.
209 2007-11-24 Hans-Peter Nilsson <hp@axis.com>
211 * rtlanal.c (label_is_jump_target_p): Return true for a matching
213 * reorg.c (fill_slots_from_thread): Correct last change to use
214 NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
215 decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
216 * jump.c (mark_jump_label_1): Add comment for last change
217 regarding JUMP_LABEL setting.
218 * gcse.c (add_label_notes): Remove conditional that the label is
219 mentioned in insn before adding regnote.
220 * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
221 single_set insn only feeding a label to a jump through a
222 register that dies there.
224 2007-11-23 Dirk Mueller <dmueller@suse.de>
225 Richard Guenther <rguenther@suse.de>
228 * tree-vrp.c (check_array_ref): Move check for valid location..
229 (check_array_bounds) here. Use EXPR_HAS_LOCATION().
231 2007-11-23 Hans-Peter Nilsson <hp@axis.com>
233 * reload.c (find_reloads_address_1) <autoincdec cases>:
234 Call REG_OK_FOR_CONTEXT with the autoincdec code, not
237 2007-11-23 Richard Guenther <rguenther@suse.de>
238 Michael Matz <matz@suse.de>
240 PR tree-optimization/34176
241 * alloc-pool.h (empty_alloc_pool): Declare.
242 * alloc-pool.c (empty_alloc_pool): New function.
243 * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
244 valid table if a lookup from the optimistic table failed.
245 (vn_unary_op_lookup): Likewise.
246 (vn_binary_op_lookup): Likewise.
247 (vn_phi_lookup): Likewise.
248 (process_scc): Clear optimistic tables before every iteration.
250 2007-11-23 Richard Guenther <rguenther@suse.de>
252 * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
253 (merge_alias_info): Do verification only if checking is
254 enabled. Merge flow-sensitive alias information in simple cases.
255 * tree-ssa-operands.c (get_addr_dereference_operands): Also
256 complain about missing NMTs.
258 2007-11-23 Jakub Jelinek <jakub@redhat.com>
261 * c-common.c (conversion_warning): For INTEGER_TYPE to
262 INTEGER_TYPE conversions call get_narrower on expr to avoid
263 spurious warnings from binop shortening or when the implicit
264 conversion can't change the value.
266 2007-11-22 Joseph Myers <joseph@codesourcery.com>
269 * c-decl.c (set_array_declarator_inner): Don't give error for
270 static or type qualifiers in abstract declarator. Remove
271 abstract_p parameter.
272 * c-tree.h (set_array_declarator_inner): Update prototype.
273 * c-parser.c (c_parser_direct_declarator_inner): Update call to
274 set_array_declarator_inner.
275 * doc/standards.texi: Update for C99 TC3.
277 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com>
279 * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
280 line in my edit of the last change.
282 2007-11-22 Jakub Jelinek <jakub@redhat.com>
285 * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
286 and TREE_READONLY on the fn decl rather than passing a chain
289 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
291 * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
293 2007-11-22 Uros Bizjak <ubizjak@gmail.com>
295 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
296 of ix86_arch and ix86_tune into a switch statement.
297 (enum processor_type): Default PROCESSOR_I386 to 0.
298 * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
299 of "ix86_tune == PROCESSOR_K6".
300 (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
303 2007-11-22 Tom Tromey <tromey@redhat.com>
305 * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
306 avoid writing into string allocated by ggc_alloc_string.
308 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org>
311 * config/sh/sh.md (binary_sf_op): Remove.
312 (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
313 * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
314 and gen_binary_sf_op1.
316 2007-11-21 Hans-Peter Nilsson <hp@axis.com>
318 * regclass.c (init_reg_autoinc): Fix typo preventing test of
319 secondary output reload when setting forbidden_inc_dec_class.
321 2007-11-21 Richard Guenther <rguenther@suse.de>
323 PR tree-optimization/34148
324 * tree-ssa-structalias.c (create_variable_info_for): Do not use
325 field-sensitive PTA for single-element structures.
326 * tree-ssa-alias.c (create_overlap_variables_for): Do not create
327 SFTs for single-element structures.
329 2007-11-20 Richard Guenther <rguenther@suse.de>
332 * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
333 of the signed INT_CST_LT.
334 * stmt.c (expand_case): Likewise.
335 (estimate_case_costs): Likewise.
337 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
339 * read-rtl.c (fatal_expected_char): Print EOF as text rather that
340 its binary representation.
342 2007-11-20 Richard Guenther <rguenther@suse.de>
344 * tree-ssa-operands.c (add_virtual_operand): Consistently prune
347 2007-11-20 Thiemo Seufer <ths@mips.com>
349 * config/mips/mips.c (mips_file_start): Add support for
350 flagging 32-bit code with -mfp64 floating-point.
352 2007-11-20 Jakub Jelinek <jakub@redhat.com>
355 * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
356 (c_gimplify_expr): Use it.
358 2007-11-20 Ben Elliston <bje@au.ibm.com>
360 * config/spu/spu_mfcio.h: Fix typo.
362 2007-11-20 Ben Elliston <bje@au.ibm.com>
364 * unwind.inc: Comment that unwind-sjlj.c includes this file.
366 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
367 Ben Elliston <bje@au.ibm.com>
369 * config/spu/mfc_tag_release.c: New file.
370 * config/spu/mfc_multi_tag_release.c: Likewise.
371 * config/spu/mfc_multi_tag_reserve.c: Likewise.
372 * config/spu/mfc_tag_release.c: Likewise.
373 * config/spu/mfc_tag_reserve.c: Likewise.
374 * config/spu/mfc_tag_table.c: Likewise.
375 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
376 (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
377 * config/spu/spu_mfcio.h: Avoid <stdint.h>.
378 (uint64_t): Typedef if __IN_LIBGCC2 is defined.
379 (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
380 (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
381 mfc_multi_tag_release): Likewise.
382 (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
383 __mfc_multi_tag_release): Declare.
385 2007-11-19 Jason Merrill <jason@redhat.com>
387 PR debug/28834, debug/29436, c/32326
388 * tree.c (build_type_attribute_qual_variant): Refuse to make
389 a distinct copy of a struct/enum type. Use build_distinct_type_copy.
390 * doc/extend.texi (Type Attributes): Don't encourage people to add
391 attributes to struct/enum types in a typedef. Fix
392 transparent_union example.
394 * tree-inline.c (remap_type_1): Remove code that's redundant with
396 (build_duplicate_type): Set id.copy_decl.
397 * c-common.c (handle_transparent_union_attribute): Simplify logic.
399 2007-11-19 Peter Bergner <bergner@vnet.ibm.com>
401 * config/rs6000/rs6000.c (invalid_e500_subreg,
402 rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
403 rs6000_legitimize_address, rs6000_legitimize_reload_address,
404 rs6000_legitimate_address, function_arg_advance,
405 spe_build_register_parallel, rs6000_spe_function_arg,
406 rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
407 emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
408 rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
409 TDmode similarly to DFmode and TFmode.
410 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
411 DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
413 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
415 * stor-layout.c (lang_adjust_rli): Delete.
416 (set_lang_adjust_rli): Likewise.
417 (layout_type): Do not call lang_adjust_rli hook.
418 * tree.h (set_lang_adjust_rli): Delete.
420 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com>
422 * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
423 n_dregs_to_save and n_pregs_to_save.
424 (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
426 (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
427 able to save single D/P registers that aren't saved by the push/pop
430 2007-11-19 Richard Guenther <rguenther@suse.de>
432 PR tree-optimization/34099
433 * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
434 MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
435 if only one operand is undefined.
437 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
439 PR tree-optimization/34036
440 * opts.c (set_fast_math_flags): Do not set flags in common
441 with set_unsafe_math_optimizations_flags, invoke it directly.
442 (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
443 and flag_signed_zeros.
444 * toplev.c (process_options): Force flag_associative_math to 0 and
445 warn, if it is set and either flag_trapping_math or flag_signed_zeros
447 * doc/invoke.texi (Optimize Options): Document the new behavior
448 of -funsafe-math-optimizations, that -fassociative-math requires
449 both -fno-signed-zeros and -fno-trapping-math and make it clear
450 that -fno-trapping-math requires -fno-signaling-nans. Refactor
451 documentation of -ffast-math.
453 2007-11-18 Jakub Jelinek <jakub@redhat.com>
455 PR rtl-optimization/34132
456 * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
460 * optabs.h (optab_table): Change type to struct optab from optab.
461 (convert_optab_table): Similarly.
462 Adjust all _optab macros to expand to addresses of optab_table
463 resp. convert_optab_table elements rather than the values of the
465 * optabs.c (optab_table): Change typype to struct optab from optab.
466 If compiled by recent GCC, initialize all the insn_code fields in
467 the array using designated range initializers.
468 (convert_optab_table): Similarly.
469 (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
470 set_conv_libfunc): Into libfunc_entry's optab field store index within
471 optab_table resp. convert_optab_table array instead of difference
472 between two separately malloced addresses.
473 (new_optab): Add op argument, don't return anything. Initialize
474 just the insn_code field in handlers array and only when needed.
475 (init_optab, init_optabv): Add op argument, don't return anything.
476 Adjust new_optab caller.
477 (new_convert_optab): Removed.
478 (init_convert_optab): Add op argument, don't return anything, don't
479 call new_convert_optab. If needed, initialize insn_code field in
481 (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
483 (debug_optab_libfuncs): Adjust uses of optab_table and
484 convert_optab_table arrays.
486 2007-11-18 Richard Guenther <rguenther@suse.de>
488 PR tree-optimization/34127
489 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
490 Make code match up the comments, require compatibility of the
493 2007-11-17 Richard Guenther <rguenther@suse.de>
496 * fold-const.c (extract_muldiv_1): Do not move negative
497 constants inside ABS_EXPR.
499 2007-11-16 Ian Lance Taylor <iant@google.com>
501 * collect2.c (dump_file): If a demangled symbol is followed by a
502 space, make sure we output at least one space.
504 2007-11-16 Richard Guenther <rguenther@suse.de>
507 * fold-const.c (fold_binary): Use correct types for folding
508 1 << X & Y to Y >> X & 1.
510 2007-11-16 Richard Guenther <rguenther@suse.de>
512 PR tree-optimization/33870
513 * tree.h (struct tree_memory_tag): Add base_for_components flag.
514 (struct tree_struct_field_tag): Remove nesting_level field.
515 (SFT_NESTING_LEVEL): Remove.
516 (SFT_BASE_FOR_COMPONENTS_P): Add.
517 * tree-flow.h (struct fieldoff): Remove nesting_level field. Add
518 base_for_components flag.
519 (push_fields_onto_fieldstack): Remove nesting_level parameter.
520 * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components
522 (create_overlap_variables_for): Deal with it.
523 * tree-dfa.c (dump_subvars_for): Likewise.
524 (dump_variable): Likewise.
525 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
526 Set base_for_components for first elements of sub-structures.
527 (create_variable_info_for): Handle base_for_components.
528 (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
529 pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
530 * tree-ssa-operands.c (ref_nesting_level): Remove.
531 (add_vars_for_offset): Remove full_ref parameter, always add
532 the offset of the pointed-to SFT.
533 (add_virtual_operand): Adjust for changed signature of
536 2007-11-16 Sa Liu <saliu@de.ibm.com>
538 * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined
539 floatunssidf2 and floatunsdidf2.
541 2007-11-16 Richard Guenther <rguenther@suse.de>
543 PR tree-optimization/34113
544 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
545 Use correct conversion direction for checking type compatibility.
547 2007-11-16 Richard Guenther <rguenther@suse.de>
549 PR tree-optimization/34099
550 * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
551 that produce UNDEFINED result if at least one of its operands
552 is UNDEFINED. By default the result is only UNDEFINED if all
553 operands are UNDEFINED.
555 2007-11-16 Jakub Jelinek <jakub@redhat.com>
558 * gcc.c (init_spec): Don't initialize asm_debug here...
559 (main): ... but here.
561 2007-11-07 Tom Tromey <tromey@redhat.com>
563 * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to
565 * tree-parloops.c (create_loop_fn): Use set_cfun.
566 * gengtype.c (open_base_files): Emit #undef cfun.
567 * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
568 * function.h (cfun): New define.
569 * function.c: Undefine cfun.
571 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com>
573 * config/avr/avr.c (avr_mcu_types): Add attiny88.
574 * config/avr/avr.h (LINK_SPEC): Likewise.
575 (CRT_BINUTILS_SPECS): Likewsie.
576 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
578 2007-11-15 Jakub Jelinek <jakub@redhat.com>
581 * tree-ssa-ccp.c (optimize_stack_restore): New function.
582 (execute_fold_all_builtins): Call optimize_stack_restore for
583 BUILT_IN_STACK_RESTORE.
585 2007-11-15 Paolo Bonzini <bonzini@gnu.org>
587 * fwprop.c (try_fwprop_subst): Skip profitability check for forward
588 propagation into an address; that's done in should_replace_address.
590 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
592 * config/spu/spu-protos.h (legitimate_const): Remove prototype.
593 * config/spu/spu.c (legitimate_const): Remove.
594 (classify_immediate): Inline call to legitimate_const.
595 (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT
596 for any constant, not just -512 .. 511.
598 2007-11-15 Sa Liu <saliu@de.ibm.com>
600 * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
601 condition from HONOR_NANS test.
602 * config/spu/spu.md (ceq_df): Always generate comparison code
603 inline, including checks for NaNs and infinities.
605 (cgt_v2df): Likewise.
606 (cmpdf): Make this expander unconditional.
608 2007-11-15 Richard Guenther <rguenther@suse.de>
610 * tree-ssa-alias.c (create_overlap_variables_for): Make sure
611 to only create SFTs if we also create variable infos for PTA.
612 * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping
615 2007-11-15 Richard Guenther <rguenther@suse.de>
617 * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
618 type for TBAA pruning.
619 (find_what_p_points_to): Call set_uids_in_ptset with the original
620 pointer, not the decl of the solution we collapsed to.
622 2007-11-14 David Daney <ddaney@avtrex.com>
624 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
627 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
630 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
631 for registers in BR_REGS class.
633 2007-11-14 Jakub Jelinek <jakub@redhat.com>
636 * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
637 init_ssa_operands has not been called for cfun.
639 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
641 PR tree-optimization/34046
642 * cfg.c (update_bb_profile_for_threading): Avoid the division for the
643 scaling if the old probability is greater than the new base.
645 2007-11-14 Sebastian Pop <sebastian.pop@amd.com>
647 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
648 unused edges after loop duplication.
650 2007-11-14 Uros Bizjak <ubizjak@gmail.com>
652 * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
653 (enum target_cpu_default): ... this enum.
654 (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ...
655 * config/i386/i386.c (override_options): ... here.
656 * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
657 TARGET_CPU_DEFAULT_i486.
659 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
661 * global.c (rest_of_handle_global_alloc): Fix comment typos.
662 * config/sh/sh.c (sh_rtx_costs): Likewise.
663 * ChangeLog: Likewise.
665 2007-11-13 Sebastian Pop <sebastian.pop@amd.com>
667 * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
668 should not be of pointer type.
670 2007-11-13 Michael Meissner <michael.meissner@amd.com>
672 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate
675 2007-11-13 Sterling Augustine <sterling@tensilica.com>
676 Bob Wilson <bob.wilson@acm.org>
678 * config/xtensa/unwind-dw2-xtensa.c: New.
679 * config/xtensa/unwind-dw2-xtensa.h: New.
680 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
681 (DWARF2_UNWIND_INFO): Remove.
682 (DWARF_FRAME_REGISTERS): Define.
683 (EH_RETURN_DATA_REGNO): Define.
684 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
686 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
688 2007-11-13 Jakub Jelinek <jakub@redhat.com>
690 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
691 -fsched-stalled-insns.
693 PR tree-optimization/34063
694 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
695 as first chrec_fold_plus operand rather than second.
697 2007-11-13 Diego Novillo <dnovillo@google.com>
699 PR tree-optimization/33870
700 * tree.h (strcut tree_memory_tag): add field unpartitionable.
701 remove field in_nested_struct.
702 (struct tree_struct_field_tag): add field nesting_level.
703 (sft_in_nested_struct): remove.
704 (sft_nesting_level): define.
705 (sft_unpartitionable_p): define.
706 * tree-ssa-alias.c (mem_sym_score): if mp->var is not
707 partitionable, return long_max.
708 (compute_memory_partitions): do not partition sfts marked
710 (create_sft): add argument nesting_level. set
711 sft_nesting_level with it. update all users.
712 (create_overlap_variables_for): show nesting level.
713 * tree-dfa.c (dump_subvars_for): likewise.
714 (dump_variable): likewise.
715 show whether the sft is partitionable or not.
716 * tree-flow.h (struct fieldoff): remove field
718 add field nesting_level.
719 * tree-ssa-structalias.c (struct variable_info): remove
720 field in_nested_struct.
721 (push_fields_onto_fieldstack): add argument
722 nesting_level. update all users.
723 update documentation.
724 update pair->nesting_level with nesting_level.
725 make recursive calls with nesting_level + 1.
726 (set_uids_in_ptset): if an sft is added to the points-to
727 set, mark it as unpartitionable.
728 * tree-ssa-operands.c (ref_nesting_level): new.
729 (add_vars_for_offset): call it.
730 add argument full_ref. update
732 if var is inside a nested structure and the nesting level
733 of full_ref is lower than the nesting level of var,
734 adjust offset by the offset of var.
736 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
738 PR tree-optimization/32582
739 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
741 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
743 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
744 functions can be used as constant.
746 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
748 PR rtl-optimization/34035
749 * cse.c (cse_cfg_altered): New global variable.
750 (cse_jumps_altered): Make boolean.
751 (recorded_label_ref): Likewise.
752 (cse_insn): Adjust for above changes.
753 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
754 if dead edges have been purged.
755 (cse_main): Change return value specification and adjust code.
756 (rest_of_handle_cse): Adjust for above change.
757 (rest_of_handle_cse2): Likewise.
758 * gcse.c (rest_of_handle_gcse): Likewise.
760 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
761 Michael Meissner <michael.meissner@amd.com>
763 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
764 get the appropriate suffix for the coms* instruction.
765 (sse5_pcmov_<mode>): Restrict operands of pcmov
766 for scalar case to be only xmm registers and not memory.
768 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
769 constraints to follow the mnemonics for the pcmov instruction
771 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
774 * config/mips/mips.c (mips_return_fpr_single): New function.
775 (mips_function_value): Use it when returning single-field
777 (mips_expand_call): Handle the PARALLELs created by
778 mips_return_fpr_single.
780 2007-11-12 Richard Guenther <rguenther@suse.de>
783 * fold-const.c (fold_binary): If testing for non-negative
784 operands with tree_expr_nonnegative_warnv_p make sure to
785 use op0 which has all (sign) conversions retained.
787 2007-11-12 Richard Guenther <rguenther@suse.de>
790 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
791 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
793 2007-11-12 Ira Rosen <irar@il.ibm.com>
795 PR tree-optimization/33953
796 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
797 allocate vec_oprnds1 according to the number of created vector
798 statements. In case of shift with scalar argument, store scalar operand
799 for every vector statement to be created for the SLP node. Fix a
802 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
804 * gcse.c (CUID_INSN): Remove.
806 (alloc_gcse_mem): Don't allocate cuid_insn.
807 (free_gcse_mem): Don't free cuid_insn.
809 2007-11-10 Jakub Jelinek <jakub@redhat.com>
812 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
816 * tree-inline.h (copy_body_data): Add regimplify field.
817 * tree-inline.c (copy_body_r): Set id->regimplify to true
818 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
820 (copy_bb): Clear id->regimplify before walk_tree, if it is
821 set afterwards, regimplify the whole statement.
823 PR tree-optimization/33680
824 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
825 if the added cast involves variable length types.
827 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
828 Maxim Kuvyrkov <maxim@codesourcery.com>
830 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
831 instead of TRUE_BARRIER for jumps. Add register dependencies
832 even when reg_pending_barrier is set.
834 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
836 * haifa-sched.c (haifa_classify_insn): Rename to ...
837 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
838 handle PARALLELs by recursing. Use it ...
839 (haifa_classify_insn): ... here. Reimplement.
841 2007-11-09 Richard Guenther <rguenther@suse.de>
843 * bitmap.h (bitmap_single_bit_set_p): Declare.
844 * bitmap.c (bitmap_single_bit_set_p): New function.
845 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
846 (maybe_create_global_var): Use bitmap_empty_p.
848 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
849 Jakub Jelinek <jakub@redhat.com>
851 PR rtl-optimization/34012
852 * fwprop.c (try_fwprop_subst): Do not replace if the new
853 SET_SRC has a higher cost than the old one.
855 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
857 PR rtl-optimization/33732
858 * reload.c (push_reload): Check that the REG_DEAD note was referring
859 to a hardreg or to a pseudo that has been assigned exactly one hardreg
860 before considering it in order to select the reload register.
861 (combine_reloads): Likewise.
862 (find_dummy_reload): Likewise.
864 2007-11-09 Richard Guenther <rguenther@suse.de>
866 * tree-flow.h (struct ptr_info_def): Make escape_mask a
868 (struct ptr_info_def): Likewise.
869 (enum escape_type): Also use bit zero.
871 2007-11-09 Richard Guenther <rguenther@suse.de>
873 PR tree-optimization/33604
874 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
875 Disregard changes in CV qualifiers of pointed to types for
876 forward propagating ADDR_EXPRs.
877 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
880 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
882 * dse.c (find_shift_sequence): Always choose an integer mode for
884 (replace_read): Require both the read and store mode to be
885 integer ones. Remove a then-redundant FLOAT_P check.
887 2007-11-08 Richard Guenther <rguenther@suse.de>
889 * tree-dfa.c (remove_referenced_var): If removing a
890 variable which has subvars, also remove those from
891 the referenced vars. Do not create a variable annotation.
893 2007-11-08 Bob Wilson <bob.wilson@acm.org>
895 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
896 argument for gen_entry calls.
897 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
898 (entry): Use the new attribute value. Remove unused first operand.
900 2007-11-08 Tom Tromey <tromey@redhat.com>
902 * c-parser.c (c_parser_translation_unit): Use location in error.
903 (c_parser_external_declaration): Likewise.
904 (c_parser_declaration_or_fndef): Likewise.
905 (c_parser_enum_specifier): Likewise.
906 (c_parser_struct_or_union_specifier): Likewise.
907 (c_parser_struct_declaration): Likewise.
908 (c_parser_typeof_specifier): Likewise.
909 (c_parser_parms_list_declarator): Likewise.
910 (c_parser_asm_string_literal): Likewise.
911 (c_parser_braced_init): Likewise.
912 (c_parser_initelt): Likewise.
913 (c_parser_compound_statement_nostart): Likewise.
914 (c_parser_statement_after_labels): Likewise.
915 (c_parser_do_statement): Likewise.
916 (c_parser_asm_statement): Likewise.
917 (c_parser_conditional_expression): Likewise.
918 (c_parser_unary_expression): Likewise.
919 (c_parser_sizeof_expression): Likewise.
920 (c_parser_postfix_expression): Likewise.
921 (c_parser_postfix_expression_after_paren_type): Likewise.
922 (c_parser_objc_class_instance_variables): Likewise.
923 (c_parser_objc_method_definition): Likewise.
924 (c_parser_objc_methodprotolist): Likewise.
925 (c_parser_pragma): Likewise.
926 (c_parser_omp_clause_num_threads): Likewise.
927 (c_parser_omp_clause_schedule): Likewise.
928 (c_parser_omp_all_clauses): Likewise.
929 (c_parser_omp_sections_scope): Likewise.
930 (c_parser_label): Use location of label, not colon.
932 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
935 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
938 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
941 * ipa-pure-const.c (static_execute): Added code to keep recursive
942 functions from being marked as pure or const.
943 * ipa-utils.c (searchc): Fixed comment.
945 2007-11-08 Tom Tromey <tromey@redhat.com>
947 * common.opt (fshow-column): Default to 0.
948 * configure: Rebuilt.
949 * configure.ac (--enable-mapped-location): Default to 'yes'.
951 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
953 * common.opt: Add pointer to doc/options.texi.
954 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
955 -fipa-reference): Add or correct doc. Sorted options list for -Os
958 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
961 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
962 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
963 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
964 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
965 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
966 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
967 to TARGET_BIG_ENDIAN_DEFAULT.
968 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
969 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
970 to TARGET_BIG_ENDIAN_DEFAULT.
972 2007-11-07 Diego Novillo <dnovillo@google.com>
974 * tree.h (struct tree_struct_field_tag): Move field
976 (struct tree_memory_tag): ... here.
978 2007-11-07 Diego Novillo <dnovillo@google.com>
981 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
982 (SFT_IN_NESTED_STRUCT): Define.
983 * tree-dfa.c (dump_subvars_for): Show offset of each
985 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
986 * tree-ssa-structalias.c (struct variable_info): Likewise.
987 (push_fields_onto_fieldstack): If OFFSET is positive,
988 set in_nested_struct.
989 (create_variable_info_for): Copy setting of
990 in_nested_struct from the field offset object.
991 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
992 variable info object.
993 * tree-ssa-operands.c (add_vars_for_offset): If VAR
994 belongs to a nested structure, adjust OFFSET by
997 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
999 PR rtl-optimization/33737
1000 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
1001 target block after computing the probabilities of outgoing edges.
1002 Cap the frequency to BB_FREQ_MAX.
1003 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
1004 frequency of the basic block if it has been reused.
1006 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1008 PR rtl-optimization/33822
1009 * rtl.h (REG_OFFSET): Fix comment.
1010 * var-tracking.c (INT_MEM_OFFSET): New macro.
1011 (var_mem_set): Use it.
1012 (var_mem_delete_and_set): Likewise.
1013 (var_mem_delete): Likewise.
1014 (same_variable_part_p): Likewise.
1015 (vt_get_decl_and_offset): Likewise.
1016 (offset_valid_for_tracked_p): New predicate.
1017 (count_uses): Do not track locations with invalid offsets.
1018 (add_uses): Likewise.
1019 (add_stores): Likewise.
1021 2007-11-07 Tom Tromey <tromey@redhat.com>
1023 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
1024 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
1026 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
1027 Andrey Belevantsev <abel@ispras.ru>
1029 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
1030 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
1031 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
1032 Save calculated max_asap in it.
1033 (sms_schedule): Calculate maxii using max_asap.
1035 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
1037 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
1038 with -mhard-dfp/-mno-hard-dfp.
1040 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1041 Jakub Jelinek <jakub@redhat.com>
1044 * haifa-sched.c (check_sched_flags): Remove.
1045 (sched_init): Don't call it.
1047 2007-11-06 Diego Novillo <dnovillo@google.com>
1049 * tree-flow.h (struct fieldoff): Reformat comment.
1051 * tree-ssa-operands.c: Tidy top-level comments.
1052 (add_vop): Likewise.
1053 (add_vars_for_offset): Tidy parameter formatting..
1054 (get_addr_dereference_operands): Likewise.
1055 (get_indirect_ref_operands): Likewise.
1056 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
1057 <OMP_ATOMIC_STORE>: Likewise.
1059 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
1062 * config/i386/driver-i386.c: Test for __GNUC__ instead of
1063 GCC_VERSION which is always defined.
1065 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1068 * reload1.c (find_reloads): Also check in_reg when handling a
1069 simple move with an input reload and a destination of a hard
1072 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
1074 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
1075 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
1076 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
1077 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1078 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
1079 (m68k_sched_attr_type2): New function.
1080 (sched_adjust_cost_state): New static variable.
1081 (m68k_sched_adjust_cost): New static function implementing
1083 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
1084 New static variables.
1085 (m68k_sched_variable_issue): New static function implementing
1087 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
1088 (sched_dump_split_class): New static function.
1089 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
1091 (sched_dump_dfa_class, m68k_sched_dump): New static function.
1092 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1093 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
1094 m68k_sched_dfa_post_advance_cycle): New static functions implementing
1097 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
1098 (CPU_UNITS_QUERY): Define.
1100 * config/m68k/cf.md: New file.
1101 * config/m68k/m68.md (cf.md): New include.
1103 2007-11-06 Tom Tromey <tromey@redhat.com>
1105 PR c++/32256, PR c++/32368:
1106 * function.c (saved_in_system_header): New global.
1107 (push_cfun): Save in_system_header.
1108 (pop_cfun): Restore in_system_header.
1109 (push_struct_function): Save in_system_header.
1111 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
1115 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
1116 (complete_array_type): Set canonical type appropriately.
1117 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
1118 C and C++ front ends now have different versions of this function,
1119 because the C++ version needs to maintain canonical types here.
1121 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
1123 * tree-parloops.c (reduction_info): Remove reduction_init field.
1124 (initialize_reductions): Remove creation of the reduction_init variable.
1125 (struct data_arg): Remove.
1126 (add_field_for_reduction, create_stores_for_reduction): New functions.
1127 (add_field_for_name): Remove reduction handling.
1128 (separate_decls_in_loop): Call add_field_for_reduction,
1129 create_stores_for_reduction.
1131 2007-11-06 Jakub Jelinek <jakub@redhat.com>
1133 PR tree-optimization/33458
1134 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
1135 !is_gimple_val PHI argument, gimplify it and insert it on edge.
1137 PR tree-optimization/33993
1138 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
1139 rather than build_constructor_from_list if all list values are
1141 (get_initial_def_for_induction): Use build_vector instead of
1142 build_constructor_from_list.
1144 2007-11-05 Mark Mitchell <mark@codesourcery.com>
1147 * tree.h (DECL_INIT_PRIORITY): Do not require
1148 DECL_HAS_INIT_PRIORITY_P.
1149 (DECL_FINI_PRIORITY): Likewise.
1150 * tree.c (decl_init_priority_lookup): Remove assert.
1151 (decl_fini_priority_insert): Likewise.
1152 * cgraphunit.c (static_ctors): Make it a VEC.
1153 (static_dtors): Likewise.
1154 (record_cdtor_fn): Adjust accordingly.
1155 (build_cdtor): Generate multiple functions for each initialization
1157 (compare_ctor): New function.
1158 (compare_dtor): Likewise.
1159 (cgraph_build_cdtor_fns): Sort the functions by priority before
1160 calling build_cdtor.
1161 (cgraph_build_static_cdtor): Put the priority in the function's
1164 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
1167 * common.opt: Add shared and pie.
1169 2007-11-05 Bob Wilson <bob.wilson@acm.org>
1171 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
1172 replace references to virtual_stack_vars_rtx in goto_handler.
1174 2007-11-05 Paul Brook <paul@codesourcery.com>
1176 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
1177 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
1178 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
1179 arm_lang_output_object_attributes_hook.
1180 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
1181 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
1182 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
1184 * config/arm/t-arm.c (arm.o): New rule.
1185 * config/arm/arm-c.c: New file.
1187 2007-11-05 Nick Clifton <nickc@redhat.com>
1188 Sebastian Pop <sebastian.pop@amd.com>
1190 PR tree-optimization/32540
1191 PR tree-optimization/33922
1192 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
1193 * tree-ssa-pre.c: Include params.h.
1194 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
1195 to limit the maximum length of the PA set for a given block.
1196 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
1197 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
1199 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
1201 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1202 __fixunssfDI): Make return type unsigned.
1203 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1204 __fixunssfDI): Make return type unsigned.
1206 2007-11-05 Jakub Jelinek <jakub@redhat.com>
1208 PR tree-optimization/33856
1209 * tree-data-ref.c (get_references_in_stmt): Don't add
1210 REFERENCE_CLASS_P trees to references vector if get_base_address
1211 returns NULL on them.
1213 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
1215 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
1217 2007-11-04 Andrew Pinski <pinskia@gmail.com>
1220 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
1221 for TRUTH_NOT_EXPR to type.
1223 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
1225 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
1227 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1230 * dwarf2out.c (add_calling_convention_attribute): Change
1231 second argument. Set calling convention to DW_CC_program for
1232 Fortran main program.
1233 (gen_subprogram_die): Adjust to new prototype for
1234 add_calling_convention_attribute.
1236 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
1238 PR tree-optimization/33987
1239 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
1241 (vectorizable_reduction): Add type check.
1243 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1246 * c-parser.c (c_parser_statement_after_labels): Error if a
1247 declaration is parsed after a label.
1249 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
1252 * reorg.c (emit_delay_sequence): Do not clear the locator on
1253 the jump instruction.
1255 2007-11-03 Jakub Jelinek <jakub@redhat.com>
1258 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
1259 current sched region.
1261 2007-11-02 Jakub Jelinek <jakub@redhat.com>
1263 * config/ia64/ia64.c (struct reg_write_state): Change into
1264 unsigned short bitfields rather than unsigned int, decrease
1265 first_pred to just 10 bits.
1266 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
1267 into two char array.
1268 (rws_insn_set, rws_insn_test): New functions.
1269 (in_safe_group_barrier): New variable.
1270 (rws_update): Remove first argument, always set rws_sum array.
1271 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
1272 or update rws_sum if !in_safe_group_barrier, adjust rws_update
1274 (rtx_needs_barrier): Use rws_insn_test macro.
1275 (safe_group_barrier_needed): Don't save/restore rws_sum array,
1276 instead set/clear in_safe_group_barrier flag.
1278 2007-11-02 Bob Wilson <bob.wilson@acm.org>
1280 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
1281 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
1282 pointer or frame pointer.
1283 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
1284 (MUST_USE_SJLJ_EXCEPTIONS): Define.
1285 (DWARF2_UNWIND_INFO): Define.
1286 (INCOMING_RETURN_ADDR_RTX): Define.
1287 (DWARF_FRAME_RETURN_COLUMN): Define.
1289 2007-11-02 Tom Tromey <tromey@redhat.com>
1291 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
1294 2007-11-02 Diego Novillo <dnovillo@google.com>
1296 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
1297 argument from function pointer ANALYZE_EXPR. Update all
1299 * cgraph.c (debug_cgraph_node): New.
1300 (debug_cgraph): New.
1302 2007-11-02 Jakub Jelinek <jakub@redhat.com>
1304 PR rtl-optimization/33648
1305 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
1306 the newly created basic block.
1308 2007-11-01 Richard Guenther <rguenther@suse.de>
1310 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
1312 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
1314 PR rtl-optimization/33828
1315 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
1316 of VBEIN and VBEOUT.
1318 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
1320 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
1321 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
1322 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
1324 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
1326 * gcc.c (getenv_spec_function): Escape the environment variable's
1329 2007-11-01 Janis Johnson <janis187@us.ibm.com>
1331 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
1332 show that CSE means common subexpression elimination. Change wording
1333 for -fsee and define LCM. Remove capitalization of optimizations
1334 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
1336 2007-11-01 Janis Johnson <janis187@us.ibm.com>
1339 * doc/sourcebuild.texi (Test Directives): Document that xfail
1340 has no effect for dg-do except when dg-do-what is "run".
1342 2007-11-01 Tom Tromey <tromey@redhat.com>
1344 * c-decl.c (grokdeclarator): Set decl source locations.
1345 * c-parser.c (c_parser_enum_specifier): Set location.
1346 (c_parser_struct_or_union_specifier): Likewise.
1348 2007-11-01 Tom Tromey <tromey@redhat.com>
1350 * print-tree.c (print_node): Print column number.
1352 2007-11-01 Jakub Jelinek <jakub@redhat.com>
1355 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
1356 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
1357 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
1359 PR rtl-optimization/33673
1360 * gcse.c (cprop_jump): If a conditional jump has been optimized
1361 into unconditional jump, make the remaining normal edge fallthru
1362 and delete the jump insn.
1364 2007-11-01 Ben Elliston <bje@au.ibm.com>
1366 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
1367 (set_mem_attrs_from_reg): Likewise.
1369 2007-11-01 Michael Matz <matz@suse.de>
1371 PR tree-optimization/33961
1372 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
1373 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
1374 (add_or_mark_expr): New argument 'store', using it to search
1376 (nt_init_block): Adjust calls to add_or_mark_expr.
1378 2007-10-31 Jakub Jelinek <jakub@redhat.com>
1381 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
1382 for the first push_operand.
1384 2007-10-31 Revital Eres <eres@il.ibm.com>
1386 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
1387 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
1388 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
1389 movmisalignv2sf, vcondv2sf): New.
1390 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
1391 UNSPEC_EXTODD_V2SF): Define new constants.
1392 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
1393 paired_emit_vector_cond_expr): New.
1394 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
1395 * config/rs6000/rs6000.c (paired_expand_vector_move,
1396 paired_emit_vector_cond_expr, paired_emit_vector_compare):
1398 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
1400 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
1402 PR tree-optimization/32377
1403 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
1404 work also for unknown number of iterations.
1405 (analyze_subscript_affine_affine): Clean up. Don't fail when the
1406 number of iterations is not known.
1408 2007-10-31 Richard Guenther <rguenther@suse.de>
1411 * fold-const.c (extract_muldiv_1): Make sure to not introduce
1412 new undefined integer overflow.
1413 (fold_binary): Avoid useless conversion.
1415 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
1418 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
1421 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
1423 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
1425 * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
1426 with -mhard-dfp/-mno-hard-dfp.
1427 * config/s390/s390.opt: Likewise.
1428 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
1431 2007-10-30 Janis Johnson <janis187@us.ibm.com>
1433 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
1435 2007-10-30 Janis Johnson <janis187@us.ibm.com>
1437 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
1438 optimization options.
1439 (Optimize Options): Add -fdce and -fdse to the list of optimizations
1440 enabled by -O. Document -fdce and -fdse.
1442 2007-10-30 Jakub Jelinek <jakub@redhat.com>
1445 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
1446 convert second operand of COMPOUND_EXPR to the original type of
1449 2007-10-30 Richard Guenther <rguenther@suse.de>
1451 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
1452 of loop adding SFTs as virtual operands.
1454 2007-10-30 Richard Guenther <rguenther@suse.de>
1456 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
1458 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
1460 PR tree-optimization/32893
1461 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
1462 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
1464 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
1466 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
1468 (sub_ddmmss): Likewise.
1469 (umul_ppmm): Likewise.
1470 (udiv_qrnnd): Likewise.
1472 2007-10-29 Janis Johnson <janis187@us.ibm.com>
1475 * doc/sourcebuild.texi (Test Directives): Document that dg-require
1476 directives must come before dg-additional-sources.
1478 2007-10-29 Jakub Jelinek <jakub@redhat.com>
1480 PR tree-optimization/33723
1481 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
1482 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
1484 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
1486 PR tree-optimization/33614
1487 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
1488 if they can't be reduced to VECTOR_CSTs and aren't legitimate
1489 initializer constants.
1491 2007-10-29 Richard Guenther <rguenther@suse.de>
1493 PR tree-optimization/33870
1494 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
1495 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
1498 2007-10-29 Richard Guenther <rguenther@suse.de>
1500 * passes.c (init_optimization_passes): Exchange store_copy_prop
1502 * tree-pass.h (pass_store_copy_prop): Remove.
1503 * tree-ssa-copy.c (do_store_copy_prop): Remove.
1504 (stmt_may_generate-copy): Do not handle store_copy_prop.
1505 (get_copy_of_val): Likewise.
1506 (set_copy_of_val): Likewise.
1507 (copy_prop_visit_assignment): Likewise.
1508 (copy_prop_visit_stmt): Likewise.
1509 (copy_prop_visit_phi_node): Likewise.
1510 (init_copy_prop): Likewise.
1511 (execute_copy_prop): Likewise.
1512 (do_copy_prop): Remove.
1513 (gate_store_copy_prop): Likewise.
1514 (store_copy_prop): Likewise.
1515 (pass_store_copy_prop): Likewise.
1516 (pass_copy_prop): Call execute_copy_prop.
1517 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
1518 * common.opt (ftree-store-copy-prop): Mark obsolete.
1519 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
1521 2007-10-29 Ian Lance Taylor <iant@google.com>
1523 * ifcvt.c (noce_can_store_speculate_p): New static function.
1524 (noce_process_if_block): Call it.
1525 (if_convert): Remove recompute_dominance parameter. Change all
1528 2007-10-29 Richard Guenther <rguenther@suse.de>
1530 * tree-flow-inline.h (get_subvar_at): Use binary search.
1531 (get_first_overlapping_subvar): New function to binary search
1532 for the first overlapping subvar.
1533 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
1534 just handle adding subvars for a pointed-to subvar. Optimize
1535 and use get_first_overlapping_subvar.
1536 (add_vars_for_bitmap): Fold into single caller.
1537 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
1538 and non pointed-to bits of add_vars_for_offset.
1540 2007-10-29 Revital Eres <eres@il.ibm.com>
1542 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
1544 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
1545 Zdenek Dvorak <ook@ucw.cz>
1548 reduction support for automatic parallelization.
1550 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
1552 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
1553 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
1554 and OMP_ATOMIC_STORE.
1555 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1556 * gimple-low.c (lower_stmt): Same.
1557 * gimplify.c (gimplify_expr): Same.
1558 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
1559 gimplify_omp_atomic_mutex): Remove.
1560 (gimplify_omp_atomic): Change it to simply gimplify the
1561 statement instead of expanding it.
1562 * omp-low.c: Add includes to optabs.h, cfgloop.h.
1563 (expand_omp_atomic, expand_omp_atomic_pipeline,
1564 goa_stabilize_expr, expand_omp_atomic_mutex,
1565 expand_omp_atomic_fetch_op): New functions to implement
1566 expansion of OMP_ATOMIC.
1567 (expand_omp, build_omp_regions_1): Add support for
1568 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
1569 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
1571 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
1573 * tree-parloops.c: add include to tree-vectorizer.h.
1574 (reduction_info): New structure for reduction.
1575 (reduction_list): New list to represent list of reductions per loop.
1576 (struct data_arg): New helper structure for reduction.
1577 (reduction_info_hash, reduction_info_eq, reduction_phi,
1578 initialize_reductions, create_call_for_reduction,
1579 create_phi_for_local_result, create_call_for_reduction_1,
1580 create_loads_for_reductions, create_final_loads_for_reduction):
1582 (loop_parallel_p): Identify reductions, add reduction_list parameter.
1583 (separate_decls_in_loop_name): Support reduction variables.
1584 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
1585 call create_loads_for_reduction for each reduction.
1586 (canonicalize_loop_ivs): Identify reductions, add reduction_list
1588 (transform_to_exit_first_loop): Add reduction support, add
1589 reduction_list parameter.
1590 (gen_parallel_loop): Add reduction_list parameter. Add call
1591 separate_decls_in_loop with
1592 the new argument. Traverse reductions and call
1593 initialize_reductions, create_call_for_reduction.
1594 (parallelize_loops): Create and delete the reduction list.
1595 (add_field_for_name): Change use of data parameter. Add fields for
1597 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
1598 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
1599 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1600 * tree-inline.c (estimate_num_insns_1): add cases for
1601 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1602 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1603 * tree-ssa-operands.c (get_addr_dereference_operands):
1604 New function. Subroutine of get_indirect_ref_operands.
1605 (get_indirect_ref_operands): Call get_addr_dereference_operands.
1606 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
1609 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
1611 * config/cris/cris.c: Include df.h.
1612 (cris_address_cost): Add gcc_assert for canonicalization
1613 assumptions. For PLUS with MULT or register, correct
1614 test for register in other arm. Tweak comments.
1616 2007-10-28 Richard Guenther <rguenther@suse.de>
1618 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
1619 telling if the var is to be treated as points-to location.
1620 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
1621 (add_virtual_operand): Only recurse into MPTs if aliases
1624 2007-10-28 Richard Guenther <rguenther@suse.de>
1626 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
1627 (add_vars_for_bitmap): Do not recurse further. Only add vars
1628 for pointed-to SFTs.
1629 (add_virtual_operand): Re-instantiate loop to add operands for
1630 aliases. Recurse into MPTs.
1631 (get_indirect_ref_operands): If we fall back to use a pointers
1632 SMT, make sure to not prune based on the access offset and size.
1634 2007-10-28 Andrew Pinski <pinskia@gmail.com>
1637 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
1638 the eh information on the statement.
1640 2007-10-28 Richard Guenther <rguenther@suse.de>
1642 * tree-flow.h (subvar_t): Make it a VEC.
1643 (struct subvar): Remove.
1644 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
1645 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
1647 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1648 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
1649 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
1650 (set_initial_properties): Likewise.
1651 (setup_pointers_and_addressables): Likewise.
1652 (new_type_alias): Likewise.
1653 (create_overlap_variables_for): Likewise.
1654 * tree-dfa.c (dump_subvars_for): Likewise.
1655 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
1656 (get_expr_operands): Likewise.
1657 (add_to_addressable_set): Likewise.
1658 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
1660 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
1662 PR tree-optimization/33920
1663 * tree-if-conv.c (tree_if_conversion): Force predicate of single
1664 successor bb to true when predecessor bb has NULL predicate.
1665 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
1667 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
1669 * config/mips/mips.md: Add combiner patterns for DImode extensions
1670 of HImode and QImode truncations. Reformat HImode <- QImode pattern
1673 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
1676 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
1678 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
1680 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
1681 LIBCALL notes if they are about to be moved to the same insn.
1683 2007-10-27 Richard Guenther <rguenther@suse.de>
1685 PR tree-optimization/33870
1686 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
1687 duplication. Remove redundant call to access_can_touch_variable.
1688 (add_vars_for_bitmap): New helper for recursing over MPT contents.
1689 (add_virtual_operand): Use it.
1691 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1694 * pa.h (ASM_PN_FORMAT): Delete define.
1696 2007-10-26 Janis Johnson <janis187@us.ibm.com>
1698 * doc/invoke.texi (Option Summary, optimizations): Remove
1699 -fbounds-check. Add -fassociative-math, -freciprocal-math,
1700 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
1701 -fsplit-wide-types to match later entry. Break up a long line.
1702 (Option Summary, code gen options) Add -fno-stack-limit. Add
1703 missing @gol to the end of a line.
1704 (Optimization Options): Remove -fbounds-check, which is also
1705 documented under Code Generation Options. Remove =n from
1706 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
1707 to -fcprop-registers to match other options, and say when it is
1708 enabled rather than disabled. Remove extra index entry for
1709 -fno-cx-limited-range. Add index entries for -fstack-protector
1710 and -fstack-protector-all.
1711 (Code Gen Options): Add index entry for -ftls-model.
1713 2007-10-26 Anatoly Sokolov <aesok@post.ru>
1715 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
1716 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
1717 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
1718 expand_epilogue, output_movhi): Don't handle 'main' function.
1719 (avr_attribute_table): Add 'OS_task' function attribute.
1720 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
1722 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
1723 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
1725 * config/avr/avr.opt (minit-stack): Remove.
1727 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
1729 * tree-nested.c (get_trampoline_type): Fix thinko.
1731 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
1734 * tree.c (build_offset_type): Build canonical type based on the
1735 TYPE_MAIN_VARIANT of the base type.
1737 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
1739 * reorg.c (emit_delay_sequence): Move insn locator from the
1740 first insn to the sequence.
1742 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
1744 * ipa-pure-const.c (check_decl): Return immediately when
1745 pure_const_state has been set to IPA_NEITHER.
1747 2007-10-25 Ira Rosen <irar@il.ibm.com>
1749 PR tree-optimization/33833
1750 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
1751 and convert init to sizetype in inner_base construction.
1753 2007-10-25 Richard Guenther <rguenther@suse.de>
1755 * tree-flow.h (mem_sym_stats): Remove.
1756 (dump_mem_sym_stats_for_var): Declare.
1757 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
1758 (mem_sym_stats): Move ...
1759 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
1760 (mem_sym_score): Rename from ...
1761 (pscore): ... this. Remove.
1762 (dump_mem_sym_stats_for_var): New function. Dump the score, but
1763 not the frequencies.
1764 (compare_mp_info_entries): Make sort stable by disambiguating
1767 2007-10-25 Ira Rosen <irar@il.ibm.com>
1769 PR tree-optimization/33866
1770 * tree-vect-transform.c (vectorizable_store): Check operands of all
1771 the stmts in the group of strided accesses. Get def stmt type for each
1772 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
1774 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
1776 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
1777 (Yt): Rename register constraint to Y2.
1778 * config/i386/sse.md: Use renamed register constraints.
1779 * config/i386/mmx.md: Ditto.
1780 * config/i386/i386.md: Ditto.
1782 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
1784 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
1786 2007-10-24 Chao-ying Fu <fu@mips.com>
1788 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
1789 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
1791 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
1792 Olga Golovanevsky <olga@il.ibm.com>
1794 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
1795 the compiler that wr.wrap and wr.domain are initialized in
1798 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
1800 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
1801 to print gcov_type values.
1803 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
1805 * config/avr/avr.h: Do not include progmem_section definition when
1806 building with IN_TARGET_LIBS.
1808 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
1811 * config/mips/mips.c (mips_lo_sum_offset): New structure.
1812 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
1813 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
1814 (mips_orphaned_high_part_p: New functions.
1815 (mips_avoid_hazard): Don't check INSN_P here.
1816 (mips_avoid_hazards): Rename to...
1817 (mips_reorg_process_insns): ...this. Cope with
1818 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
1819 or turn them into nops.
1820 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
1821 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
1822 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
1823 (mips_override_options): Set flag_delayed_branch to 0.
1825 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
1827 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
1828 MIPS-specific implementation details.
1829 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
1830 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
1831 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
1832 for targets with movmemsi.
1833 (MOVE_BY_PIECES_P): Define.
1834 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
1835 (mips_block_move_loop): Add a bytes_per_iter argument.
1836 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
1837 Update call to mips_block_move_loop.
1839 2007-10-24 Michael Matz <matz@suse.de>
1842 * var-tracking.c (variable_union): Don't break after one loop
1843 iteration but only when a difference is found.
1844 (dump_variable): Also print DECL_UID.
1846 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
1848 * ipa-type-escape.h: Expose function
1849 is_array_access_through_pointer_and_index.
1851 (is_array_access_through_pointer_and_index):
1852 Add three new parameters. Add support of
1853 POINTER_PLUS_EXPR tree code.
1855 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
1857 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
1858 * tree-pass.h: Add pass_ipa_struct_reorg.
1859 * common.opt: Add ipa-struct-reorg flag.
1860 * Makefile.in: Add ipa-strcut-reorg.o compilation.
1861 * passes.c: Add pass pass_ipa_struct_reorg.
1862 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
1863 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
1865 2007-10-24 Ira Rosen <irar@il.ibm.com>
1867 PR tree-optimization/33804
1868 * tree-vect-transform.c (vectorizable_operation): Remove the
1869 checks that the vectorization is worthwhile from the transformation
1872 2007-10-24 Ira Rosen <irar@il.ibm.com>
1874 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
1875 vectype cannot be determined for the scalar type.
1876 (vect_analyze_slp_instance): Likewise.
1877 * tree-vect-transform.c (vect_model_reduction_cost): Change the
1878 return type to bool. Return false if vectype cannot be determined
1879 for the scalar type.
1880 (vect_get_constant_vectors): Return false if vectype cannot be
1881 determined for the scalar type.
1882 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
1883 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
1884 vectorizable_reduction): Likewise.
1886 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
1888 * config.gcc: For a FreeBSD target, parse the value of ${target}
1889 to determine the value of FBSD_MAJOR, instead of adding an
1890 explicit check for every possible FreeBSD major version.
1892 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
1894 PR rtl-optimization/33846
1895 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
1897 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
1899 PR tree-optimization/33860
1900 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
1901 interleaved accesses in case the dr is inside the inner-loop during
1902 outer-loop vectorization.
1904 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
1906 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
1907 Document MEM_POINTER. Replace mentions of "integrated"
1908 field with "return_val". Delete outdated stuff.
1910 2007-10-23 David Edelsohn <edelsohn@gnu.org>
1912 * config/rs6000/rs6000.c (rs6000_override_options): Set
1913 rs6000_altivec_abi on AIX.
1914 (conditional_register_usage): Set VR20:31 fixed on AIX.
1916 2007-10-23 Richard Guenther <rguenther@suse.de>
1918 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
1921 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
1922 David S. Miller <davem@davemloft.net>
1924 * df-scan.c (df_get_call_refs): Mark global registers as both a
1925 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
1927 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
1929 PR tree-optimization/33834
1930 PR tree-optimization/33835
1931 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
1932 stmts need to be checked for success seperately.
1933 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
1934 Remove the check that stmt is not LIVE.
1935 (vectorizable_assignment, vectorizable_induction): Likewise.
1936 (vectorizable_operation, vectorizable_type_demotion): Likewise.
1937 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
1939 (vectorizable_live_operation): Check that op is not NULL.
1941 2007-10-22 Janis Johnson <janis187@us.ibm.com>
1943 * doc/invoke.texi (Optimization Options): In the summary, show
1944 that the value for options -falign-jumps, -falign-labels,
1945 -falign-loops, -falign-functions, -fsched-stalled-insns, and
1946 -fsched-stalled-insns-dep is optional. In the summary, show that
1947 -fsched-stalled-insns takes an optional argument and that
1948 -fparallelize-loops takes an argument. Add opindex for several
1949 optimization options, and fix typos in the opindex commands for
1950 several others. In the descriptions for -fsched-stalled-insns
1951 and -fsched-stalled-insns-dep, show the options with and without
1954 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
1956 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
1958 * config/avr/avr.h (LINK_SPEC): Likewise.
1959 (CRT_BINUTILS_SPECS): Likewsie.
1960 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1962 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1964 PR rtl-optimization/33644
1965 * cfgcleanup.c: Do not include dce.h.
1966 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
1967 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
1968 * dce.c (something_changed): Delete.
1969 (libcall_dead_p): New predicate.
1970 (delete_unmarked_insns): Use it to delete dead libcalls.
1971 Deal with REG_LIBCALL and REG_RETVAL notes.
1972 (prescan_libcall_for_dce): New function.
1973 (prescan_insns_for_dce): Use it to deal with libcalls.
1974 (mark_reg_dependencies): Do nothing special for libcalls.
1975 (dce_process_block): Likewise.
1976 (fast_dce): Delete unused local variable.
1977 (run_fast_dce): Do not return a value.
1978 * dce.h (struct df): Delete.
1979 (run_fast_dce): Adjust prototype.
1980 * optabs.c (libcall_id): Delete.
1981 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
1982 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
1983 * reload1.c (reload): Delete REG_LIBCALL_ID case.
1984 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
1985 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
1986 notes instead of REG_LIBCALL_ID notes.
1987 * reg-notes.def (LIBCALL_ID): Delete.
1988 * Makefile.in (see.o): Add dce.h dependency.
1989 (cfgcleanup.o): Remove dce.h dependency.
1991 2007-10-22 Michael Matz <matz@suse.de>
1993 PR tree-optimization/33855
1994 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
1997 2007-10-22 Ira Rosen <irar@il.ibm.com>
1999 PR tree-optimization/33854
2000 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
2001 FLOAT_EXPR to the list of promotion operations.
2003 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
2007 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
2008 (print_reg): Print register prefix only with AT&T asm syntax.
2009 Support pc_rtx for RIP register.
2010 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
2011 relative addressing. Always print segment register prefix with AT&T
2012 asm syntax and never with Intel asm syntax.
2013 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
2014 Fix prefix for 16-byte XFmode operands.
2015 (output_addr_const_extra): Support Intel asm syntax.
2016 (x86_file_start): Don't use register prefix with Intel asm syntax.
2017 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
2018 ("return_internal_long"): Fix Intel asm syntax output.
2019 ("set_got_rex64"): Support Intel asm syntax.
2020 ("set_rip_rex64"): Likewise.
2021 ("set_got_offset_rex64"): Likewise.
2022 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
2024 ("*tls_global_dynamic_64"): Likewise.
2025 ("*tls_local_dynamic_base_64"): Likewise.
2026 ("*load_tp_si")("*load_tp_di"): Likewise.
2027 ("*add_tp_si")("*add_tp_di"): Likewise.
2028 ("*tls_dynamic_lea_64"): Likewise.
2029 ("*sibcall_value_1_rex64_v"): Likewise.
2030 ("stack_tls_protect_set_si"): Likewise.
2031 ("stack_tls_protect_set_di"): Likewise.
2032 ("stack_tls_protect_test_si"): Likewise.
2033 ("stack_tls_protect_test_di"): Likewise.
2034 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
2036 ("*movv2sf_internal_rex64"): Likewise.
2037 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
2038 (__get_cpuid_max): Likewise.
2040 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2042 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
2043 the STRICT_P argument type "bool" rather than "int".
2044 (mips_legitimate_address_p): Likewise.
2045 (fp_register_operand, lo_operand): Delete.
2046 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2047 (mips_emit_scc): Rename to...
2048 (mips_expand_scc): ...this.
2049 (gen_conditional_branch): Rename to...
2050 (mips_expand_conditional_branch): ...this.
2051 (gen_conditional_move): Rename to...
2052 (mips_expand_conditional_move): ...this.
2053 (mips_gen_conditional_trap): Rename to...
2054 (mips_expand_conditional_trap): ...this and take an rtx code instead
2055 of an operands array.
2056 (mips_expand_call): Give the SIBCALL_P argument type "bool"
2058 (mips_emit_fcc_reload): Rename to...
2059 (mips_expand_fcc_reload): ...this.
2060 (init_cumulative_args): Rename to...
2061 (mips_init_cumulative_args): ...this and remove the libname argument.
2062 (function_arg_advance): Rename to...
2063 (mips_function_arg_advance): ...this.
2064 (function_arg): Rename to...
2065 (mips_function_arg): ...this and use "rtx" instead of
2067 (function_arg_boundary): Rename to...
2068 (mips_function_arg_boundary): ...this.
2069 (mips_expand_unaligned_load): Rename to...
2070 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2071 and BITPOS arguments type "HOST_WIDE_INT".
2072 (mips_expand_unaligned_store): Rename to...
2073 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2074 and BITPOS arguments type "HOST_WIDE_INT".
2075 (override_options): Rename to...
2076 (mips_override_options): ...this.
2077 (print_operand): Rename to...
2078 (mips_print_operand): ...this.
2079 (print_operand_address): Rename to...
2080 (mips_print_operand_address): ...this.
2081 (mips_output_ascii): Remove the PREFIX argument.
2082 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2084 (mips_can_use_return_insn): Return a "bool" rather than an "int".
2085 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
2086 of "struct rtx_def *".
2087 (mips_secondary_reload_class): Give the IN_P argument type "bool"
2089 (build_mips16_call_stub): Delete.
2090 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2091 (mips_use_ins_ext_p): Give the second and third arguments type
2092 "HOST_WIDE_INT" rather than "rtx".
2093 * config/mips/mips.h: Update after the above changes. Tweak comments
2095 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
2096 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2097 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2098 element type from "char" to "bool".
2099 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
2100 (mips_cpu_info_table): Delete.
2101 * config/mips/mips.md: Update after the above changes. Tweak some
2103 * config/mips/mips-ps-3d.md: Likewise.
2104 * config/mips/mips.c: Tweak comments and formatting.
2105 Use NULL-like macros rather than 0 in various places.
2106 (mips_section_threshold): Rename to...
2107 (mips_small_data_threshold): ...this and give it an unsigned type.
2108 (num_source_filenames): Remove explicit initialization.
2109 (sdb_label_count): Likewise.
2110 (sym_lineno): Delete.
2111 (set_noat): Make static.
2112 (mips_branch_likely): Likewise, and give it type "bool".
2113 (mips_isa_info): Rename to...
2114 (mips_isa_option_info): ...this.
2115 (mips_flag_delayed_branch): Rename to...
2116 (mips_base_delayed_branch): ...this.
2117 (mips_split_addresses): Delete.
2118 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2119 element type from "char" to "bool".
2120 (mips_regno_to_class): Add an explicit array size.
2121 (mips16_flipper): Change from type "int" to type "bool".
2122 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
2123 (mips_tls_operand_p): Rename to...
2124 (mips_tls_symbol_p): ...this.
2125 (mips_global_symbol_p): Remove redundant "const".
2126 (mips_offset_within_alignment_p): Simplify.
2127 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
2128 to STRICT_P and give it type bool.
2129 (mips_valid_base_register_p): Likewise.
2130 (mips_classify_address): Likewise.
2131 (mips_legitimate_address_p): Likewise.
2132 (mips16_unextended_reference_p): Take the offset as an
2133 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
2134 (mips_const_insns): Use IN_RANGE.
2135 (mips_force_temporary): Remove an unnecessary copy_rtx.
2136 (mips16_gp_pseudo_reg): Simplify.
2137 (mips_split_symbol): Remove an unnecessary copy_rtx.
2138 (mips_legitimize_tls_address): Only create registers if we need them.
2139 (mips_legitimize_address): Use mips_split_plus.
2140 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
2141 variable COST to NUM_OPS.
2142 (mips_legitimize_move): Use gen_lowpart.
2143 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
2144 (m16_check_op): Use IN_RANGE.
2145 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2146 (mips_split_doubleword_move): Pass booleans to mips_subword.
2147 (mips_output_move): Store the mode in a local variable.
2148 Explicitly assert that this function does not deal with
2149 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
2150 cases more consistent.
2151 (mips_relational_operand_ok_p): Rename to...
2152 (mips_int_order_operand_ok_p): ...this.
2153 (mips_canonicalize_comparison): Rename to...
2154 (mips_canonicalize_int_order_test): ...this.
2155 (mips_emit_int_relational): Rename to...
2156 (mips_emit_int_order_test): ...this. Store the mode in a local
2158 (mips_reverse_fp_cond_p): Rename to...
2159 (mips_reversed_fp_cond): ...this.
2160 (mips_emit_compare): Make the order of the statements more consistent.
2161 (mips_emit_scc): Rename to...
2162 (mips_expand_scc): ...this.
2163 (gen_conditional_branch): Rename to...
2164 (mips_expand_conditional_branch): ...this.
2165 (gen_conditional_move): Rename to...
2166 (mips_expand_conditional_move): ...this. Build the condition
2167 separately from the main pattern.
2168 (mips_gen_conditional_trap): Rename to...
2169 (mips_expand_conditional_trap): ...this and take an rtx code instead
2170 of an operands array. Simplify.
2171 (init_cumulative_args): Rename to...
2172 (mips_init_cumulative_args): ...this. Use memset rather than a
2173 copy from a zeroed static. Use prototype_p and stdarg_p.
2174 (mips_arg_info): Rename to...
2175 (mips_get_arg_info): ...this and put the INFO argument first.
2176 (function_arg): Rename to...
2177 (mips_function_arg): ...this and use "rtx" instead of
2178 "struct rtx_def *". Only split structures into chunks if
2179 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
2180 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
2181 comparison with REAL_TYPE. Rename local variable REG to REGNO
2182 and make it unsigned.
2183 (function_arg_advance): Rename to...
2184 (mips_function_arg_advance): ...this.
2185 (function_arg_boundary): Rename to...
2186 (mips_function_arg_boundary): ...this.
2187 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
2189 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
2190 comparison with REAL_TYPE.
2191 (mips_function_value): Remove the FUNC argument. Rename local
2192 variable UNSIGNEDP to UNSIGNED_P.
2193 (mips_return_in_memory): Use IN_RANGE.
2194 (mips_setup_incoming_varargs): Pass a boolean rather than an int
2195 to FUNCTION_ARG_ADVANCE.
2196 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
2197 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
2198 SIZE and RSIZE if needed.
2199 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
2201 (build_mips16_function_stub): Rename to...
2202 (mips16_build_function_stub): ...this.
2203 (build_mips16_call_stub): Rename to...
2204 (mips16_build_call_stub): ...this. Make static, and return a
2205 "bool" rather than an "int". Rename the ARG_SIZE argument to
2206 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
2207 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
2208 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
2210 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
2211 are not sibling ones.
2212 (mips_emit_fcc_reload): Rename to...
2213 (mips_expand_fcc_reload): ...this.
2214 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
2216 (mips_expand_unaligned_load): Rename to...
2217 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2218 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
2220 (mips_expand_unaligned_store): Rename to...
2221 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2222 and BITPOS arguments type "HOST_WIDE_INT".
2223 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
2224 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
2226 (mips_init_split_addresses): Replace with...
2227 (mips_split_addresses_p): ...this new function.
2228 (mips_init_relocs): Check mips_split_addresses_p () rather than
2229 mips_split_addresses. Always initialize mips_split_p with booleans.
2230 (print_operand_reloc): Rename to...
2231 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
2233 (print_operand): Rename to...
2234 (mips_print_operand): ...this.
2235 (print_operand_address): Rename to...
2236 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
2237 (mips_in_small_data_p): Simplify.
2238 (mips_output_ascii): Remove the PREFIX argument and "register"
2239 keywords. Use the STRING parameter directly and cast to
2241 (mips16e_collect_argument_save_p): Use IN_RANGE.
2242 (mips_function_has_gp_insn): Simplify.
2243 (mips_set_return_address): Use BITSET_P.
2244 (mips_restore_gp): Use a separate statement to pick the base
2246 (mips_output_function_prologue): Use a local FRAME variable.
2247 (mips_save_reg): Pass booleans to mips_subword.
2248 (mips_expand_prologue): Use a local FRAME variable. Use
2249 cprestore_size to detect when .cprestore is needed.
2250 (mips_restore_reg): Use GP_REG_FIRST.
2251 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2252 rather than "int". Use local FRAME and REGNO variables.
2253 (mips_can_use_return_insn): Return a "bool" rather than an "int".
2254 (mips_secondary_reload_class): Give the IN_P argument type "bool"
2256 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
2257 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2258 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
2259 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
2260 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
2261 (builtin_description): Rename to...
2262 (mips_builtin_description): ...this.
2263 (mips_bdesc): Rename to...
2264 (mips_ps_bdesc): ...this.
2265 (sb1_bdesc): Rename to...
2266 (mips_sb1_bdesc): ...this.
2267 (dsp_bdesc): Rename to...
2268 (mips_dsp_bdesc): ...this.
2269 (dsp_32only_bdesc): Rename to...
2270 (mips_dsp_32only_bdesc): ...this.
2271 (bdesc_map): Rename to...
2272 (mips_bdesc_map): ...this.
2273 (bdesc_arrays): Rename to...
2274 (mips_bdesc_arrays): ...this.
2275 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
2276 Tweak error message.
2277 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
2278 Rename local variables I and J to OPNO and ARGNO respectively.
2279 Assert that the number of arguments is no more than the number of
2281 (mips_expand_builtin_compare): Use an array of arguments rather
2282 than an array of operands. Assert that the number of operands is
2284 (add_constant): Rename to...
2285 (mips16_add_constant): ...this. Use XNEW.
2286 (dump_constants_1): Rename to...
2287 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
2288 (dump_constants): Rename to...
2289 (mips16_emit_constants): ...this.
2290 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
2291 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
2292 Assign mips16_p to was_mips16_p.
2293 (mips_parse_cpu): Tweak warning message.
2294 (override_options): Rename to...
2295 (mips_override_options): ...this. Move the mips_cost initialization
2296 out of the "shared with GAS" block. Quote option names in error
2298 (mips_conditional_register_usage): Make local variable REGNO unsigned.
2299 (mips_order_regs_for_local_alloc): Remove register keyword.
2301 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2303 * system.h (IN_RANGE): Cast each argument individually.
2305 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2307 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
2308 MIPS16 code unless using o32 or o64.
2310 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2312 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
2313 for modes smaller than 4 bytes.
2314 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
2317 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2319 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
2320 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
2321 (ASM_OUTPUT_ALIGNED_BSS): Delete.
2322 * config/mips/mips.c (mips_output_aligned_bss): Delete.
2324 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2326 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
2327 sibling calls to "mips16" functions if the function satisfies
2328 const_call_insn_operand.
2330 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2332 * config/mips/mips.c (mips_va_start): Fix types in calls
2335 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2337 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
2340 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2342 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
2343 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
2344 instead of checking mips_isa.
2346 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2348 * doc/invoke.texi (-mpaired-single): Don't say that the option
2349 requires 64-bit code.
2350 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
2351 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
2352 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
2353 V2SF if ISA_MIPS32R2.
2354 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
2355 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
2356 to ISA_HAS_NMADD_NMSUB.
2357 (mips_split_doubleword_move): Handle V2SF.
2358 (mips_modes_tieable_p): New function.
2359 (override_options): Report a warning rather than an error when
2360 -mpaired-single is used on ISAs that don't support it; use
2361 ISA_HAS_PAIRED_SINGLE to check that case.
2362 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
2363 and DF move splitters with a single MOVE64 splitter, thereby adding
2364 a V2SF splitter too.
2365 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
2366 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
2367 (HALFMODE): Add V2SF.
2368 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
2369 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
2370 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
2371 (movv2sf_hardfloat_32bit): New pattern.
2372 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
2373 TARGET_DOUBLE_FLOAT conditions.
2375 2007-10-20 Jakub Jelinek <jakub@redhat.com>
2377 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
2378 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
2379 64-bit register in 64-bit libgcc.
2381 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
2383 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
2384 * config/avr/avr.h (LINK_SPEC): Likewise.
2385 (CRT_BINUTILS_SPECS): Likewsie.
2386 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2388 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2390 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
2391 and -Wfatal-errors together.
2393 2007-10-20 Alan Modra <amodra@bigpond.net.au>
2396 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
2397 change for vrsave, ie restore after frame pop.
2399 2007-10-19 David S. Miller <davem@davemloft.net>
2401 * config/sparc/niagara2.md: Fix copyright notice.
2403 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
2405 PR tree-optimization/23820
2406 PR tree-optimization/24309
2407 PR tree-optimization/33766
2408 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
2409 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
2410 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
2411 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
2412 * tree-loop-linear.c (perfect_loop_nest_depth): New.
2413 (linear_transform_loops): Use perfect_loop_nest_depth.
2414 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
2415 should have a single condition: their exit.
2417 2007-10-19 Richard Guenther <rguenther@suse.de>
2421 * stor-layout.c (layout_type): Assert that aggregates do not
2422 have their alias sets set.
2423 * alias.c (get_alias_set): Return alias set zero for incomplete
2424 types, return the alias set of the element for incomplete array
2425 types, but do not remember these.
2427 2007-10-19 Richard Guenther <rguenther@suse.de>
2430 2007-10-19 Richard Guenther <rguenther@suse.de>
2433 * tree.c (build_array_type): Do not re-layout unbound array
2436 2007-10-19 Richard Guenther <rguenther@suse.de>
2439 * tree.c (build_array_type): Do not re-layout unbound array
2442 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2444 * config/mips/mips.c (mips_canonicalize_comparison): Check
2445 mips_relational_operand_ok_p before trying to rewrite the test.
2446 Only calculate PLUS_ONE if needed.
2447 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
2450 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2452 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
2455 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2457 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
2458 the call uses the incoming value of $2.
2460 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2462 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
2463 rather then gen_rtx_MEM.
2464 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
2466 (mips_set_return_address): Likewise.
2467 (mips_restore_gp): Likewise.
2469 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2471 * config/mips/mips.c (gpr_mode): Delete.
2472 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
2473 instead of gpr_mode.
2474 (mips_for_each_saved_reg): Likewise.
2475 (mips_expand_prologue, mips_expand_epilogue): Likewise.
2476 (override_options): Don't initialize gpr_mode.
2477 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
2479 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2481 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
2483 (mips_class_max_nregs): Calculate the smallest consituent register
2484 size and use that to determine an upper bound on the number of
2487 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2489 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
2491 (mips_expand_epilogue): ...here.
2492 (mips_mdebug_abi_name): New function, split out from...
2493 (mips_file_start): ...here.
2494 (mips_hard_regno_mode_ok_p): New function, split out from...
2495 (override_options): ...here.
2496 (mips_expand_builtin_1): New function, split out from...
2497 (mips_expand_buitin): ...here. Abort if we don't recognize
2500 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2502 * config/mips/mips.c (build_mips16_function_stub): Load the
2503 target address into $1 before transfering the arguments.
2504 Don't use ".set noreorder".
2505 (build_mips16_call_stub): Likewise.
2507 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2509 * config/mips/mips.c (mips_output_32bit_xfer): New function.
2510 (mips_output_64bit_xfer): Likewise.
2511 (mips16_fp_args): Rename to...
2512 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
2513 with a DIRECTION argument. Use mips_output_32bit_xfer and
2514 mips_output_64bit_xfer.
2515 (build_mips16_function_stub): Update accordingly.
2516 (mips16_fpret_double): Delete.
2517 (build_mips16_call_stub): Update after above changes.
2518 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
2519 of mips16_fpret_double. Use GP_REG_RETURN.
2521 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
2523 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
2524 use asm_out_file instead.
2525 (build_mips16_function_stub): Likewise.
2526 (build_mips16_call_stub, mips_output_function_prologue): Update
2529 2007-10-18 David S. Miller <davem@davemloft.net>
2531 Add Niagara-2 support.
2532 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
2533 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
2534 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
2535 (include): Add inclusion of niagara2.md
2536 * config/sparc/sparc.c (niagara2_costs): New.
2537 (sparc_override_options): Add niagara2 entry to cpu_default[]
2538 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
2539 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
2540 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
2541 (sparc_initialize_trampoline): Handle niagara2 like niagara.
2542 (sparc64_initialize_trampoline): Likewise.
2543 (sparc_use_sched_lookahead): Likewise.
2544 (sparc_issue_rate): Likewise.
2545 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
2547 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
2548 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
2549 TARGET_CPU_niagara2.
2550 (PROCESSOR_NIAGARA2): New.
2551 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
2552 (BRANCH_COST): Likewise.
2553 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
2554 * config/sparc/sol2.h: Likewise.
2555 * config/sparc/niagara2.md: New file.
2557 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2559 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
2561 (mips_compute_frame_info): Remove associated code.
2562 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
2564 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2566 * config/mips/mips-protos.h (compute_frame_size): Delete.
2567 * config/mips/mips.h: Update comments.
2568 * config/mips/mips.c (mips_frame_info): Remove initialized.
2569 (compute_frame_size): Rename to...
2570 (mips_compute_frame_info): ...this and make static. Remove the
2571 SIZE argument and return no value. Remove the setting of initialized.
2572 Update rest of file accordingly.
2573 (mips_set_return_address): Don't call compute_frame_size.
2574 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
2575 Don't call compute_frame_size.
2577 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2579 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
2580 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
2581 mips_hard_frame_pointer_required.
2582 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
2583 large MIPS16 frames.
2584 * config/mips/mips.c (mips_frame_pointer_required): New function.
2586 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2588 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
2589 and hard_frame_pointer_offset.
2590 (mips_debugger_offset): Use hard_frame_pointer_offset.
2591 (mips16e_collect_argument_save_p): Likewise.
2592 (compute_frame_size): Initialize arg_pointer_offset and
2593 hard_frame_pointer_offset.
2594 (mips_initial_elimination_offset): Use them.
2595 (mips_output_function_prologue): Use hard_frame_pointer_offset.
2596 (mips_expand_prologue, mips_expand_epilogue): Likewise.
2598 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2600 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
2602 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
2603 "unsigned int" rather than "int" and put them with the other
2604 register-related fields. Put expanded comments above fields
2605 rather than to their right.
2606 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
2607 with a NUM_REGS_PTR argument.
2608 (mips16e_save_restore_pattern_p): Update accordingly.
2609 (compute_frame_size): Clarify frame diagram. Rewrite.
2611 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2613 * config/mips/mips-ftypes.def: New file.
2614 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
2615 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
2616 (mips_function_type): Redefine using mips-ftypes.def.
2617 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
2618 (mips_builtin_vector_type): New function.
2619 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
2620 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
2621 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
2622 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
2624 (mips_build_function_type): New function.
2625 (mips_init_builtins): Use it to create types lazily.
2627 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2629 * config/mips/mips.h (set_volatile): Delete.
2630 * config/mips/mips.c (set_volatile): Delete.
2631 (mips_print_operand_punctuation): New function, split out from
2632 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
2633 Use the same character ordering in the code and the comments.
2634 Use a recursive call to handle '*'. Abort on unknown characters.
2635 (mips_init_print_operand_punct): New function, split out from
2637 (mips_print_int_branch_condition): New function, split out from
2638 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
2639 to report unexpected codes.
2640 (mips_print_float_branch_condition): New function, split out from
2641 print_operand. Use output_operand_lossage to report unexpected codes.
2642 (print_operand): Rework to use a case statement. Use the
2643 same letter ordering in the code and the comments. Use
2644 output_operand_lossage to report unexpected codes and
2645 reverse_condition to handle inverted branch conditions.
2646 (override_options): Use mips_init_print_operand_punct.
2648 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2650 * config/mips/mips.h: Move variable declarations to end of file and
2651 enclose them all in #ifndef USED_FOR_TARGET.
2652 * config/mips/mips.c: Reorder functions into more logical groups,
2653 and so that callees appear before callers. Put the targetm
2654 initializer at the end of the file. Remove forward static
2655 declarations where possible.
2656 (mips_init_builtins): Add "static" to definition.
2657 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
2659 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2661 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
2662 (TARGET_MAX_ANCHOR_OFFSET): Delete.
2663 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
2664 (mips_set_mips16_mode): Initialize min_anchor_offset and
2665 max_anchor_offset directly to constants.
2667 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2669 * config/mips/mips.c: Delete trailing whitespace.
2671 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2673 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
2674 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
2676 * config/mips/mips.md (load_call<mode>): Don't make the unspec
2677 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
2679 2007-10-18 David Daney <ddaney@avtrex.com>
2681 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
2682 reg_offset variable to calculate register locations.
2684 2007-10-18 Richard Guenther <rguenther@suse.de>
2686 * tree-ssa.c (uid_ssaname_map_eq): New function.
2687 (uid_ssaname_map_has): Likewise.
2688 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
2689 * tree-flow.h (struct gimple_df): Make default_defs a
2691 * tree-dfa.c (gimple_default_def): Deal with it.
2692 (set_default_def): Likewise.
2694 2007-10-18 Richard Guenther <rguenther@suse.de>
2696 * tree-flow.h (struct gimple_df): Make referenced_vars
2698 (uid_decl_map_eq): Declare.
2699 (uid_decl_map_hash): Likewise.
2700 * tree-ssa.c (uid_decl_map_eq): New function.
2701 (uid_decl_map_hash): Likewise.
2702 (init_tree_ssa): Make referenced_vars a uid_decl_map.
2703 * tree-flow-inline.h (first_referenced_var): Deal with
2704 the referenced_vars representation change.
2705 (next_referenced_var): Likewise.
2706 * tree-dfa.c (referenced_var_lookup): Likewise.
2707 (referenced_var_check_and_insert): Likewise.
2708 (remove_referenced_var): Likewise.
2710 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
2712 * config/mips/mips.c (mips_dwarf_register_span): New.
2713 (TARGET_DWARF_REGISTER_SPAN): Define.
2715 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
2717 * config.gcc : update score-*-elf(extra_objs).
2718 * config/score/mac.md : Remove.
2719 * config/score/misc.md : Remove.
2720 * config/score/score7.md : Remove.
2721 * config/score/score-mdaux.h : Remove.
2722 * config/score/score-mdaux.c : Remove.
2723 * config/score/score-version.h : Remove.
2724 * config/score/score-generic.md : New.
2725 * config/score/score3.h : New.
2726 * config/score/score3.c : New.
2727 * config/score/score7.h : New.
2728 * config/score/score7.c : New.
2729 * config/score/mul-div.S : add flush_cache score3 support.
2730 * config/score/elf.h : Fix some typos.
2731 * config/score/score.md : merge score3 and score7 pattern.
2732 * config/score/score.c : use to seperate which target it used.
2733 * config/score/score.h : use to seperate the target macro.
2734 * config/score/score.opt : remove -mmac option , add -mscore3,
2735 -mscore3d and -march OPTION support.
2737 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2739 * cfgexpand.c (expand_stack_vars): Add checking to make sure
2740 that the offset of a variable is not greater than the size
2743 2007-10-17 Anatoly Sokolov <aesok@post.ru>
2745 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
2746 atmega88p, atmega168p and atmega328p devices.
2747 * config/avr/avr.h (LINK_SPEC): (Ditto.).
2748 (CRT_BINUTILS_SPECS): (Ditto.).
2749 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2751 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2753 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
2755 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
2756 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
2757 (print_insn): Move declaration to ...
2758 * rtl.h (print_insn): ... here.
2760 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2762 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
2763 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
2764 m68k_sched_branch_type): Move declarations to ...
2765 * config/m68/m68k-protos.h: ... here.
2767 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2769 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
2771 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
2773 * config/avr/avr.c (avr_mcu_types): Add attiny48.
2774 * config/avr/avr.h (LINK_SPEC): Likewise.
2775 (CRT_BINUTILS_SPECS): Likewsie.
2776 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2778 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
2780 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
2781 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
2782 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2784 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
2787 * reg-stack.c (move_for_stack_reg): Swap input argument of
2788 UNSPEC_TAN insn to the top of the stack.
2790 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
2793 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
2794 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
2795 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
2796 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
2797 immediate shift value.
2798 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
2799 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
2800 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
2801 Remove macros for !__OPTIMIZE__ case.
2803 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
2805 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
2807 (perform_var_substitution): Only DFS from real nodes. Don't test
2809 (unite_pointer_equivalences): Fix broken test.
2811 2007-10-17 Alan Modra <amodra@bigpond.net.au>
2813 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
2814 altivec sp_offset. Rearrange sp_offset assignments to
2815 correspond to stack adjustments. Use frame_reg_rtx for
2816 SPE register restores. Correct SPE stack adjustment.
2818 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2820 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
2821 * toplev.c (check_global_declaration_1): Use appropriate warning
2822 option instead of unnamed warning.
2823 * stor-layout.c (layout_decl): Likewise.
2824 * c-typeck.c (build_conditional_expr): Likewise.
2825 (build_compound_expr): Fix wrong comment.
2826 (build_binary_op): Use appropriate warning option instead of
2828 * cfgexpand.c (tree_expand_cfg): Likewise.
2829 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2830 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
2831 (execute_warn_function_return): Likewise.
2832 * stmt.c (warn_if_unused_value): Likewise.
2834 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
2836 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
2837 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
2839 (CRT_BINUTILS_SPECS): Likewsie.
2840 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2842 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
2845 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
2847 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
2849 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
2850 (fini_dce): Only release them for the fast pass.
2851 (end_ud_dce): Delete.
2852 (rest_of_handle_ud_dce): Do not modify df_in_progress.
2853 Call fini_dce instead of end_ud_dce.
2854 (rest_of_handle_fast_dce): Do not modify df_in_progress.
2855 (run_fast_df_dce): Reset df_in_progress to false on exit.
2857 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
2858 Maxim Kuvyrkov <maxim@codesourcery.com>
2860 * target.h (unspec_may_trap_p): New target hook.
2861 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
2862 * targhooks.c (default_unspec_may_trap_p): Default implementation of
2864 * targhooks.h (default_unspec_may_trap_p): Declare it.
2865 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
2866 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
2867 * rtl.h (may_trap_p_1): Declare.
2869 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
2870 override default hook implementation.
2871 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
2874 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2876 * doc/invoke.texi (Wextra): Move it just after Wall, list the
2877 options enabled by Wextra and mention Wuninitialized.
2879 2007-10-15 Nigel Stephens <nigel@mips.com>
2881 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
2883 2007-10-15 Jakub Jelinek <jakub@redhat.com>
2885 PR tree-optimization/33136
2886 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
2888 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
2890 PR tree-optimization/33735
2891 PR tree-optimization/33572
2892 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
2893 2007-10-09's change.
2894 * except.c (duplicate_eh_regions): Don't look for prev_try
2895 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
2897 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
2900 * tree-inline.c (copy_bb): Use bsi_replace to replace a
2901 __builtin_va_arg_pack-containing call stmt.
2903 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
2905 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
2908 2007-10-15 Jakub Jelinek <jakub@redhat.com>
2910 PR tree-optimization/33619
2911 * tree-ssa-ter.c (is_replaceable_p): Return false for all
2914 2007-10-15 David Edelsohn <edelsohn@gnu.org>
2916 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
2918 2007-10-15 Richard Guenther <rguenther@suse.de>
2920 * fold-const.c (extract_array_ref): Remove.
2921 (fold_comparison): Handle POINTER_PLUS_EXPR with the
2922 generic address expression comparison folding. Remove
2923 the folding that used extract_array_ref.
2925 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2928 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
2929 speculation type of insn can be changed before trying to do that.
2931 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2933 * dse.c (struct insn_info): Add 'frame_read' field.
2934 (scan_insn): For the call to a const function, set frame_read if
2935 reload has been run.
2936 If the insn reads the frame, kill the frame related stores.
2937 (scan_reads_nospill): Likewise.
2939 2007-10-14 Jason Merrill <jason@redhat.com>
2941 * tree-eh.c (optimize_double_finally): Don't assume that the
2942 cleanup we're duplicating is only one statement.
2944 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
2946 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
2947 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
2948 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
2949 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
2950 tree-vect-transform.c: Fix comment typos.
2951 * doc/extend.texi: Fix a typo.
2953 * c-common.h: Remove the prototype for c_expand_body.
2954 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
2955 * tree.h: Remove the prototype for fold_build_call_expr.
2957 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
2959 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
2961 2007-10-13 David Edelsohn <edelsohn@gnu.org>
2963 * config/rs6000/aix53.h: New file.
2964 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
2965 (TARGET_ALTIVEC_ABI): Same.
2966 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
2967 (TARGET_ALTIVEC_ABI): Delete.
2968 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
2969 stanza defaulting to aix5.3.
2971 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2973 * config/i386/i386.md (SI_REG, DI_REG): New constants.
2974 (strmov): Use defined constants.
2975 (cmpstrnsi): Likewise.
2976 * config/i386/i386.c (decide_alg): Use defined constants.
2977 (ix86_expand_strlen): Likewise.
2979 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
2981 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
2982 * var-tracking.c (micro_operation_def): Update comment on u.loc.
2983 (mode_for_reg_attrs, var_lowpart): New functions.
2984 (add_uses): Consider recording a lowpart of LOC for MO_USE.
2985 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
2986 or copy is known, set LOC to the SET that performs the set, instead
2988 (find_src_status, find_src_set_src): Remove LOC parameter.
2989 Replace INSN with the source value.
2990 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
2991 handling MO_SET and MO_COPY. Update the calls to find_src_status
2992 and find_src_set_src.
2994 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2997 * config/i386/i386.md (strmov): Check for esi and edi usage.
2998 * config/i386/i386.c (decide_alg): Check whether we can use a
2999 rep prefix and adjust algorithm choice accordingly.
3000 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
3002 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3004 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
3006 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
3008 * global.c (build_insn_chain): Formatting fixes.
3010 2007-10-12 Richard Guenther <rguenther@suse.de>
3012 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
3013 combining both operands require either both have single uses
3014 or combining to a constant.
3016 2007-10-12 Richard Guenther <rguenther@suse.de>
3019 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
3020 a rhs with side-effects or which is a load.
3021 (forward_propagate_into_cond): Also try combining both operands.
3023 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
3025 PR tree-optimization/33742
3026 * tree-vect-transform.c (vectorizable_operation): Return false
3027 if get_vectype_for_scalar_type for scalar_dest can't be determined.
3028 (vectorizable_call): Same for rhs_type and lhs_type.
3030 2007-10-12 Jakub Jelinek <jakub@redhat.com>
3032 PR tree-optimization/33645
3033 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
3034 pass it to walk_tree.
3035 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
3036 When calling set_is_used on a VAR_DECL, if data is not NULL and
3037 its DECL_UID is in the bitmap, call mark_all_vars_used on its
3038 DECL_INITIAL after clearing the bit in bitmap.
3039 (remove_unused_locals): Adjust mark_all_vars_used callers.
3040 Instead of removing unused global vars from unexpanded_var_list
3041 immediately record them in bitmap, call mark_all_vars_used on
3042 all used global vars from unexpanded_var_list and only purge
3043 global vars that weren't found used even during that step.
3045 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3047 * gthr-posix.h (__gthread_active_init): Create detached instead of
3048 joinable thread when testing whether threads are active on hppa-hpux.
3049 * gthr-posix95.h (__gthread_active_init): Likewise.
3051 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3054 * global.c (build_insn_chain): Include insn that occur between
3057 2007-10-11 Tom Tromey <tromey@redhat.com>
3059 * gengtype-yacc.y: Delete.
3061 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
3063 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
3064 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
3065 function_value_32, function_value_64, function_value_ms_64,
3066 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
3067 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
3070 2007-10-11 Richard Guenther <rguenther@suse.de>
3072 * gcse.c (hash_scan_set): If the next nonnote insn is in
3073 a different basic block insert the set.
3075 2007-10-11 Richard Guenther <rguenther@suse.de>
3078 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
3079 (verify_gimple_expr): Use it to verify pointer-to types for
3082 2007-10-11 Richard Guenther <rguenther@suse.de>
3085 * c-typeck.c (build_array_ref): Do not strip qualifiers from
3086 the array element type.
3088 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3090 PR rtl-optimization/33638
3091 * dse.c (struct insn_info): Remove 'stack_read' field,
3092 add 'stack_pointer_based' field.
3093 (record_store): For a store with non-constant base, record
3094 whether it is stack pointer based.
3095 (scan_insn): For the call to a const function, remove stack
3096 pointer based stores from the list of local active stores.
3097 (scan_reads_nospill): Delete code dealing with const functions.
3099 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
3101 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
3103 (conflict_p, set_conflict, set_conflicts): Likewise.
3104 * global.c (global_alloc): Likewise.
3105 * ra.h: Update prototypes.
3107 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
3109 * opth-gen.awk: Fixed generation of comment stating the origin
3112 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
3115 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3116 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3117 and '%}', respectively.
3120 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3121 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3122 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3124 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3128 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
3129 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3130 syntax for ASSEMBLER_DIALECT.
3131 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3133 2007-10-10 Revital Eres <eres@il.ibm.com>
3135 * modulo-sched.c (check_nodes_order): Dump the final order of
3137 (get_sched_window): Add dump info.
3138 (calculate_order_params): Dump order params of the nodes.
3140 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3143 * ra-conflict.c (record_one_conflict_between_regnos,
3144 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
3145 (global_conflicts): Enhanced incorrect check.
3147 2007-10-09 Geoffrey Keating <geoffk@apple.com>
3149 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
3150 if flag_exceptions is not set.
3151 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
3152 assemble_name rather than incorrectly emulating it.
3154 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
3155 friends are removed from G++.
3157 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3159 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
3160 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
3161 enabling them is redundant. Don't check two times for
3164 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
3166 * ra-conflict.c (record_one_conflict_between_regnos): Revert
3168 (set_conflicts_for_earlyclobber): Likewise.
3169 (global_conflicts): Likewise.
3171 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3173 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3174 and '%}', respectively.
3176 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3178 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3179 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3181 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3184 2007-10-09 Richard Guenther <rguenther@suse.de>
3187 * gimplify.c (canonicalize_component_ref): Honor qualifiers
3188 of referenced structure and component.
3190 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3193 * ra-conflict.c (record_one_conflict_between_regnos,
3194 set_conflicts_for_earlyclobber, global_conflicts): Improved
3196 (global_conflicts): Removed incorrect check.
3198 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
3200 PR tree-optimization/33615
3201 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
3202 if the statement might throw. Fix formatting.
3204 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
3206 PR tree-optimization/33615
3207 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
3208 if the rhs might throw.
3210 2007-10-09 Jan Hubicka <jh@suse.cz>
3212 * invoke.texi (align-threshold, align-loop-iterations): Document.
3213 * final.c: Include cfgloop.h, params.h
3214 (compute_alignments): Dump decisions and compare them with loop
3215 structure; honor given parameters.
3216 (pass_compute_alignments): New dump file.
3217 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
3218 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
3220 2007-10-09 James E. Wilson <wilson@specifix.com>
3222 PR tree-optimization/33655
3224 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
3225 convert it to bitsizetype before size_binop call.
3227 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
3229 PR tree-optimization/33572
3230 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
3231 the absence of a corresponding edge from the exit block.
3233 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
3236 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
3238 (sra_build_assignment): Likewise. Set up mask depending on
3239 precision, not type.
3240 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
3241 computing bit masks.
3242 (sra_build_elt_assignment): Don't view-convert from signed to
3244 (sra_explode_bitfield_assignment): Use bit-field type if
3245 possible. Use BYTES_BIG_ENDIAN.
3247 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
3250 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
3251 the original stmt can throw.
3252 (sra_build_bf_assignment): Fix type mismatch when applying negated
3255 2007-10-08 Geoffrey Keating <geoffk@apple.com>
3257 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
3258 '#pragma mark' to be executed at preprocessing time.
3260 2007-10-08 Ollie Wild <aaw@google.com>
3262 * varasm.c (compare_constant): Removed call to
3263 lang_hooks.expand_constant.
3264 (copy_constants): Removed call to lang_hooks.expand_constant.
3265 (compute_reloc_for_constant): Removed call to
3266 lang_hooks.expand_constant.
3267 (output_addressed_constants): Removed call to
3268 lang_hooks.expand_constant.
3269 (constructor_static_from_elts_p): Removed call to
3270 lang_hooks.expand_constant.
3271 (output_constant): Removed calls to lang_hooks.expand_constant.
3272 * langhooks.h (struct lang_hooks): Removed field expand_constant.
3273 * langhooks-def.h (lhd_return_tree): Removed.
3274 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
3275 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
3276 * langhooks.c (lhd_return_tree): Removed.
3278 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
3280 * combine.c (setup_incoming_promotions): Ensure that
3281 arguments that have not undergone mode promotions do not
3282 incorrectly get marked as being sign- or zero-extended.
3284 2007-10-08 Richard Guenther <rguenther@suse.de>
3289 * fold-const.c (fold_binary): Use correct types in folding
3290 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
3291 and building of RROTATE_EXPR.
3293 2007-10-08 Richard Guenther <rguenther@suse.de>
3298 * fold-const.c (fold_binary): Use the correct types when
3299 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
3300 (fold_binary): Use the correct types when folding
3301 (-A) - B to (-B) - A.
3302 (fold_unary): Use the correct types when folding ~(X).
3304 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3306 * doc/invoke.texi (Wall): fix formatting issues.
3308 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
3310 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
3311 truncated shift counts.
3313 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
3315 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3316 syntax for ASSEMBLER_DIALECT.
3317 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3319 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
3320 Nathan Froyd <froydnj@codesourcery.com>
3322 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
3323 when determining whether to record INCOMING_RETURN_ADDR_RTX.
3325 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
3328 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
3330 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3331 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3332 the function, temporarily point the debug interface to the null one.
3334 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
3336 PR tree-optimization/33655
3338 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
3341 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
3343 PR tree-optimization/33572
3344 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
3345 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
3346 (update_ssa_across_abnormal_edges): ... this. Set slots in the
3348 (copy_edges_for_bb): Handle nonlocal label edges.
3349 (make_nonlocal_label_edges): Deleted.
3350 (optimize_inline_calls): Don't call it.
3352 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
3354 * gthr-single.h: Revert last change.
3356 2007-10-05 Michael Matz <matz@suse.de>
3359 * lower-subreg.c (decompose_multiword_subregs): Use
3360 validate_unshare_change().
3362 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
3364 * ra-conflict.c: Include "sparseset.h".
3365 (conflicts): Change to HOST_WIDEST_FAST_INT.
3366 (allocnos_live): Redefine variable as a sparseset.
3367 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
3369 (allocno_row_words): Removed global variable.
3370 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
3371 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
3372 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
3373 (record_one_conflict_between_regnos): Cache allocno values and reuse.
3375 (record_one_conflict): Update uses of allocnos_live to use
3376 the sparseset routines. Use set_conflicts_p.
3377 (mark_reg_store): Likewise.
3378 (set_reg_in_live): Likewise.
3379 (global_conflicts): Update uses of allocnos_live.
3380 Use the new adjacency list to visit an allocno's neighbors
3381 rather than iterating over all possible allocnos.
3382 Call set_conflicts_p to setup conflicts rather than adding
3384 * global.c: Comments updated.
3385 (CONFLICTP): Delete define.
3386 (regno_compare): New function. Add prototype.
3387 (global_alloc): Sort the allocno to regno mapping according to
3388 which basic blocks the regnos are referenced in. Modify the
3389 conflict bit matrix to a compressed triangular bitmatrix.
3390 Only allocate the conflict bit matrix and adjacency lists if
3391 we are actually going to allocate something.
3392 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
3393 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
3394 allocno's neighbors rather than iterating over all possible allocnos.
3395 (mirror_conflicts): Removed function.
3396 (dump_conflicts): Iterate over regnos rather than allocnos so
3397 that all dump output will be sorted by regno number.
3398 Use the FOR_EACH_CONFLICT macro.
3399 * ra.h: Comments updated.
3400 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
3401 (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
3403 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
3404 (adjacency_list_d, adjacency_iterator_d): New types.
3405 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
3406 adjacency_iter_next, regno_basic_block): New static inline functions.
3407 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
3408 (conflict_p): Add function prototype.
3409 * sparseset.h, sparseset.c: New files.
3410 * Makefile.in (OBJS-common): Add sparseset.o.
3411 (sparseset.o): New rule.
3413 2007-10-05 Richard Guenther <rguenther@suse.de>
3416 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
3419 2007-10-05 Michael Matz <matz@suse.de>
3422 * function.c (match_asm_constraints_1): Check for input
3423 being used in the outputs.
3425 2007-10-05 Richard Guenther <rguenther@suse.de>
3427 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
3429 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
3432 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
3433 subset checks. Make the cost of FPR -> FPR moves depend on
3434 mips_mode_ok_for_mov_fmt_p.
3436 2007-10-04 Doug Kwan <dougkwan@google.com>
3438 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
3439 __gthread_cond_wait_recursive): Add to extend interface for POSI