1 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
3 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
5 2007-11-04 Andrew Pinski <pinskia@gmail.com>
8 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
9 for TRUTH_NOT_EXPR to type.
11 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
13 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
15 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18 * dwarf2out.c (add_calling_convention_attribute): Change
19 second argument. Set calling convention to DW_CC_program for
21 (gen_subprogram_die): Adjust to new prototype for
22 add_calling_convention_attribute.
24 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
26 PR tree-optimization/33987
27 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
29 (vectorizable_reduction): Add type check.
31 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
34 * c-parser.c (c_parser_statement_after_labels): Error if a
35 declaration is parsed after a label.
37 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
40 * reorg.c (emit_delay_sequence): Do not clear the locator on
43 2007-11-03 Jakub Jelinek <jakub@redhat.com>
46 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
49 2007-11-02 Jakub Jelinek <jakub@redhat.com>
51 * config/ia64/ia64.c (struct reg_write_state): Change into
52 unsigned short bitfields rather than unsigned int, decrease
53 first_pred to just 10 bits.
54 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
56 (rws_insn_set, rws_insn_test): New functions.
57 (in_safe_group_barrier): New variable.
58 (rws_update): Remove first argument, always set rws_sum array.
59 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
60 or update rws_sum if !in_safe_group_barrier, adjust rws_update
62 (rtx_needs_barrier): Use rws_insn_test macro.
63 (safe_group_barrier_needed): Don't save/restore rws_sum array,
64 instead set/clear in_safe_group_barrier flag.
66 2007-11-02 Bob Wilson <bob.wilson@acm.org>
68 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
69 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
70 pointer or frame pointer.
71 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
72 (MUST_USE_SJLJ_EXCEPTIONS): Define.
73 (DWARF2_UNWIND_INFO): Define.
74 (INCOMING_RETURN_ADDR_RTX): Define.
75 (DWARF_FRAME_RETURN_COLUMN): Define.
77 2007-11-02 Tom Tromey <tromey@redhat.com>
79 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
82 2007-11-02 Diego Novillo <dnovillo@google.com>
84 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
85 argument from function pointer ANALYZE_EXPR. Update all
87 * cgraph.c (debug_cgraph_node): New.
90 2007-11-02 Jakub Jelinek <jakub@redhat.com>
92 PR rtl-optimization/33648
93 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
94 the newly created basic block.
96 2007-11-01 Richard Guenther <rguenther@suse.de>
98 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
100 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
102 PR rtl-optimization/33828
103 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
106 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
108 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
109 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
110 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
112 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
114 * gcc.c (getenv_spec_function): Escape the environment variable's
117 2007-11-01 Janis Johnson <janis187@us.ibm.com>
119 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
120 show that CSE means common subexpression elimination. Change wording
121 for -fsee and define LCM. Remove capitalization of optimizations
122 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
124 2007-11-01 Janis Johnson <janis187@us.ibm.com>
127 * doc/sourcebuild.texi (Test Directives): Document that xfail
128 has no effect for dg-do except when dg-do-what is "run".
130 2007-11-01 Tom Tromey <tromey@redhat.com>
132 * c-decl.c (grokdeclarator): Set decl source locations.
133 * c-parser.c (c_parser_enum_specifier): Set location.
134 (c_parser_struct_or_union_specifier): Likewise.
136 2007-11-01 Tom Tromey <tromey@redhat.com>
138 * print-tree.c (print_node): Print column number.
140 2007-11-01 Jakub Jelinek <jakub@redhat.com>
143 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
144 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
145 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
147 PR rtl-optimization/33673
148 * gcse.c (cprop_jump): If a conditional jump has been optimized
149 into unconditional jump, make the remaining normal edge fallthru
150 and delete the jump insn.
152 2007-11-01 Ben Elliston <bje@au.ibm.com>
154 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
155 (set_mem_attrs_from_reg): Likewise.
157 2007-11-01 Michael Matz <matz@suse.de>
159 PR tree-optimization/33961
160 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
161 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
162 (add_or_mark_expr): New argument 'store', using it to search
164 (nt_init_block): Adjust calls to add_or_mark_expr.
166 2007-10-31 Jakub Jelinek <jakub@redhat.com>
169 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
170 for the first push_operand.
172 2007-10-31 Revital Eres <eres@il.ibm.com>
174 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
175 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
176 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
177 movmisalignv2sf, vcondv2sf): New.
178 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
179 UNSPEC_EXTODD_V2SF): Define new constants.
180 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
181 paired_emit_vector_cond_expr): New.
182 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
183 * config/rs6000/rs6000.c (paired_expand_vector_move,
184 paired_emit_vector_cond_expr, paired_emit_vector_compare):
186 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
188 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
190 PR tree-optimization/32377
191 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
192 work also for unknown number of iterations.
193 (analyze_subscript_affine_affine): Clean up. Don't fail when the
194 number of iterations is not known.
196 2007-10-31 Richard Guenther <rguenther@suse.de>
199 * fold-const.c (extract_muldiv_1): Make sure to not introduce
200 new undefined integer overflow.
201 (fold_binary): Avoid useless conversion.
203 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
206 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
209 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
211 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
213 * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
214 with -mhard-dfp/-mno-hard-dfp.
215 * config/s390/s390.opt: Likewise.
216 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
219 2007-10-30 Janis Johnson <janis187@us.ibm.com>
221 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
223 2007-10-30 Janis Johnson <janis187@us.ibm.com>
225 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
226 optimization options.
227 (Optimize Options): Add -fdce and -fdse to the list of optimizations
228 enabled by -O. Document -fdce and -fdse.
230 2007-10-30 Jakub Jelinek <jakub@redhat.com>
233 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
234 convert second operand of COMPOUND_EXPR to the original type of
237 2007-10-30 Richard Guenther <rguenther@suse.de>
239 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
240 of loop adding SFTs as virtual operands.
242 2007-10-30 Richard Guenther <rguenther@suse.de>
244 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
246 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
248 PR tree-optimization/32893
249 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
250 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
252 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
254 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
256 (sub_ddmmss): Likewise.
257 (umul_ppmm): Likewise.
258 (udiv_qrnnd): Likewise.
260 2007-10-29 Janis Johnson <janis187@us.ibm.com>
263 * doc/sourcebuild.texi (Test Directives): Document that dg-require
264 directives must come before dg-additional-sources.
266 2007-10-29 Jakub Jelinek <jakub@redhat.com>
268 PR tree-optimization/33723
269 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
270 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
272 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
274 PR tree-optimization/33614
275 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
276 if they can't be reduced to VECTOR_CSTs and aren't legitimate
277 initializer constants.
279 2007-10-29 Richard Guenther <rguenther@suse.de>
281 PR tree-optimization/33870
282 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
283 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
286 2007-10-29 Richard Guenther <rguenther@suse.de>
288 * passes.c (init_optimization_passes): Exchange store_copy_prop
290 * tree-pass.h (pass_store_copy_prop): Remove.
291 * tree-ssa-copy.c (do_store_copy_prop): Remove.
292 (stmt_may_generate-copy): Do not handle store_copy_prop.
293 (get_copy_of_val): Likewise.
294 (set_copy_of_val): Likewise.
295 (copy_prop_visit_assignment): Likewise.
296 (copy_prop_visit_stmt): Likewise.
297 (copy_prop_visit_phi_node): Likewise.
298 (init_copy_prop): Likewise.
299 (execute_copy_prop): Likewise.
300 (do_copy_prop): Remove.
301 (gate_store_copy_prop): Likewise.
302 (store_copy_prop): Likewise.
303 (pass_store_copy_prop): Likewise.
304 (pass_copy_prop): Call execute_copy_prop.
305 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
306 * common.opt (ftree-store-copy-prop): Mark obsolete.
307 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
309 2007-10-29 Ian Lance Taylor <iant@google.com>
311 * ifcvt.c (noce_can_store_speculate_p): New static function.
312 (noce_process_if_block): Call it.
313 (if_convert): Remove recompute_dominance parameter. Change all
316 2007-10-29 Richard Guenther <rguenther@suse.de>
318 * tree-flow-inline.h (get_subvar_at): Use binary search.
319 (get_first_overlapping_subvar): New function to binary search
320 for the first overlapping subvar.
321 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
322 just handle adding subvars for a pointed-to subvar. Optimize
323 and use get_first_overlapping_subvar.
324 (add_vars_for_bitmap): Fold into single caller.
325 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
326 and non pointed-to bits of add_vars_for_offset.
328 2007-10-29 Revital Eres <eres@il.ibm.com>
330 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
332 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
333 Zdenek Dvorak <ook@ucw.cz>
336 reduction support for automatic parallelization.
338 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
340 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
341 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
342 and OMP_ATOMIC_STORE.
343 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
344 * gimple-low.c (lower_stmt): Same.
345 * gimplify.c (gimplify_expr): Same.
346 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
347 gimplify_omp_atomic_mutex): Remove.
348 (gimplify_omp_atomic): Change it to simply gimplify the
349 statement instead of expanding it.
350 * omp-low.c: Add includes to optabs.h, cfgloop.h.
351 (expand_omp_atomic, expand_omp_atomic_pipeline,
352 goa_stabilize_expr, expand_omp_atomic_mutex,
353 expand_omp_atomic_fetch_op): New functions to implement
354 expansion of OMP_ATOMIC.
355 (expand_omp, build_omp_regions_1): Add support for
356 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
357 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
359 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
361 * tree-parloops.c: add include to tree-vectorizer.h.
362 (reduction_info): New structure for reduction.
363 (reduction_list): New list to represent list of reductions per loop.
364 (struct data_arg): New helper structure for reduction.
365 (reduction_info_hash, reduction_info_eq, reduction_phi,
366 initialize_reductions, create_call_for_reduction,
367 create_phi_for_local_result, create_call_for_reduction_1,
368 create_loads_for_reductions, create_final_loads_for_reduction):
370 (loop_parallel_p): Identify reductions, add reduction_list parameter.
371 (separate_decls_in_loop_name): Support reduction variables.
372 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
373 call create_loads_for_reduction for each reduction.
374 (canonicalize_loop_ivs): Identify reductions, add reduction_list
376 (transform_to_exit_first_loop): Add reduction support, add
377 reduction_list parameter.
378 (gen_parallel_loop): Add reduction_list parameter. Add call
379 separate_decls_in_loop with
380 the new argument. Traverse reductions and call
381 initialize_reductions, create_call_for_reduction.
382 (parallelize_loops): Create and delete the reduction list.
383 (add_field_for_name): Change use of data parameter. Add fields for
385 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
386 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
387 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
388 * tree-inline.c (estimate_num_insns_1): add cases for
389 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
390 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
391 * tree-ssa-operands.c (get_addr_dereference_operands):
392 New function. Subroutine of get_indirect_ref_operands.
393 (get_indirect_ref_operands): Call get_addr_dereference_operands.
394 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
397 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
399 * config/cris/cris.c: Include df.h.
400 (cris_address_cost): Add gcc_assert for canonicalization
401 assumptions. For PLUS with MULT or register, correct
402 test for register in other arm. Tweak comments.
404 2007-10-28 Richard Guenther <rguenther@suse.de>
406 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
407 telling if the var is to be treated as points-to location.
408 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
409 (add_virtual_operand): Only recurse into MPTs if aliases
412 2007-10-28 Richard Guenther <rguenther@suse.de>
414 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
415 (add_vars_for_bitmap): Do not recurse further. Only add vars
417 (add_virtual_operand): Re-instantiate loop to add operands for
418 aliases. Recurse into MPTs.
419 (get_indirect_ref_operands): If we fall back to use a pointers
420 SMT, make sure to not prune based on the access offset and size.
422 2007-10-28 Andrew Pinski <pinskia@gmail.com>
425 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
426 the eh information on the statement.
428 2007-10-28 Richard Guenther <rguenther@suse.de>
430 * tree-flow.h (subvar_t): Make it a VEC.
431 (struct subvar): Remove.
432 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
433 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
435 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
436 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
437 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
438 (set_initial_properties): Likewise.
439 (setup_pointers_and_addressables): Likewise.
440 (new_type_alias): Likewise.
441 (create_overlap_variables_for): Likewise.
442 * tree-dfa.c (dump_subvars_for): Likewise.
443 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
444 (get_expr_operands): Likewise.
445 (add_to_addressable_set): Likewise.
446 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
448 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
450 PR tree-optimization/33920
451 * tree-if-conv.c (tree_if_conversion): Force predicate of single
452 successor bb to true when predecessor bb has NULL predicate.
453 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
455 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
457 * config/mips/mips.md: Add combiner patterns for DImode extensions
458 of HImode and QImode truncations. Reformat HImode <- QImode pattern
461 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
464 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
466 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
468 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
469 LIBCALL notes if they are about to be moved to the same insn.
471 2007-10-27 Richard Guenther <rguenther@suse.de>
473 PR tree-optimization/33870
474 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
475 duplication. Remove redundant call to access_can_touch_variable.
476 (add_vars_for_bitmap): New helper for recursing over MPT contents.
477 (add_virtual_operand): Use it.
479 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
482 * pa.h (ASM_PN_FORMAT): Delete define.
484 2007-10-26 Janis Johnson <janis187@us.ibm.com>
486 * doc/invoke.texi (Option Summary, optimizations): Remove
487 -fbounds-check. Add -fassociative-math, -freciprocal-math,
488 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
489 -fsplit-wide-types to match later entry. Break up a long line.
490 (Option Summary, code gen options) Add -fno-stack-limit. Add
491 missing @gol to the end of a line.
492 (Optimization Options): Remove -fbounds-check, which is also
493 documented under Code Generation Options. Remove =n from
494 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
495 to -fcprop-registers to match other options, and say when it is
496 enabled rather than disabled. Remove extra index entry for
497 -fno-cx-limited-range. Add index entries for -fstack-protector
498 and -fstack-protector-all.
499 (Code Gen Options): Add index entry for -ftls-model.
501 2007-10-26 Anatoly Sokolov <aesok@post.ru>
503 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
504 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
505 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
506 expand_epilogue, output_movhi): Don't handle 'main' function.
507 (avr_attribute_table): Add 'OS_task' function attribute.
508 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
510 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
511 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
513 * config/avr/avr.opt (minit-stack): Remove.
515 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
517 * tree-nested.c (get_trampoline_type): Fix thinko.
519 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
522 * tree.c (build_offset_type): Build canonical type based on the
523 TYPE_MAIN_VARIANT of the base type.
525 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
527 * reorg.c (emit_delay_sequence): Move insn locator from the
528 first insn to the sequence.
530 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
532 * ipa-pure-const.c (check_decl): Return immediately when
533 pure_const_state has been set to IPA_NEITHER.
535 2007-10-25 Ira Rosen <irar@il.ibm.com>
537 PR tree-optimization/33833
538 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
539 and convert init to sizetype in inner_base construction.
541 2007-10-25 Richard Guenther <rguenther@suse.de>
543 * tree-flow.h (mem_sym_stats): Remove.
544 (dump_mem_sym_stats_for_var): Declare.
545 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
546 (mem_sym_stats): Move ...
547 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
548 (mem_sym_score): Rename from ...
549 (pscore): ... this. Remove.
550 (dump_mem_sym_stats_for_var): New function. Dump the score, but
552 (compare_mp_info_entries): Make sort stable by disambiguating
555 2007-10-25 Ira Rosen <irar@il.ibm.com>
557 PR tree-optimization/33866
558 * tree-vect-transform.c (vectorizable_store): Check operands of all
559 the stmts in the group of strided accesses. Get def stmt type for each
560 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
562 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
564 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
565 (Yt): Rename register constraint to Y2.
566 * config/i386/sse.md: Use renamed register constraints.
567 * config/i386/mmx.md: Ditto.
568 * config/i386/i386.md: Ditto.
570 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
572 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
574 2007-10-24 Chao-ying Fu <fu@mips.com>
576 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
577 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
579 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
580 Olga Golovanevsky <olga@il.ibm.com>
582 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
583 the compiler that wr.wrap and wr.domain are initialized in
586 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
588 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
589 to print gcov_type values.
591 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
593 * config/avr/avr.h: Do not include progmem_section definition when
594 building with IN_TARGET_LIBS.
596 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
599 * config/mips/mips.c (mips_lo_sum_offset): New structure.
600 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
601 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
602 (mips_orphaned_high_part_p: New functions.
603 (mips_avoid_hazard): Don't check INSN_P here.
604 (mips_avoid_hazards): Rename to...
605 (mips_reorg_process_insns): ...this. Cope with
606 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
607 or turn them into nops.
608 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
609 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
610 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
611 (mips_override_options): Set flag_delayed_branch to 0.
613 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
615 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
616 MIPS-specific implementation details.
617 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
618 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
619 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
620 for targets with movmemsi.
621 (MOVE_BY_PIECES_P): Define.
622 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
623 (mips_block_move_loop): Add a bytes_per_iter argument.
624 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
625 Update call to mips_block_move_loop.
627 2007-10-24 Michael Matz <matz@suse.de>
630 * var-tracking.c (variable_union): Don't break after one loop
631 iteration but only when a difference is found.
632 (dump_variable): Also print DECL_UID.
634 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
636 * ipa-type-escape.h: Expose function
637 is_array_access_through_pointer_and_index.
639 (is_array_access_through_pointer_and_index):
640 Add three new parameters. Add support of
641 POINTER_PLUS_EXPR tree code.
643 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
645 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
646 * tree-pass.h: Add pass_ipa_struct_reorg.
647 * common.opt: Add ipa-struct-reorg flag.
648 * Makefile.in: Add ipa-strcut-reorg.o compilation.
649 * passes.c: Add pass pass_ipa_struct_reorg.
650 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
651 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
653 2007-10-24 Ira Rosen <irar@il.ibm.com>
655 PR tree-optimization/33804
656 * tree-vect-transform.c (vectorizable_operation): Remove the
657 checks that the vectorization is worthwhile from the transformation
660 2007-10-24 Ira Rosen <irar@il.ibm.com>
662 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
663 vectype cannot be determined for the scalar type.
664 (vect_analyze_slp_instance): Likewise.
665 * tree-vect-transform.c (vect_model_reduction_cost): Change the
666 return type to bool. Return false if vectype cannot be determined
668 (vect_get_constant_vectors): Return false if vectype cannot be
669 determined for the scalar type.
670 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
671 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
672 vectorizable_reduction): Likewise.
674 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
676 * config.gcc: For a FreeBSD target, parse the value of ${target}
677 to determine the value of FBSD_MAJOR, instead of adding an
678 explicit check for every possible FreeBSD major version.
680 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
682 PR rtl-optimization/33846
683 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
685 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
687 PR tree-optimization/33860
688 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
689 interleaved accesses in case the dr is inside the inner-loop during
690 outer-loop vectorization.
692 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
694 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
695 Document MEM_POINTER. Replace mentions of "integrated"
696 field with "return_val". Delete outdated stuff.
698 2007-10-23 David Edelsohn <edelsohn@gnu.org>
700 * config/rs6000/rs6000.c (rs6000_override_options): Set
701 rs6000_altivec_abi on AIX.
702 (conditional_register_usage): Set VR20:31 fixed on AIX.
704 2007-10-23 Richard Guenther <rguenther@suse.de>
706 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
709 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
710 David S. Miller <davem@davemloft.net>
712 * df-scan.c (df_get_call_refs): Mark global registers as both a
713 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
715 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
717 PR tree-optimization/33834
718 PR tree-optimization/33835
719 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
720 stmts need to be checked for success seperately.
721 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
722 Remove the check that stmt is not LIVE.
723 (vectorizable_assignment, vectorizable_induction): Likewise.
724 (vectorizable_operation, vectorizable_type_demotion): Likewise.
725 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
727 (vectorizable_live_operation): Check that op is not NULL.
729 2007-10-22 Janis Johnson <janis187@us.ibm.com>
731 * doc/invoke.texi (Optimization Options): In the summary, show
732 that the value for options -falign-jumps, -falign-labels,
733 -falign-loops, -falign-functions, -fsched-stalled-insns, and
734 -fsched-stalled-insns-dep is optional. In the summary, show that
735 -fsched-stalled-insns takes an optional argument and that
736 -fparallelize-loops takes an argument. Add opindex for several
737 optimization options, and fix typos in the opindex commands for
738 several others. In the descriptions for -fsched-stalled-insns
739 and -fsched-stalled-insns-dep, show the options with and without
742 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
744 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
746 * config/avr/avr.h (LINK_SPEC): Likewise.
747 (CRT_BINUTILS_SPECS): Likewsie.
748 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
750 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
752 PR rtl-optimization/33644
753 * cfgcleanup.c: Do not include dce.h.
754 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
755 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
756 * dce.c (something_changed): Delete.
757 (libcall_dead_p): New predicate.
758 (delete_unmarked_insns): Use it to delete dead libcalls.
759 Deal with REG_LIBCALL and REG_RETVAL notes.
760 (prescan_libcall_for_dce): New function.
761 (prescan_insns_for_dce): Use it to deal with libcalls.
762 (mark_reg_dependencies): Do nothing special for libcalls.
763 (dce_process_block): Likewise.
764 (fast_dce): Delete unused local variable.
765 (run_fast_dce): Do not return a value.
766 * dce.h (struct df): Delete.
767 (run_fast_dce): Adjust prototype.
768 * optabs.c (libcall_id): Delete.
769 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
770 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
771 * reload1.c (reload): Delete REG_LIBCALL_ID case.
772 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
773 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
774 notes instead of REG_LIBCALL_ID notes.
775 * reg-notes.def (LIBCALL_ID): Delete.
776 * Makefile.in (see.o): Add dce.h dependency.
777 (cfgcleanup.o): Remove dce.h dependency.
779 2007-10-22 Michael Matz <matz@suse.de>
781 PR tree-optimization/33855
782 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
785 2007-10-22 Ira Rosen <irar@il.ibm.com>
787 PR tree-optimization/33854
788 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
789 FLOAT_EXPR to the list of promotion operations.
791 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
795 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
796 (print_reg): Print register prefix only with AT&T asm syntax.
797 Support pc_rtx for RIP register.
798 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
799 relative addressing. Always print segment register prefix with AT&T
800 asm syntax and never with Intel asm syntax.
801 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
802 Fix prefix for 16-byte XFmode operands.
803 (output_addr_const_extra): Support Intel asm syntax.
804 (x86_file_start): Don't use register prefix with Intel asm syntax.
805 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
806 ("return_internal_long"): Fix Intel asm syntax output.
807 ("set_got_rex64"): Support Intel asm syntax.
808 ("set_rip_rex64"): Likewise.
809 ("set_got_offset_rex64"): Likewise.
810 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
812 ("*tls_global_dynamic_64"): Likewise.
813 ("*tls_local_dynamic_base_64"): Likewise.
814 ("*load_tp_si")("*load_tp_di"): Likewise.
815 ("*add_tp_si")("*add_tp_di"): Likewise.
816 ("*tls_dynamic_lea_64"): Likewise.
817 ("*sibcall_value_1_rex64_v"): Likewise.
818 ("stack_tls_protect_set_si"): Likewise.
819 ("stack_tls_protect_set_di"): Likewise.
820 ("stack_tls_protect_test_si"): Likewise.
821 ("stack_tls_protect_test_di"): Likewise.
822 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
824 ("*movv2sf_internal_rex64"): Likewise.
825 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
826 (__get_cpuid_max): Likewise.
828 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
830 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
831 the STRICT_P argument type "bool" rather than "int".
832 (mips_legitimate_address_p): Likewise.
833 (fp_register_operand, lo_operand): Delete.
834 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
835 (mips_emit_scc): Rename to...
836 (mips_expand_scc): ...this.
837 (gen_conditional_branch): Rename to...
838 (mips_expand_conditional_branch): ...this.
839 (gen_conditional_move): Rename to...
840 (mips_expand_conditional_move): ...this.
841 (mips_gen_conditional_trap): Rename to...
842 (mips_expand_conditional_trap): ...this and take an rtx code instead
843 of an operands array.
844 (mips_expand_call): Give the SIBCALL_P argument type "bool"
846 (mips_emit_fcc_reload): Rename to...
847 (mips_expand_fcc_reload): ...this.
848 (init_cumulative_args): Rename to...
849 (mips_init_cumulative_args): ...this and remove the libname argument.
850 (function_arg_advance): Rename to...
851 (mips_function_arg_advance): ...this.
852 (function_arg): Rename to...
853 (mips_function_arg): ...this and use "rtx" instead of
855 (function_arg_boundary): Rename to...
856 (mips_function_arg_boundary): ...this.
857 (mips_expand_unaligned_load): Rename to...
858 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
859 and BITPOS arguments type "HOST_WIDE_INT".
860 (mips_expand_unaligned_store): Rename to...
861 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
862 and BITPOS arguments type "HOST_WIDE_INT".
863 (override_options): Rename to...
864 (mips_override_options): ...this.
865 (print_operand): Rename to...
866 (mips_print_operand): ...this.
867 (print_operand_address): Rename to...
868 (mips_print_operand_address): ...this.
869 (mips_output_ascii): Remove the PREFIX argument.
870 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
872 (mips_can_use_return_insn): Return a "bool" rather than an "int".
873 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
874 of "struct rtx_def *".
875 (mips_secondary_reload_class): Give the IN_P argument type "bool"
877 (build_mips16_call_stub): Delete.
878 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
879 (mips_use_ins_ext_p): Give the second and third arguments type
880 "HOST_WIDE_INT" rather than "rtx".
881 * config/mips/mips.h: Update after the above changes. Tweak comments
883 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
884 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
885 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
886 element type from "char" to "bool".
887 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
888 (mips_cpu_info_table): Delete.
889 * config/mips/mips.md: Update after the above changes. Tweak some
891 * config/mips/mips-ps-3d.md: Likewise.
892 * config/mips/mips.c: Tweak comments and formatting.
893 Use NULL-like macros rather than 0 in various places.
894 (mips_section_threshold): Rename to...
895 (mips_small_data_threshold): ...this and give it an unsigned type.
896 (num_source_filenames): Remove explicit initialization.
897 (sdb_label_count): Likewise.
898 (sym_lineno): Delete.
899 (set_noat): Make static.
900 (mips_branch_likely): Likewise, and give it type "bool".
901 (mips_isa_info): Rename to...
902 (mips_isa_option_info): ...this.
903 (mips_flag_delayed_branch): Rename to...
904 (mips_base_delayed_branch): ...this.
905 (mips_split_addresses): Delete.
906 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
907 element type from "char" to "bool".
908 (mips_regno_to_class): Add an explicit array size.
909 (mips16_flipper): Change from type "int" to type "bool".
910 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
911 (mips_tls_operand_p): Rename to...
912 (mips_tls_symbol_p): ...this.
913 (mips_global_symbol_p): Remove redundant "const".
914 (mips_offset_within_alignment_p): Simplify.
915 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
916 to STRICT_P and give it type bool.
917 (mips_valid_base_register_p): Likewise.
918 (mips_classify_address): Likewise.
919 (mips_legitimate_address_p): Likewise.
920 (mips16_unextended_reference_p): Take the offset as an
921 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
922 (mips_const_insns): Use IN_RANGE.
923 (mips_force_temporary): Remove an unnecessary copy_rtx.
924 (mips16_gp_pseudo_reg): Simplify.
925 (mips_split_symbol): Remove an unnecessary copy_rtx.
926 (mips_legitimize_tls_address): Only create registers if we need them.
927 (mips_legitimize_address): Use mips_split_plus.
928 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
929 variable COST to NUM_OPS.
930 (mips_legitimize_move): Use gen_lowpart.
931 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
932 (m16_check_op): Use IN_RANGE.
933 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
934 (mips_split_doubleword_move): Pass booleans to mips_subword.
935 (mips_output_move): Store the mode in a local variable.
936 Explicitly assert that this function does not deal with
937 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
938 cases more consistent.
939 (mips_relational_operand_ok_p): Rename to...
940 (mips_int_order_operand_ok_p): ...this.
941 (mips_canonicalize_comparison): Rename to...
942 (mips_canonicalize_int_order_test): ...this.
943 (mips_emit_int_relational): Rename to...
944 (mips_emit_int_order_test): ...this. Store the mode in a local
946 (mips_reverse_fp_cond_p): Rename to...
947 (mips_reversed_fp_cond): ...this.
948 (mips_emit_compare): Make the order of the statements more consistent.
949 (mips_emit_scc): Rename to...
950 (mips_expand_scc): ...this.
951 (gen_conditional_branch): Rename to...
952 (mips_expand_conditional_branch): ...this.
953 (gen_conditional_move): Rename to...
954 (mips_expand_conditional_move): ...this. Build the condition
955 separately from the main pattern.
956 (mips_gen_conditional_trap): Rename to...
957 (mips_expand_conditional_trap): ...this and take an rtx code instead
958 of an operands array. Simplify.
959 (init_cumulative_args): Rename to...
960 (mips_init_cumulative_args): ...this. Use memset rather than a
961 copy from a zeroed static. Use prototype_p and stdarg_p.
962 (mips_arg_info): Rename to...
963 (mips_get_arg_info): ...this and put the INFO argument first.
964 (function_arg): Rename to...
965 (mips_function_arg): ...this and use "rtx" instead of
966 "struct rtx_def *". Only split structures into chunks if
967 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
968 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
969 comparison with REAL_TYPE. Rename local variable REG to REGNO
970 and make it unsigned.
971 (function_arg_advance): Rename to...
972 (mips_function_arg_advance): ...this.
973 (function_arg_boundary): Rename to...
974 (mips_function_arg_boundary): ...this.
975 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
977 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
978 comparison with REAL_TYPE.
979 (mips_function_value): Remove the FUNC argument. Rename local
980 variable UNSIGNEDP to UNSIGNED_P.
981 (mips_return_in_memory): Use IN_RANGE.
982 (mips_setup_incoming_varargs): Pass a boolean rather than an int
983 to FUNCTION_ARG_ADVANCE.
984 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
985 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
986 SIZE and RSIZE if needed.
987 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
989 (build_mips16_function_stub): Rename to...
990 (mips16_build_function_stub): ...this.
991 (build_mips16_call_stub): Rename to...
992 (mips16_build_call_stub): ...this. Make static, and return a
993 "bool" rather than an "int". Rename the ARG_SIZE argument to
994 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
995 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
996 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
998 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
999 are not sibling ones.
1000 (mips_emit_fcc_reload): Rename to...
1001 (mips_expand_fcc_reload): ...this.
1002 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
1004 (mips_expand_unaligned_load): Rename to...
1005 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1006 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
1008 (mips_expand_unaligned_store): Rename to...
1009 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1010 and BITPOS arguments type "HOST_WIDE_INT".
1011 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
1012 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
1014 (mips_init_split_addresses): Replace with...
1015 (mips_split_addresses_p): ...this new function.
1016 (mips_init_relocs): Check mips_split_addresses_p () rather than
1017 mips_split_addresses. Always initialize mips_split_p with booleans.
1018 (print_operand_reloc): Rename to...
1019 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
1021 (print_operand): Rename to...
1022 (mips_print_operand): ...this.
1023 (print_operand_address): Rename to...
1024 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
1025 (mips_in_small_data_p): Simplify.
1026 (mips_output_ascii): Remove the PREFIX argument and "register"
1027 keywords. Use the STRING parameter directly and cast to
1029 (mips16e_collect_argument_save_p): Use IN_RANGE.
1030 (mips_function_has_gp_insn): Simplify.
1031 (mips_set_return_address): Use BITSET_P.
1032 (mips_restore_gp): Use a separate statement to pick the base
1034 (mips_output_function_prologue): Use a local FRAME variable.
1035 (mips_save_reg): Pass booleans to mips_subword.
1036 (mips_expand_prologue): Use a local FRAME variable. Use
1037 cprestore_size to detect when .cprestore is needed.
1038 (mips_restore_reg): Use GP_REG_FIRST.
1039 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1040 rather than "int". Use local FRAME and REGNO variables.
1041 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1042 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1044 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
1045 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1046 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
1047 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
1048 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
1049 (builtin_description): Rename to...
1050 (mips_builtin_description): ...this.
1051 (mips_bdesc): Rename to...
1052 (mips_ps_bdesc): ...this.
1053 (sb1_bdesc): Rename to...
1054 (mips_sb1_bdesc): ...this.
1055 (dsp_bdesc): Rename to...
1056 (mips_dsp_bdesc): ...this.
1057 (dsp_32only_bdesc): Rename to...
1058 (mips_dsp_32only_bdesc): ...this.
1059 (bdesc_map): Rename to...
1060 (mips_bdesc_map): ...this.
1061 (bdesc_arrays): Rename to...
1062 (mips_bdesc_arrays): ...this.
1063 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
1064 Tweak error message.
1065 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
1066 Rename local variables I and J to OPNO and ARGNO respectively.
1067 Assert that the number of arguments is no more than the number of
1069 (mips_expand_builtin_compare): Use an array of arguments rather
1070 than an array of operands. Assert that the number of operands is
1072 (add_constant): Rename to...
1073 (mips16_add_constant): ...this. Use XNEW.
1074 (dump_constants_1): Rename to...
1075 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
1076 (dump_constants): Rename to...
1077 (mips16_emit_constants): ...this.
1078 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
1079 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
1080 Assign mips16_p to was_mips16_p.
1081 (mips_parse_cpu): Tweak warning message.
1082 (override_options): Rename to...
1083 (mips_override_options): ...this. Move the mips_cost initialization
1084 out of the "shared with GAS" block. Quote option names in error
1086 (mips_conditional_register_usage): Make local variable REGNO unsigned.
1087 (mips_order_regs_for_local_alloc): Remove register keyword.
1089 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1091 * system.h (IN_RANGE): Cast each argument individually.
1093 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1095 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
1096 MIPS16 code unless using o32 or o64.
1098 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1100 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
1101 for modes smaller than 4 bytes.
1102 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
1105 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1107 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
1108 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
1109 (ASM_OUTPUT_ALIGNED_BSS): Delete.
1110 * config/mips/mips.c (mips_output_aligned_bss): Delete.
1112 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1114 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
1115 sibling calls to "mips16" functions if the function satisfies
1116 const_call_insn_operand.
1118 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1120 * config/mips/mips.c (mips_va_start): Fix types in calls
1123 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1125 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
1128 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1130 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
1131 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
1132 instead of checking mips_isa.
1134 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1136 * doc/invoke.texi (-mpaired-single): Don't say that the option
1137 requires 64-bit code.
1138 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
1139 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
1140 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
1141 V2SF if ISA_MIPS32R2.
1142 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
1143 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
1144 to ISA_HAS_NMADD_NMSUB.
1145 (mips_split_doubleword_move): Handle V2SF.
1146 (mips_modes_tieable_p): New function.
1147 (override_options): Report a warning rather than an error when
1148 -mpaired-single is used on ISAs that don't support it; use
1149 ISA_HAS_PAIRED_SINGLE to check that case.
1150 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
1151 and DF move splitters with a single MOVE64 splitter, thereby adding
1152 a V2SF splitter too.
1153 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
1154 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
1155 (HALFMODE): Add V2SF.
1156 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
1157 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
1158 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
1159 (movv2sf_hardfloat_32bit): New pattern.
1160 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
1161 TARGET_DOUBLE_FLOAT conditions.
1163 2007-10-20 Jakub Jelinek <jakub@redhat.com>
1165 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
1166 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
1167 64-bit register in 64-bit libgcc.
1169 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
1171 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
1172 * config/avr/avr.h (LINK_SPEC): Likewise.
1173 (CRT_BINUTILS_SPECS): Likewsie.
1174 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1176 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1178 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
1179 and -Wfatal-errors together.
1181 2007-10-20 Alan Modra <amodra@bigpond.net.au>
1184 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
1185 change for vrsave, ie restore after frame pop.
1187 2007-10-19 David S. Miller <davem@davemloft.net>
1189 * config/sparc/niagara2.md: Fix copyright notice.
1191 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
1193 PR tree-optimization/23820
1194 PR tree-optimization/24309
1195 PR tree-optimization/33766
1196 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
1197 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
1198 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
1199 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
1200 * tree-loop-linear.c (perfect_loop_nest_depth): New.
1201 (linear_transform_loops): Use perfect_loop_nest_depth.
1202 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
1203 should have a single condition: their exit.
1205 2007-10-19 Richard Guenther <rguenther@suse.de>
1209 * stor-layout.c (layout_type): Assert that aggregates do not
1210 have their alias sets set.
1211 * alias.c (get_alias_set): Return alias set zero for incomplete
1212 types, return the alias set of the element for incomplete array
1213 types, but do not remember these.
1215 2007-10-19 Richard Guenther <rguenther@suse.de>
1218 2007-10-19 Richard Guenther <rguenther@suse.de>
1221 * tree.c (build_array_type): Do not re-layout unbound array
1224 2007-10-19 Richard Guenther <rguenther@suse.de>
1227 * tree.c (build_array_type): Do not re-layout unbound array
1230 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1232 * config/mips/mips.c (mips_canonicalize_comparison): Check
1233 mips_relational_operand_ok_p before trying to rewrite the test.
1234 Only calculate PLUS_ONE if needed.
1235 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
1238 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1240 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
1243 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1245 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
1246 the call uses the incoming value of $2.
1248 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1250 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
1251 rather then gen_rtx_MEM.
1252 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
1254 (mips_set_return_address): Likewise.
1255 (mips_restore_gp): Likewise.
1257 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1259 * config/mips/mips.c (gpr_mode): Delete.
1260 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
1261 instead of gpr_mode.
1262 (mips_for_each_saved_reg): Likewise.
1263 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1264 (override_options): Don't initialize gpr_mode.
1265 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
1267 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1269 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
1271 (mips_class_max_nregs): Calculate the smallest consituent register
1272 size and use that to determine an upper bound on the number of
1275 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1277 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
1279 (mips_expand_epilogue): ...here.
1280 (mips_mdebug_abi_name): New function, split out from...
1281 (mips_file_start): ...here.
1282 (mips_hard_regno_mode_ok_p): New function, split out from...
1283 (override_options): ...here.
1284 (mips_expand_builtin_1): New function, split out from...
1285 (mips_expand_buitin): ...here. Abort if we don't recognize
1288 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1290 * config/mips/mips.c (build_mips16_function_stub): Load the
1291 target address into $1 before transfering the arguments.
1292 Don't use ".set noreorder".
1293 (build_mips16_call_stub): Likewise.
1295 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1297 * config/mips/mips.c (mips_output_32bit_xfer): New function.
1298 (mips_output_64bit_xfer): Likewise.
1299 (mips16_fp_args): Rename to...
1300 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
1301 with a DIRECTION argument. Use mips_output_32bit_xfer and
1302 mips_output_64bit_xfer.
1303 (build_mips16_function_stub): Update accordingly.
1304 (mips16_fpret_double): Delete.
1305 (build_mips16_call_stub): Update after above changes.
1306 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
1307 of mips16_fpret_double. Use GP_REG_RETURN.
1309 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1311 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
1312 use asm_out_file instead.
1313 (build_mips16_function_stub): Likewise.
1314 (build_mips16_call_stub, mips_output_function_prologue): Update
1317 2007-10-18 David S. Miller <davem@davemloft.net>
1319 Add Niagara-2 support.
1320 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
1321 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
1322 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
1323 (include): Add inclusion of niagara2.md
1324 * config/sparc/sparc.c (niagara2_costs): New.
1325 (sparc_override_options): Add niagara2 entry to cpu_default[]
1326 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
1327 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
1328 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
1329 (sparc_initialize_trampoline): Handle niagara2 like niagara.
1330 (sparc64_initialize_trampoline): Likewise.
1331 (sparc_use_sched_lookahead): Likewise.
1332 (sparc_issue_rate): Likewise.
1333 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
1335 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
1336 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
1337 TARGET_CPU_niagara2.
1338 (PROCESSOR_NIAGARA2): New.
1339 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
1340 (BRANCH_COST): Likewise.
1341 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
1342 * config/sparc/sol2.h: Likewise.
1343 * config/sparc/niagara2.md: New file.
1345 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1347 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
1349 (mips_compute_frame_info): Remove associated code.
1350 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
1352 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1354 * config/mips/mips-protos.h (compute_frame_size): Delete.
1355 * config/mips/mips.h: Update comments.
1356 * config/mips/mips.c (mips_frame_info): Remove initialized.
1357 (compute_frame_size): Rename to...
1358 (mips_compute_frame_info): ...this and make static. Remove the
1359 SIZE argument and return no value. Remove the setting of initialized.
1360 Update rest of file accordingly.
1361 (mips_set_return_address): Don't call compute_frame_size.
1362 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
1363 Don't call compute_frame_size.
1365 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1367 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
1368 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
1369 mips_hard_frame_pointer_required.
1370 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
1371 large MIPS16 frames.
1372 * config/mips/mips.c (mips_frame_pointer_required): New function.
1374 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1376 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
1377 and hard_frame_pointer_offset.
1378 (mips_debugger_offset): Use hard_frame_pointer_offset.
1379 (mips16e_collect_argument_save_p): Likewise.
1380 (compute_frame_size): Initialize arg_pointer_offset and
1381 hard_frame_pointer_offset.
1382 (mips_initial_elimination_offset): Use them.
1383 (mips_output_function_prologue): Use hard_frame_pointer_offset.
1384 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1386 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1388 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
1390 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
1391 "unsigned int" rather than "int" and put them with the other
1392 register-related fields. Put expanded comments above fields
1393 rather than to their right.
1394 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
1395 with a NUM_REGS_PTR argument.
1396 (mips16e_save_restore_pattern_p): Update accordingly.
1397 (compute_frame_size): Clarify frame diagram. Rewrite.
1399 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1401 * config/mips/mips-ftypes.def: New file.
1402 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
1403 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
1404 (mips_function_type): Redefine using mips-ftypes.def.
1405 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
1406 (mips_builtin_vector_type): New function.
1407 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
1408 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
1409 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
1410 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
1412 (mips_build_function_type): New function.
1413 (mips_init_builtins): Use it to create types lazily.
1415 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1417 * config/mips/mips.h (set_volatile): Delete.
1418 * config/mips/mips.c (set_volatile): Delete.
1419 (mips_print_operand_punctuation): New function, split out from
1420 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
1421 Use the same character ordering in the code and the comments.
1422 Use a recursive call to handle '*'. Abort on unknown characters.
1423 (mips_init_print_operand_punct): New function, split out from
1425 (mips_print_int_branch_condition): New function, split out from
1426 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
1427 to report unexpected codes.
1428 (mips_print_float_branch_condition): New function, split out from
1429 print_operand. Use output_operand_lossage to report unexpected codes.
1430 (print_operand): Rework to use a case statement. Use the
1431 same letter ordering in the code and the comments. Use
1432 output_operand_lossage to report unexpected codes and
1433 reverse_condition to handle inverted branch conditions.
1434 (override_options): Use mips_init_print_operand_punct.
1436 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1438 * config/mips/mips.h: Move variable declarations to end of file and
1439 enclose them all in #ifndef USED_FOR_TARGET.
1440 * config/mips/mips.c: Reorder functions into more logical groups,
1441 and so that callees appear before callers. Put the targetm
1442 initializer at the end of the file. Remove forward static
1443 declarations where possible.
1444 (mips_init_builtins): Add "static" to definition.
1445 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
1447 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1449 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
1450 (TARGET_MAX_ANCHOR_OFFSET): Delete.
1451 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
1452 (mips_set_mips16_mode): Initialize min_anchor_offset and
1453 max_anchor_offset directly to constants.
1455 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1457 * config/mips/mips.c: Delete trailing whitespace.
1459 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1461 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
1462 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
1464 * config/mips/mips.md (load_call<mode>): Don't make the unspec
1465 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
1467 2007-10-18 David Daney <ddaney@avtrex.com>
1469 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
1470 reg_offset variable to calculate register locations.
1472 2007-10-18 Richard Guenther <rguenther@suse.de>
1474 * tree-ssa.c (uid_ssaname_map_eq): New function.
1475 (uid_ssaname_map_has): Likewise.
1476 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
1477 * tree-flow.h (struct gimple_df): Make default_defs a
1479 * tree-dfa.c (gimple_default_def): Deal with it.
1480 (set_default_def): Likewise.
1482 2007-10-18 Richard Guenther <rguenther@suse.de>
1484 * tree-flow.h (struct gimple_df): Make referenced_vars
1486 (uid_decl_map_eq): Declare.
1487 (uid_decl_map_hash): Likewise.
1488 * tree-ssa.c (uid_decl_map_eq): New function.
1489 (uid_decl_map_hash): Likewise.
1490 (init_tree_ssa): Make referenced_vars a uid_decl_map.
1491 * tree-flow-inline.h (first_referenced_var): Deal with
1492 the referenced_vars representation change.
1493 (next_referenced_var): Likewise.
1494 * tree-dfa.c (referenced_var_lookup): Likewise.
1495 (referenced_var_check_and_insert): Likewise.
1496 (remove_referenced_var): Likewise.
1498 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
1500 * config/mips/mips.c (mips_dwarf_register_span): New.
1501 (TARGET_DWARF_REGISTER_SPAN): Define.
1503 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
1505 * config.gcc : update score-*-elf(extra_objs).
1506 * config/score/mac.md : Remove.
1507 * config/score/misc.md : Remove.
1508 * config/score/score7.md : Remove.
1509 * config/score/score-mdaux.h : Remove.
1510 * config/score/score-mdaux.c : Remove.
1511 * config/score/score-version.h : Remove.
1512 * config/score/score-generic.md : New.
1513 * config/score/score3.h : New.
1514 * config/score/score3.c : New.
1515 * config/score/score7.h : New.
1516 * config/score/score7.c : New.
1517 * config/score/mul-div.S : add flush_cache score3 support.
1518 * config/score/elf.h : Fix some typos.
1519 * config/score/score.md : merge score3 and score7 pattern.
1520 * config/score/score.c : use to seperate which target it used.
1521 * config/score/score.h : use to seperate the target macro.
1522 * config/score/score.opt : remove -mmac option , add -mscore3,
1523 -mscore3d and -march OPTION support.
1525 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
1527 * cfgexpand.c (expand_stack_vars): Add checking to make sure
1528 that the offset of a variable is not greater than the size
1531 2007-10-17 Anatoly Sokolov <aesok@post.ru>
1533 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
1534 atmega88p, atmega168p and atmega328p devices.
1535 * config/avr/avr.h (LINK_SPEC): (Ditto.).
1536 (CRT_BINUTILS_SPECS): (Ditto.).
1537 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1539 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1541 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
1543 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
1544 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
1545 (print_insn): Move declaration to ...
1546 * rtl.h (print_insn): ... here.
1548 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1550 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
1551 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
1552 m68k_sched_branch_type): Move declarations to ...
1553 * config/m68/m68k-protos.h: ... here.
1555 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1557 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
1559 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
1561 * config/avr/avr.c (avr_mcu_types): Add attiny48.
1562 * config/avr/avr.h (LINK_SPEC): Likewise.
1563 (CRT_BINUTILS_SPECS): Likewsie.
1564 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1566 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
1568 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
1569 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
1570 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1572 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
1575 * reg-stack.c (move_for_stack_reg): Swap input argument of
1576 UNSPEC_TAN insn to the top of the stack.
1578 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
1581 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
1582 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
1583 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
1584 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
1585 immediate shift value.
1586 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
1587 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
1588 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
1589 Remove macros for !__OPTIMIZE__ case.
1591 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
1593 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
1595 (perform_var_substitution): Only DFS from real nodes. Don't test
1597 (unite_pointer_equivalences): Fix broken test.
1599 2007-10-17 Alan Modra <amodra@bigpond.net.au>
1601 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
1602 altivec sp_offset. Rearrange sp_offset assignments to
1603 correspond to stack adjustments. Use frame_reg_rtx for
1604 SPE register restores. Correct SPE stack adjustment.
1606 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1608 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
1609 * toplev.c (check_global_declaration_1): Use appropriate warning
1610 option instead of unnamed warning.
1611 * stor-layout.c (layout_decl): Likewise.
1612 * c-typeck.c (build_conditional_expr): Likewise.
1613 (build_compound_expr): Fix wrong comment.
1614 (build_binary_op): Use appropriate warning option instead of
1616 * cfgexpand.c (tree_expand_cfg): Likewise.
1617 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1618 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
1619 (execute_warn_function_return): Likewise.
1620 * stmt.c (warn_if_unused_value): Likewise.
1622 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
1624 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
1625 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
1627 (CRT_BINUTILS_SPECS): Likewsie.
1628 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1630 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
1633 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
1635 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1637 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
1638 (fini_dce): Only release them for the fast pass.
1639 (end_ud_dce): Delete.
1640 (rest_of_handle_ud_dce): Do not modify df_in_progress.
1641 Call fini_dce instead of end_ud_dce.
1642 (rest_of_handle_fast_dce): Do not modify df_in_progress.
1643 (run_fast_df_dce): Reset df_in_progress to false on exit.
1645 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
1646 Maxim Kuvyrkov <maxim@codesourcery.com>
1648 * target.h (unspec_may_trap_p): New target hook.
1649 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
1650 * targhooks.c (default_unspec_may_trap_p): Default implementation of
1652 * targhooks.h (default_unspec_may_trap_p): Declare it.
1653 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
1654 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
1655 * rtl.h (may_trap_p_1): Declare.
1657 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
1658 override default hook implementation.
1659 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
1662 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1664 * doc/invoke.texi (Wextra): Move it just after Wall, list the
1665 options enabled by Wextra and mention Wuninitialized.
1667 2007-10-15 Nigel Stephens <nigel@mips.com>
1669 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
1671 2007-10-15 Jakub Jelinek <jakub@redhat.com>
1673 PR tree-optimization/33136
1674 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
1676 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
1678 PR tree-optimization/33735
1679 PR tree-optimization/33572
1680 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
1681 2007-10-09's change.
1682 * except.c (duplicate_eh_regions): Don't look for prev_try
1683 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
1685 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
1688 * tree-inline.c (copy_bb): Use bsi_replace to replace a
1689 __builtin_va_arg_pack-containing call stmt.
1691 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
1693 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
1696 2007-10-15 Jakub Jelinek <jakub@redhat.com>
1698 PR tree-optimization/33619
1699 * tree-ssa-ter.c (is_replaceable_p): Return false for all
1702 2007-10-15 David Edelsohn <edelsohn@gnu.org>
1704 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
1706 2007-10-15 Richard Guenther <rguenther@suse.de>
1708 * fold-const.c (extract_array_ref): Remove.
1709 (fold_comparison): Handle POINTER_PLUS_EXPR with the
1710 generic address expression comparison folding. Remove
1711 the folding that used extract_array_ref.
1713 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1716 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
1717 speculation type of insn can be changed before trying to do that.
1719 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1721 * dse.c (struct insn_info): Add 'frame_read' field.
1722 (scan_insn): For the call to a const function, set frame_read if
1723 reload has been run.
1724 If the insn reads the frame, kill the frame related stores.
1725 (scan_reads_nospill): Likewise.
1727 2007-10-14 Jason Merrill <jason@redhat.com>
1729 * tree-eh.c (optimize_double_finally): Don't assume that the
1730 cleanup we're duplicating is only one statement.
1732 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
1734 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
1735 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
1736 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
1737 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
1738 tree-vect-transform.c: Fix comment typos.
1739 * doc/extend.texi: Fix a typo.
1741 * c-common.h: Remove the prototype for c_expand_body.
1742 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
1743 * tree.h: Remove the prototype for fold_build_call_expr.
1745 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
1747 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
1749 2007-10-13 David Edelsohn <edelsohn@gnu.org>
1751 * config/rs6000/aix53.h: New file.
1752 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
1753 (TARGET_ALTIVEC_ABI): Same.
1754 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
1755 (TARGET_ALTIVEC_ABI): Delete.
1756 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
1757 stanza defaulting to aix5.3.
1759 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
1761 * config/i386/i386.md (SI_REG, DI_REG): New constants.
1762 (strmov): Use defined constants.
1763 (cmpstrnsi): Likewise.
1764 * config/i386/i386.c (decide_alg): Use defined constants.
1765 (ix86_expand_strlen): Likewise.
1767 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
1769 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
1770 * var-tracking.c (micro_operation_def): Update comment on u.loc.
1771 (mode_for_reg_attrs, var_lowpart): New functions.
1772 (add_uses): Consider recording a lowpart of LOC for MO_USE.
1773 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
1774 or copy is known, set LOC to the SET that performs the set, instead
1776 (find_src_status, find_src_set_src): Remove LOC parameter.
1777 Replace INSN with the source value.
1778 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
1779 handling MO_SET and MO_COPY. Update the calls to find_src_status
1780 and find_src_set_src.
1782 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
1785 * config/i386/i386.md (strmov): Check for esi and edi usage.
1786 * config/i386/i386.c (decide_alg): Check whether we can use a
1787 rep prefix and adjust algorithm choice accordingly.
1788 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
1790 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1792 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
1794 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
1796 * global.c (build_insn_chain): Formatting fixes.
1798 2007-10-12 Richard Guenther <rguenther@suse.de>
1800 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
1801 combining both operands require either both have single uses
1802 or combining to a constant.
1804 2007-10-12 Richard Guenther <rguenther@suse.de>
1807 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
1808 a rhs with side-effects or which is a load.
1809 (forward_propagate_into_cond): Also try combining both operands.
1811 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
1813 PR tree-optimization/33742
1814 * tree-vect-transform.c (vectorizable_operation): Return false
1815 if get_vectype_for_scalar_type for scalar_dest can't be determined.
1816 (vectorizable_call): Same for rhs_type and lhs_type.
1818 2007-10-12 Jakub Jelinek <jakub@redhat.com>
1820 PR tree-optimization/33645
1821 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
1822 pass it to walk_tree.
1823 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
1824 When calling set_is_used on a VAR_DECL, if data is not NULL and
1825 its DECL_UID is in the bitmap, call mark_all_vars_used on its
1826 DECL_INITIAL after clearing the bit in bitmap.
1827 (remove_unused_locals): Adjust mark_all_vars_used callers.
1828 Instead of removing unused global vars from unexpanded_var_list
1829 immediately record them in bitmap, call mark_all_vars_used on
1830 all used global vars from unexpanded_var_list and only purge
1831 global vars that weren't found used even during that step.
1833 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1835 * gthr-posix.h (__gthread_active_init): Create detached instead of
1836 joinable thread when testing whether threads are active on hppa-hpux.
1837 * gthr-posix95.h (__gthread_active_init): Likewise.
1839 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1842 * global.c (build_insn_chain): Include insn that occur between
1845 2007-10-11 Tom Tromey <tromey@redhat.com>
1847 * gengtype-yacc.y: Delete.
1849 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
1851 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
1852 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
1853 function_value_32, function_value_64, function_value_ms_64,
1854 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
1855 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
1858 2007-10-11 Richard Guenther <rguenther@suse.de>
1860 * gcse.c (hash_scan_set): If the next nonnote insn is in
1861 a different basic block insert the set.
1863 2007-10-11 Richard Guenther <rguenther@suse.de>
1866 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
1867 (verify_gimple_expr): Use it to verify pointer-to types for
1870 2007-10-11 Richard Guenther <rguenther@suse.de>
1873 * c-typeck.c (build_array_ref): Do not strip qualifiers from
1874 the array element type.
1876 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1878 PR rtl-optimization/33638
1879 * dse.c (struct insn_info): Remove 'stack_read' field,
1880 add 'stack_pointer_based' field.
1881 (record_store): For a store with non-constant base, record
1882 whether it is stack pointer based.
1883 (scan_insn): For the call to a const function, remove stack
1884 pointer based stores from the list of local active stores.
1885 (scan_reads_nospill): Delete code dealing with const functions.
1887 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
1889 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
1891 (conflict_p, set_conflict, set_conflicts): Likewise.
1892 * global.c (global_alloc): Likewise.
1893 * ra.h: Update prototypes.
1895 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
1897 * opth-gen.awk: Fixed generation of comment stating the origin
1900 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
1903 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
1904 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
1905 and '%}', respectively.
1908 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
1909 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
1910 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
1912 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
1916 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
1917 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
1918 syntax for ASSEMBLER_DIALECT.
1919 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
1921 2007-10-10 Revital Eres <eres@il.ibm.com>
1923 * modulo-sched.c (check_nodes_order): Dump the final order of
1925 (get_sched_window): Add dump info.
1926 (calculate_order_params): Dump order params of the nodes.
1928 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
1931 * ra-conflict.c (record_one_conflict_between_regnos,
1932 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
1933 (global_conflicts): Enhanced incorrect check.
1935 2007-10-09 Geoffrey Keating <geoffk@apple.com>
1937 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
1938 if flag_exceptions is not set.
1939 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
1940 assemble_name rather than incorrectly emulating it.
1942 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
1943 friends are removed from G++.
1945 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1947 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
1948 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
1949 enabling them is redundant. Don't check two times for
1952 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
1954 * ra-conflict.c (record_one_conflict_between_regnos): Revert
1956 (set_conflicts_for_earlyclobber): Likewise.
1957 (global_conflicts): Likewise.
1959 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
1961 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
1962 and '%}', respectively.
1964 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
1966 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
1967 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
1969 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
1972 2007-10-09 Richard Guenther <rguenther@suse.de>
1975 * gimplify.c (canonicalize_component_ref): Honor qualifiers
1976 of referenced structure and component.
1978 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
1981 * ra-conflict.c (record_one_conflict_between_regnos,
1982 set_conflicts_for_earlyclobber, global_conflicts): Improved
1984 (global_conflicts): Removed incorrect check.
1986 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
1988 PR tree-optimization/33615
1989 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
1990 if the statement might throw. Fix formatting.
1992 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
1994 PR tree-optimization/33615
1995 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
1996 if the rhs might throw.
1998 2007-10-09 Jan Hubicka <jh@suse.cz>
2000 * invoke.texi (align-threshold, align-loop-iterations): Document.
2001 * final.c: Include cfgloop.h, params.h
2002 (compute_alignments): Dump decisions and compare them with loop
2003 structure; honor given parameters.
2004 (pass_compute_alignments): New dump file.
2005 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
2006 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
2008 2007-10-09 James E. Wilson <wilson@specifix.com>
2010 PR tree-optimization/33655
2012 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
2013 convert it to bitsizetype before size_binop call.
2015 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2017 PR tree-optimization/33572
2018 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
2019 the absence of a corresponding edge from the exit block.
2021 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2024 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
2026 (sra_build_assignment): Likewise. Set up mask depending on
2027 precision, not type.
2028 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
2029 computing bit masks.
2030 (sra_build_elt_assignment): Don't view-convert from signed to
2032 (sra_explode_bitfield_assignment): Use bit-field type if
2033 possible. Use BYTES_BIG_ENDIAN.
2035 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
2038 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
2039 the original stmt can throw.
2040 (sra_build_bf_assignment): Fix type mismatch when applying negated
2043 2007-10-08 Geoffrey Keating <geoffk@apple.com>
2045 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
2046 '#pragma mark' to be executed at preprocessing time.
2048 2007-10-08 Ollie Wild <aaw@google.com>
2050 * varasm.c (compare_constant): Removed call to
2051 lang_hooks.expand_constant.
2052 (copy_constants): Removed call to lang_hooks.expand_constant.
2053 (compute_reloc_for_constant): Removed call to
2054 lang_hooks.expand_constant.
2055 (output_addressed_constants): Removed call to
2056 lang_hooks.expand_constant.
2057 (constructor_static_from_elts_p): Removed call to
2058 lang_hooks.expand_constant.
2059 (output_constant): Removed calls to lang_hooks.expand_constant.
2060 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2061 * langhooks-def.h (lhd_return_tree): Removed.
2062 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2063 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2064 * langhooks.c (lhd_return_tree): Removed.
2066 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
2068 * combine.c (setup_incoming_promotions): Ensure that
2069 arguments that have not undergone mode promotions do not
2070 incorrectly get marked as being sign- or zero-extended.
2072 2007-10-08 Richard Guenther <rguenther@suse.de>
2077 * fold-const.c (fold_binary): Use correct types in folding
2078 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
2079 and building of RROTATE_EXPR.
2081 2007-10-08 Richard Guenther <rguenther@suse.de>
2086 * fold-const.c (fold_binary): Use the correct types when
2087 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
2088 (fold_binary): Use the correct types when folding
2089 (-A) - B to (-B) - A.
2090 (fold_unary): Use the correct types when folding ~(X).
2092 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2094 * doc/invoke.texi (Wall): fix formatting issues.
2096 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
2098 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
2099 truncated shift counts.
2101 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2103 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2104 syntax for ASSEMBLER_DIALECT.
2105 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2107 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2108 Nathan Froyd <froydnj@codesourcery.com>
2110 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
2111 when determining whether to record INCOMING_RETURN_ADDR_RTX.
2113 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2116 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
2118 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
2119 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
2120 the function, temporarily point the debug interface to the null one.
2122 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2124 PR tree-optimization/33655
2126 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
2129 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2131 PR tree-optimization/33572
2132 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
2133 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
2134 (update_ssa_across_abnormal_edges): ... this. Set slots in the
2136 (copy_edges_for_bb): Handle nonlocal label edges.
2137 (make_nonlocal_label_edges): Deleted.
2138 (optimize_inline_calls): Don't call it.
2140 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
2142 * gthr-single.h: Revert last change.
2144 2007-10-05 Michael Matz <matz@suse.de>
2147 * lower-subreg.c (decompose_multiword_subregs): Use
2148 validate_unshare_change().
2150 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
2152 * ra-conflict.c: Include "sparseset.h".
2153 (conflicts): Change to HOST_WIDEST_FAST_INT.
2154 (allocnos_live): Redefine variable as a sparseset.
2155 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
2157 (allocno_row_words): Removed global variable.
2158 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
2159 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
2160 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
2161 (record_one_conflict_between_regnos): Cache allocno values and reuse.
2163 (record_one_conflict): Update uses of allocnos_live to use
2164 the sparseset routines. Use set_conflicts_p.
2165 (mark_reg_store): Likewise.
2166 (set_reg_in_live): Likewise.
2167 (global_conflicts): Update uses of allocnos_live.
2168 Use the new adjacency list to visit an allocno's neighbors
2169 rather than iterating over all possible allocnos.
2170 Call set_conflicts_p to setup conflicts rather than adding
2172 * global.c: Comments updated.
2173 (CONFLICTP): Delete define.
2174 (regno_compare): New function. Add prototype.
2175 (global_alloc): Sort the allocno to regno mapping according to
2176 which basic blocks the regnos are referenced in. Modify the
2177 conflict bit matrix to a compressed triangular bitmatrix.
2178 Only allocate the conflict bit matrix and adjacency lists if
2179 we are actually going to allocate something.
2180 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
2181 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
2182 allocno's neighbors rather than iterating over all possible allocnos.
2183 (mirror_conflicts): Removed function.
2184 (dump_conflicts): Iterate over regnos rather than allocnos so
2185 that all dump output will be sorted by regno number.
2186 Use the FOR_EACH_CONFLICT macro.
2187 * ra.h: Comments updated.
2188 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
2189 (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
2191 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
2192 (adjacency_list_d, adjacency_iterator_d): New types.
2193 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
2194 adjacency_iter_next, regno_basic_block): New static inline functions.
2195 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
2196 (conflict_p): Add function prototype.
2197 * sparseset.h, sparseset.c: New files.
2198 * Makefile.in (OBJS-common): Add sparseset.o.
2199 (sparseset.o): New rule.
2201 2007-10-05 Richard Guenther <rguenther@suse.de>
2204 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
2207 2007-10-05 Michael Matz <matz@suse.de>
2210 * function.c (match_asm_constraints_1): Check for input
2211 being used in the outputs.
2213 2007-10-05 Richard Guenther <rguenther@suse.de>
2215 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
2217 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
2220 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
2221 subset checks. Make the cost of FPR -> FPR moves depend on
2222 mips_mode_ok_for_mov_fmt_p.
2224 2007-10-04 Doug Kwan <dougkwan@google.com>
2226 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
2227 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2228 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2229 support of conditional variables.
2230 * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
2231 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2232 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2233 support of conditional variables.
2234 * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
2235 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2236 conditional variables.
2237 * gthr.h: Update comments to document new interface.
2239 2007-10-04 Geoffrey Keating <geoffk@apple.com>
2241 * cgraphunit.c (cgraph_build_static_cdtor): Don't set
2244 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2246 * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
2248 2007-10-04 Richard Guenther <rguenther@suse.de>
2251 * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
2252 does not need to be of INTEGER_TYPE.
2253 (verify_gimple_2): New function split out from ...
2254 (verify_gimple_1): ... here. ICE if there was an error during
2257 2007-10-04 Michael Matz <matz@suse.de>
2259 PR rtl-optimization/33653
2260 * dce.c (deletable_insn_p_1): Use volatile_refs_p().
2261 * dse.c (scan_insn): Same.
2263 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2265 * config.gcc: Remove USE_GAS for m68k targets.
2267 2007-10-04 Richard Guenther <rguenther@suse.de>
2269 PR tree-optimization/33627
2270 * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
2271 * tree-gimple.c (canonicalize_cond_expr_cond): New function,
2273 * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
2274 * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
2276 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2278 * config/avr/avr.c (commands_in_file, commands_in_prologues,
2279 commands_in_epilogues): Remove variables.
2280 (avr_file_start): Remove unneded initializations of commands_in_file,
2281 commands_in_prologues and commands_in_epilogues variables.
2282 (avr_file_end): Remove dead code.
2284 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2286 * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
2287 MOTOROLA is to true.
2289 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk>
2292 * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
2293 (mips_split_doubleword_move): ...this.
2294 * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
2295 use natural endianness for multi-format FPR values.
2296 (mips_split_64bit_move): Rename to...
2297 (mips_split_doubleword_move): ...this and extend to 64-bit words.
2298 Use move_doubleword_fpr* patterns for moves involving FPRs.
2299 (mips_save_reg): Update the call to mips_split_64bit_move.
2300 (mips_secondary_reload_class): Return NO_REGS for any reload of a
2301 nonzero constant into an FPR if the constant can be forced to memory.
2302 * config/mips/mips.md: Update the splitter calls to
2303 mips_split_64bit_move.
2304 (UNSPEC_LOAD_DF_LOW): Rename to...
2305 (UNSPEC_LOAD_LOW): ...this.
2306 (UNSPEC_LOAD_DF_HIGH): Rename to...
2307 (UNSPEC_LOAD_HIGH): ...this.
2308 (UNSPEC_STORE_DF_HIGH): Rename to...
2309 (UNSPEC_STORE_WORD): ...this.
2310 (SPLITF): New mode iterator.
2311 (HALFMODE): New mode attribute.
2312 (movtf): New expander.
2313 (*movtf_internal): New define_insn_and_split.
2314 (move_doubleword_fpr<mode>): New expander.
2315 (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
2317 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2318 (mfhc1<mode>): ...these more general patterns.
2320 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2322 * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
2324 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2326 * gcse.c (hash_scan_set): Insert set in insn before note at
2327 the end of basic block.
2329 2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
2331 PR tree-optimization/33576
2332 * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
2333 * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
2334 * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
2335 (remove_iv): Declared.
2336 * lambda-code.c (remove_iv): Not static.
2337 (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
2338 Don't remove ivs there, save ivs in the buffer.
2340 2007-10-03 Jason Merrill <jason@redhat.com>
2343 * tree-eh.c (same_handler_p): New fn.
2344 (optimize_double_finally): New fn.
2345 (refactor_eh_r): New fn.
2346 (refactor_eh): New fn.
2347 (pass_refactor_eh): New pass.
2348 * tree-pass.h: Declare it.
2349 * passes.c (init_optimization_passes): Add it.
2351 2007-10-03 Doug Kwan <dougkwan@google.com>
2352 Richard Guenther <rguenther@suse.de>
2355 * dwarf2out.c (reference_to_unused): Disable sanity checking,
2356 be conservative instead.
2358 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2361 * doc/invoke.texi (-fwhole-program): Document that Fortran
2362 doesn't support this option.
2364 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk>
2367 * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
2370 2007-10-02 David Daney <ddaney@avtrex.com>
2372 * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
2373 against constant zero.
2374 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero
2377 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2379 * ra-conflict.c: New file.
2381 * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
2382 usage to DF_LIVE usage.
2383 (reload): Remove reference to df_get_live_top.
2384 * rtlanal.c (subreg_nregs_with_regno): New function.
2385 * df-scan.c (df_def_record_1, df_uses_record): Add code to set
2386 DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
2387 (df_has_eh_preds): Removed.
2388 (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
2389 df_exit_block_uses_collect): Changed call from df_has_eh_preds to
2391 * global.c (allocno, max_allocno, conflicts, allocno_row_words,
2392 reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
2393 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
2394 (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
2395 mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
2396 (global_alloc): Turn off rescanning insns after call to
2397 global_conflicts and added call to set_preferences.
2398 (global_conflicts): Moved to ra-alloc.c.
2399 (set_preferences_1, set_preferences): New function.
2400 (mirror_conflicts): Changed types for various variables.
2401 (mark_elimination): Change DF_RA_LIVE
2402 usage to DF_LIVE usage.
2403 (build_insn_chain): Rewritten from scratch and made local.
2404 (print_insn_chain, print_insn_chains): New functions.
2405 (dump_conflicts): Do not print conflicts for fixed_regs.
2406 (rest_of_handle_global_alloc): Turn off insn rescanning.
2407 * hard-reg-set.h: Fixed comment.
2408 * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
2409 usage to DF_LIVE usage and delete refs to TOP sets.
2410 (block_alloc): Mark regs as live if they are in the artificial
2411 defs at top of block.
2412 (find_stack_regs): New function.
2413 (rest_of_handle_local_alloc): Changed urec problem to live
2414 problem and do not turn off df rescanning.
2415 * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
2416 DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
2417 df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
2418 (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
2419 (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
2420 fields in df_ref_flags. The rest have been renumbered.
2421 * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
2423 * rtl.h (subreg_nregs_with_regno): New function.
2424 * df-problems.c: (df_get_live_out, df_get_live_in,
2425 df_get_live_top): Removed reference to DF_RA_LIVE.
2426 (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
2427 df_live_alloc, df_live_reset, df_live_local_finalize,
2428 df_live_free): Make top set only if different from in set.
2429 (df_lr_top_dump, df_live_top_dump): Only print top set if
2430 different from in set.
2431 (df_lr_bb_local_compute): Removed unnecessary check.
2432 (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
2433 df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
2434 df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
2435 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
2436 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
2437 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
2438 df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
2439 df_urec_add_problem): Removed.
2440 (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
2442 * Makefile.in (ra-conflict.o, ra.h): New dependencies.
2443 * basic_block.h (bb_has_abnormal_pred): New function.
2444 * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
2445 usage to DF_LIVE usage.
2447 2007-10-02 Revital Eres <eres@il.ibm.com>
2449 * config/rs6000/predicates.md (easy_vector_constant): Return false
2450 for 750CL paired vectors.
2451 * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
2453 (vec_initv2sf): Add new description.
2454 (vconcatsf): Likewise.
2455 * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
2456 * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
2458 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
2460 * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
2461 sinking the last stmt in a BB.
2463 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
2466 * tree-sra.c (struct sra_elt): Add in_bitfld_block.
2467 (sra_hash_tree): Handle BIT_FIELD_REFs.
2468 (sra_elt_hash): Don't hash bitfld blocks.
2469 (sra_elt_eq): Skip them in parent compares as well. Handle
2471 (build_element_name_1): Handle BIT_FIELD_REFs.
2472 (instantiate_element): Propagate nowarn from parents. Create
2473 BIT_FIELD_REF for variables that are widened by scalarization.
2474 Gimple-zero-initialize all bit-field variables that are not
2475 part of parameters that are going to be scalarized on entry.
2476 (instantiate_missing_elements_1): Return the sra_elt.
2477 (canon_type_for_field): New.
2478 (try_instantiate_multiple_fields): New. Infer widest possible
2479 access mode from decl or member type, but clip it at word
2480 size, and only widen it if a field crosses an alignment
2482 (instantiate_missing_elements): Use them.
2483 (generate_one_element_ref): Handle BIT_FIELD_REFs.
2484 (scalar_bitfield_p): New.
2485 (sra_build_assignment): Optimize assignments from scalarizable
2486 BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift
2489 (sra_build_bf_assignment): New. Optimize assignments to
2490 scalarizable BIT_FIELD_REFs.
2491 (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF
2492 assignments to full variables.
2493 (generate_copy_inout): Use the new macros and functions.
2494 (generate_element_copy): Likewise. Handle bitfld differences.
2495 (generate_element_zero): Don't recurse for blocks. Use
2496 sra_build_elt_assignment.
2497 (generate_one_element_init): Take elt instead of var. Use
2498 sra_build_elt_assignment.
2499 (generate_element_init_1): Adjust.
2500 (bitfield_overlap_info): New struct.
2501 (bitfield_overlaps_p): New.
2502 (sra_explode_bitfield_assignment): New. Adjust widened
2503 variables to account for endianness.
2504 (sra_sync_for_bitfield_assignment): New.
2505 (scalarize_use): Re-expand assignment to/from scalarized
2506 BIT_FIELD_REFs. Explode or sync needed members for
2507 BIT_FIELD_REFs accesses or assignments. Use REPLDUP.
2508 (scalarize_copy): Use REPLDUP.
2509 (scalarize_ldst): Move assert before dereference. Adjust EH
2511 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
2513 2007-10-01 Paolo Bonzini <bonzini@gnu.org>
2515 * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
2516 Rename CR_* constants to CMP_*. Fix spacing.
2518 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2521 * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
2522 to be processed with the special script doc/install.texi2html.
2524 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2526 * doc/invoke.texi (Wall): List the options enabled by Wall.
2527 (Wstrict-aliasing): Add missing @option.
2529 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk>
2531 * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
2532 rather than gen_lowpart to change a register from DImode to DFmode.
2533 (mips_cannot_change_mode_class): Only allow FPRs to change mode if
2534 both FROM and TO are integer modes that are no bigger than 4 bytes.
2535 (mips_mode_ok_for_mov_fmt_p): New function.
2536 (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
2537 (mips_secondary_reload_class): Tweak formatting and comments.
2538 Use reg_class_subset_p instead of direct comparisons with
2539 classes. Only allow direct FPR<->FPR moves for modes that
2540 satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores
2541 for 4- and 8-byte types. Handle reloads in which X is an FPR.
2542 * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
2543 (*movdi_64bit): Likewise.
2544 (*movsi_internal): Likewise.
2545 (*movhi_internal): Likewise.
2546 (*movqi_internal): Likewise.
2548 2007-09-30 Diego Novillo <dnovillo@google.com>
2551 * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
2554 2007-09-30 Uros Bizjak <ubizjak@gmail.com>
2556 PR tree-optimization/33597
2557 * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
2558 for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
2560 2007-09-28 Uros Bizjak <ubizjak@gmail.com>
2562 * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
2563 instead of variants of (!reload_in_progress && !reload_completed).
2564 (x86_expand_vector_move): Ditto.
2566 2007-09-28 Ollie Wild <aaw@google.com>
2569 2007-09-27 Ollie Wild <aaw@google.com>
2571 * varasm.c (compare_constant): Removed call to
2572 lang_hooks.expand_constant.
2573 (copy_constants): Removed call to lang_hooks.expand_constant.
2574 (compute_reloc_for_constant): Removed call to
2575 lang_hooks.expand_constant.
2576 (output_addressed_constants): Removed call to
2577 lang_hooks.expand_constant.
2578 (constructor_static_from_elts_p): Removed call to
2579 lang_hooks.expand_constant.
2580 (output_constant): Removed calls to lang_hooks.expand_constant.
2581 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2582 * langhooks-def.h (lhd_return_tree): Removed.
2583 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2584 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2585 * langhooks.c (lhd_return_tree): Removed.
2587 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2590 * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
2591 argument to gen_selb.
2593 2007-09-28 Chao-ying Fu <fu@mips.com>
2595 * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
2596 * doc/libgcc.texi (Fixed-point fractional library routines):
2597 Fix typos for neg and cmp functions.
2599 2007-09-28 Michael Matz <matz@suse.de>
2601 PR rtl-optimization/33552
2602 * function.c (match_asm_constraints_1): Check for overlap in
2603 inputs and replace all occurences.
2605 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk>
2607 * config/mips/mips.c (override_options): Fix comment typo.
2609 2007-09-28 Jie Zhang <jie.zhang@analog.com>
2611 * config.gcc (bfin*-linux-uclibc*): Set extra_parts
2612 to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
2613 * config/bfin/t-bfin-linux (crti.o): Don't build.
2615 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2616 * config/bfin/t-bfin-uclinux (crti.o): Don't build.
2618 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2620 2007-09-27 Ollie Wild <aaw@google.com>
2622 * varasm.c (compare_constant): Removed call to
2623 lang_hooks.expand_constant.
2624 (copy_constants): Removed call to lang_hooks.expand_constant.
2625 (compute_reloc_for_constant): Removed call to
2626 lang_hooks.expand_constant.
2627 (output_addressed_constants): Removed call to
2628 lang_hooks.expand_constant.
2629 (constructor_static_from_elts_p): Removed call to
2630 lang_hooks.expand_constant.
2631 (output_constant): Removed calls to lang_hooks.expand_constant.
2632 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2633 * langhooks-def.h (lhd_return_tree): Removed.
2634 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2635 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2636 * langhooks.c (lhd_return_tree): Removed.
2638 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2641 * expr.c (emit_group_load_1): Split constant double when destination
2642 length is half source length.
2644 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk>
2646 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
2647 (mips_cpu_info): Add tune_flags.
2648 (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
2649 * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
2651 (override_options): Remove deprecation code. Use branch-likely
2652 instructions for optimize_size or if the tuning flags do not
2653 suggest otherwise. Tweak warning.
2654 (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
2656 2007-09-27 Matthias Klose <doko@ubuntu.com>
2658 * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2659 multilib osdirname if it exists.
2660 * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2662 2007-09-27 Ian Lance Taylor <iant@google.com>
2664 PR tree-optimization/33565
2665 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
2666 assignments of comparisons.
2667 * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
2668 parameter. Change caller. Defer overflow warnings around call to
2670 * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
2671 TREE_NO_WARNING is set on the statement.
2672 * tree-ssa-forwprop.c
2673 (tree_ssa_forward_propagate_single_use_vars): Don't test
2674 TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
2675 * tree-cfg.c (fold_cond_expr_cond): Likewise.
2677 2007-09-27 Joseph Myers <joseph@codesourcery.com>
2679 * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
2680 reduce offset by units of 0x10000 for SPE vector modes or modes
2681 used with E500 double instructions.
2683 2007-09-04 Paolo Bonzini <bonzini@gnu.org>
2685 * simplify-rtx.c (comparison_result): New.
2686 (simplify_const_relational_operation): Use it instead of the five
2687 "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
2688 Improve bounds-checking optimizations; remove subsumed POPCOUNT
2689 optimizations. Extract nonzero_address_p optimizations into a
2690 separate "if" together with optimizations where op1 is const0_rtx.
2691 Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for
2692 floating-point arguments too when appropriate. Hoist test for ABS
2693 outside the final switch statement.
2694 * cse.c (fold_rtx): Don't look for an IOR equivalent of
2695 folded_arg0 if we found a constant equivalent. Remove
2696 transformations done in simplify-rtx.c for "op0 RELOP op0".
2698 2007-09-27 Jakub Jelinek <jakub@redhat.com>
2700 * builtins.c (expand_builtin, expand_builtin_object_size,
2701 expand_builtin_memory_chk, maybe_emit_chk_warning,
2702 maybe_emit_sprintf_chk_warning): Use new %K format string specifier
2704 * expr.c (expand_expr_real_1): Likewise.
2705 * langhooks-def.h (struct diagnostic_info): Add forward decl.
2706 (lhd_print_error_function): Add third argument.
2707 * langhooks.h (struct diagnostic_info): Add forward decl.
2708 (struct lang_hooks): Add third argument to print_error_function.
2709 * diagnostic.h (diagnostic_info): Add abstract_origin field.
2710 (diagnostic_last_function_changed, diagnostic_set_last_function): Add
2712 (diagnostic_report_current_function): Likewise.
2713 * toplev.c (announce_function): Pass NULL as second argument to
2714 diagnostic_set_last_function.
2715 * diagnostic.c (diagnostic_report_current_function): Add second
2716 argument, pass it as third argument to lang_hooks.print_error_function.
2717 (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
2718 to diagnostic_report_current_function.
2719 (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
2720 and message.abstract_origin.
2721 (verbatim): Initialize abstract_origin.
2722 * pretty-print.h (text_info): Add abstract_origin field.
2723 * pretty-print.c (pp_base_format): Handle %K.
2724 * langhooks.c (lhd_print_error_function): Add third argument. If
2725 diagnostic->abstract_origin, print virtual backtrace.
2726 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2727 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
2728 (init_dynamic_diag_info): Likewise.
2730 2007-09-26 David Daney <ddaney@avtrex.com>
2733 * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
2734 sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
2735 sync_old_nand<mode>, sync_new_nand<mode>,
2736 sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
2737 Update length attributes.
2738 (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
2739 sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
2741 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
2742 MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
2743 MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
2746 2007-09-26 Richard Guenther <rguenther@suse.de>
2748 PR tree-optimization/33563
2749 * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
2750 (get_kill_of_stmt_lhs): ... this. Re-structure. Handle
2752 (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
2753 get_use_of_stmt_lhs.
2755 2007-09-26 Joseph Myers <joseph@codesourcery.com>
2758 * c-common.c (complete_array_type): Diagnose too-large arrays and
2759 set type to error_mark_node.
2761 2007-09-26 Richard Guenther <rguenther@suse.de>
2763 PR tree-optimization/30375
2764 PR tree-optimization/33560
2765 * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
2769 2006-05-22 Aldy Hernandez <aldyh@redhat.com>
2771 * tree-ssa-dse.c (aggregate_vardecl_d): New.
2772 (dse_global_data): Add aggregate_vardecl field.
2773 (dse_possible_dead_store_p): New.
2774 Add prev_defvar variable.
2775 Allow immediate uses and previous immediate uses to differ
2776 if they are setting different parts of the whole.
2777 (get_aggregate_vardecl): New.
2778 (dse_record_partial_aggregate_store): New.
2779 (dse_whole_aggregate_clobbered_p): New.
2780 (dse_partial_kill_p): New.
2781 Call dse_maybe_record_aggregate_store().
2782 When checking whether a STMT and its USE_STMT refer to the
2783 same memory address, check also for partial kills that clobber
2785 Move some variable definitions to the block where they are used.
2786 (aggregate_vardecl_hash): New.
2787 (aggregate_vardecl_eq): New.
2788 (aggregate_vardecl_free): New.
2789 (aggregate_whole_store_p): New.
2790 (tree_ssa_dse): Initialize and free aggregate_vardecl.
2791 Mark which aggregate stores we care about.
2793 2007-09-25 DJ Delorie <dj@redhat.com>
2796 * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
2799 2007-09-25 Michael Meissner <michael.meissner@amd.com>
2802 * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
2803 gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
2804 for vector int32 -> int64 conversions. Don't write beyond the end
2805 of the allocated vector for int32 -> int64 conversions.
2807 2007-09-25 Revital Eres <eres@il.ibm.com>
2809 * config/rs6000/paired.h (paired_sel): New.
2810 * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
2811 (rs6000_expand_ternop_builtin): Pass zero const_double operand
2812 when expanding selv2sf.
2813 * config/rs6000/rs6000.h (rs6000_builtins): Add
2814 PAIRED_BUILTIN_SELV2SF4.
2816 2007-09-25 Joseph Myers <joseph@codesourcery.com>
2819 * c-typeck.c (default_conversion): Call require_complete_type
2820 before perform_integral_promotions.
2821 (build_unary_op): Call require_complete_type except for ADDR_EXPR.
2822 (build_c_cast): Call require_complete_type except for casts to
2824 (convert_for_assignment): Call require_complete_type.
2826 2007-09-25 Revital Eres <eres@il.ibm.com>
2828 * config/spu/spu.md: Fix doloop pattern.
2830 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com>
2832 * config/bfin/bfin.c (expand_prologue_reg_save,
2833 expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
2834 and ASTAT moved here...
2835 (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
2836 ... from here. New argument ALL; callers changed.
2837 (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
2838 (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
2839 have the "saveall" attribute.
2841 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com>
2843 * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
2845 (INCOMING_REGNO, OUTGOING_REGNO): Define.
2846 * config/mmix/mmix.c (mmix_opposite_regno): New function.
2847 * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
2849 * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
2850 with REG_P tests before REGNO access.
2852 2007-09-24 DJ Delorie <dj@redhat.com>
2855 * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
2857 (movqicc_<code>_<mode>): Likewise.
2858 (movhicc_<code>_<mode>): Likewise.
2860 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk>
2863 * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
2864 register for reload.
2866 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
2869 * config/i386/i386.c (ix86_comp_type_attributes): Check
2872 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
2874 * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
2875 "move.l %a4,%a4" to produce nops.
2876 * config/m68k/m68k.c (override_options): Reset align options,
2877 if neccessary align macro isn't avaible.
2879 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
2881 config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
2883 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
2885 * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
2887 * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
2888 reload is completed.
2889 (peephole pattern): Convert most of them to RTL peephole pattern.
2891 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
2893 * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
2894 (moved from fp compare patterns).
2895 * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
2896 Cleanup predicates to relieve reload.
2897 (conditional_trap): Reject conditional trap with fp condition.
2898 * gcc/config/m68k/predicates.md (fp_src_operand): New, reject
2899 certain constants early.
2901 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
2903 * gcc/final.c (final_scan_insn): Remove accidentally duplicated code.
2905 2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2907 * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
2908 Allow --with-tune=cell and --with-cpu=cell.
2910 2007-09-24 David Edelsohn <edelsohn@gnu.org>
2912 * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
2913 * config/rs6000/rs6000.opt (swdiv): Change option to ...
2915 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
2917 (TARGET_BUILTIN_RECIPROCAL): Use it.
2918 (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
2919 (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
2920 (rs6000_emit_swrsqrtsf): New.
2921 * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
2923 * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
2924 (divsf3): Remove swdiv support.
2927 (rsqrt_internal1): New.
2928 (divdf3): Remove swdiv support.
2931 2007-09-24 Jakub Jelinek <jakub@redhat.com>
2934 * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
2936 * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
2937 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
2938 * tree.c (type_hash_eq): For FUNCTION_TYPE use
2939 lang_hooks.type.type_hash_eq in addition to generic tests.
2941 2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
2942 Ramana Radhakrishnan <ramana@hercules.pun.celunite.com>
2944 * tree-inline.h (eni_weights): Add field target_builtin_cost to
2945 reflect the cost per call to a target specific builtin.
2946 * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
2947 call to a target specific builtin, then use target_builtin_call_cost.
2948 (init_inline_once): Initialize target_builtin_call_cost field.
2950 2007-09-24 Kai Tietz <kai.tietz@onevision.com>
2953 * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
2956 2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
2958 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
2959 * configure: Regenerated.
2961 2007-09-23 Ollie Wild <aaw@google.com>
2963 * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
2965 (get_pointer_modulus_and_residue): New function.
2967 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
2969 * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
2970 combine an SC return value into a single register.
2972 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
2974 * opth-gen.awk (target_flags_explicit): Declare.
2975 * toplev.h (target_flags_explicit): Delete declaration.
2976 * toplev.c (target_flags): Likewise.
2977 * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
2978 (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
2979 Never return true for TARGET_MIPS16.
2980 * config/mips/mips.c (mips_llsc): Delete.
2981 (mips_handle_option): Remove -mllsc handling.
2982 (mips_strip_unspec_address): Tweak comment.
2983 * config/mips/mips.opt (mllsc): Use a target mask.
2985 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
2987 * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
2988 word_mode as well as Pmode.
2990 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
2992 * function.c (assign_parm_setup_block): Explicitly convert BLKmode
2993 parameters from word_mode to the subword type if such a truncation
2996 2007-09-23 Jakub Jelinek <jakub@redhat.com>
2998 * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
2999 * configure: Regenerated.
3001 2007-09-23 Jan Hubicka <jh@suse.cz>
3003 * params.def (INLINE_CALL_COST): Set to 12.
3004 * invoke.texi (inline-call-cost): Update default value.
3006 2007-09-23 Eric Botcazou <ebotcazou@adacore.com>
3008 * config/alpha/alpha.md (movti): Use operand_subword for the split.
3010 2007-09-23 Ayal Zaks <zaks@il.ibm.com>
3011 Revital Eres <eres@il.ibm.com>
3013 * modulo-sched.c (doloop_register_get): Rewrite the loop which
3014 checks whether the count_reg is found outside the control part.
3016 2007-09-23 Jakub Jelinek <jakub@redhat.com>
3018 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
3019 instead of checking CALL_EXPR_FN directly to test for builtins.
3020 If error or warning attributes are present, print
3021 error resp. warning.
3022 * c-common.c (handle_error_attribute): New function.
3023 (c_common_attribute_table): Add error and warning
3025 * doc/extend.texi: Document error and warning attributes.
3027 * tree.h (block_nonartificial_location): New prototype.
3028 * tree.c (block_nonartificial_location): New function.
3029 * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
3030 if artificial attribute is present on abstract inline decl.
3031 * c-common.c (handle_artificial_attribute): New function.
3032 (c_common_attribute_table): Add artificial attribute.
3033 * final.c (override_filename, override_linenum): New variables.
3034 (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
3035 and override_linenum if inside of a block inlined from
3036 __attribute__((__artificial__)) function.
3037 (notice_source_line): Honor override_filename and override_linenum.
3038 * doc/extend.texi: Document __attribute__((__artificial__)).
3039 * config/i386/emmintrin.h: Add __artificial__ attribute to
3040 all __always_inline__ functions.
3041 * config/i386/mmintrin.h: Likewise.
3042 * config/i386/tmmintrin.h: Likewise.
3043 * config/i386/mm3dnow.h: Likewise.
3044 * config/i386/pmmintrin.h: Likewise.
3045 * config/i386/ammintrin.h: Likewise.
3046 * config/i386/xmmintrin.h: Likewise.
3047 * config/i386/smmintrin.h: Likewise.
3048 * config/i386/bmmintrin.h: Likewise.
3049 * config/i386/mmintrin-common.h: Likewise.
3052 * expr.c (expand_constructor): New function.
3053 (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
3054 (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
3057 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3059 * config/mips/mips.c (dump_constants_1): Generalize to include
3060 fractional and accumulator modes.
3062 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3064 * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
3065 * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
3067 (override_options): Check TARGET_HARD_FLOAT_ABI instead of
3068 TARGET_HARD_FLOAT when testing whether -mpaired-single is
3070 (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
3072 * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
3074 * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
3075 (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
3077 (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
3078 ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
3079 * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
3081 * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
3083 * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
3084 instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
3085 * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
3087 2007-09-22 Jason Merrill <jason@redhat.com>
3090 * attribs.c (lookup_attribute_spec): Split out...
3091 (decl_attributes): From here.
3092 * tree.h: Declare it.
3094 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
3096 * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
3098 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3100 * tree-inline.c (remap_type_1): Correctly chain variants.
3102 2007-09-22 Richard Guenther <rguenther@suse.de>
3104 PR tree-optimization/33146
3105 * fold-const.c (fold_binary): Use the original tree
3107 * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
3108 also changes "sign".
3110 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3113 * except.c (finish_eh_generation): Call commit_edge_insertions if
3114 there are insns queued on the entry edge.
3115 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
3118 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
3120 * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
3122 2007-09-19 Michael Meissner <michael.meissner@amd.com>
3124 * gcc/config/i386/i386.c: Delete trailing whitespace.
3125 * gcc/config/i386/i386.h: Ditto.
3126 * gcc/config/i386/bmmintrin.h: Ditto.
3127 * gcc/config/i386/sync.md: Ditto.
3128 * gcc/config/i386/ppro.md: Ditto.
3129 * gcc/config/i386/mmx.md: Ditto.
3130 * gcc/config/i386/constraints.md: Ditto.
3131 * gcc/config/i386/sse.md: Ditto.
3132 * gcc/config/i386/athlon.md: Ditto.
3133 * gcc/config/i386/i386.md: Ditto.
3135 2007-09-21 Richard Guenther <rguenther@suse.de>
3137 PR tree-optimization/33508
3138 * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
3139 quadratic loop by keeping a bitmap of variables we have
3140 to clobber all subvariables for.
3141 (set_initial_properties): Likewise.
3143 2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk>
3145 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
3147 2007-09-20 Nigel Stephens <nigel@mips.com>
3148 Chao-ying Fu <fu@mips.com>
3150 * c-decl.c (finish_declspecs): When _Sat is used without
3151 _Fract or _Accum, set the default type to cts_fract.
3152 This avoids a warning of "type defaults to int".
3154 2007-09-20 Joseph Myers <joseph@codesourcery.com>
3156 * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
3157 bit-fields wider than one bit.
3159 2007-09-20 Jakub Jelinek <jakub@redhat.com>
3162 * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
3164 * dbxout.c (dbxout_type): Likewise.
3168 * gimplify.c (gimplify_vla_decl): New function.
3169 (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
3171 (gimplify_target_expr): Handle variable length TARGET_EXPRs.
3173 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
3175 * doc/invoke.texi (-minterlink-mips16): Document.
3176 * config/mips/mips.opt (minterlink-mips16): New option.
3177 * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
3180 2007-09-20 Joseph Myers <joseph@codesourcery.com>
3182 * doc/extend.texi (Attribute Syntax): Remove old speculative
3185 2007-09-20 Mark Shinwell <shinwell@codesourcery.com>
3187 * combine.c: Include cgraph.h.
3188 (setup_incoming_promotions): Rework to allow more aggressive
3189 elimination of sign extensions when all call sites of the
3190 current function are known to lie within the current unit.
3192 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
3194 * dse.c (find_shift_sequence): No-op rework of control flow.
3196 2007-09-19 Richard Sandiford <rsandifo@nildram.co.uk>
3198 * config/mips/mips.c (build_mips16_call_stub): Tidy. Fix second
3199 GPR for DCmode on 64-bit targets. Remove redundant fallback.
3201 2007-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3203 * cfgexpand.c (dump_stack_var_partition): Use the correct
3204 index for the offset.
3206 2007-09-19 Joseph Myers <joseph@codesourcery.com>
3208 * config/mips/sde.h: Switch to GPLv3.
3210 2007-09-19 Eric Botcazou <ebotcazou@adacore.com>
3212 * tree-sra.c (decide_block_copy): Decide if there are groups.
3214 2007-09-19 Roman Zippel <zippel@linux-m68k.org>
3216 * config/m68k/m68k.c (output_move_himode): Remove jump table
3218 config/m68k/m68k.md (lea): Likewise.
3219 * config/m68k/m68k.c (print_operand_address): Use simple pc
3220 relative addressing.
3222 2007-09-19 Bernd Schmidt <bernd.schmidt@analog.com>
3224 * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.
3225 * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument
3227 (asm_insn_count): Pass template as second argument to it.
3228 * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3229 * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3230 * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3231 * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3232 * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3233 (sh_insn_length_adjustment): Pass template as second argument to it.
3234 * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro.
3236 * config/bfin/bfin.md (define_asm_attributes): New.
3238 2007-09-19 Jie Zhang <jie.zhang@analog.com>
3240 * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h
3242 * config/bfin/print-sysroot-suffix.sh: New.
3243 * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove.
3244 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
3245 MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3246 * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove.
3247 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
3248 MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3249 * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove.
3250 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
3251 MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3252 (linux-sysroot-suffix.h): New target.
3253 * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask.
3254 (mspecld-anomaly): Likewise.
3255 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from
3256 (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525,
3257 BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542,
3258 BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549.
3259 (bfin_si_revision): Declare.
3260 (bfin_workarounds): Declare.
3261 (WA_SPECULATIVE_LOADS): Define.
3262 (ENABLE_WA_SPECULATIVE_LOADS): Define.
3263 (WA_SPECULATIVE_SYNCS): Define.
3264 (ENABLE_WA_SPECULATIVE_SYNCS): Define.
3265 * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o.
3266 (LIB_SPEC): Add %s to the linker scripts.
3267 Use proper linker script for bf522, bf525, bf527,
3268 bf538, bf539, bf542, bf544, bf548, and bf549.
3269 * config/bfin/bfin.c (bfin_si_revision): Define.
3270 (bfin_workarounds): Define.
3271 (struct bfin_cpu): New.
3273 (bfin_handle_option): Handle silicon revision part of -mcpu option.
3274 (override_options): Set bfin_workarounds.
3275 (length_for_loop): Replace TARGET_CSYNC_ANOMALY with
3276 ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with
3277 ENABLE_WA_SPECULATIVE_LOADS.
3278 (bfin_reorg): Likewise.
3279 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3280 macros for bf522, bf525, bf527, bf538, bf539,
3281 bf542, bf544, bf548, and bf549.
3282 Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed.
3283 Don't define __ID_SHARED_LIB__ when -msep-data.
3284 (TARGET_DEFAULT): Define as 0.
3285 (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option.
3286 * doc/invoke.texi (Blackfin Options): Document silicon
3287 revision part of -mcpu option and it now accepts bf522, bf525,
3288 bf527, bf538, bf539, bf542, bf544, bf548, and bf549.
3290 2007-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3292 * alias.c (memory_modified_1): Deconstify.
3293 (memory_modified_in_insn_p): Don't use const_note_stores.
3294 * rtl.h (const_note_stores): Delete.
3295 * rtlanal.c (const_note_stores): Likewise.
3297 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
3299 * dse.c (find_shift_sequence): Temporarily revert to forbidding
3302 2007-09-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
3306 * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO().
3307 (addsi_small_int): Likewise.
3308 (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison.
3309 (one_cmplsi2): Likewise.
3311 (enter_func): Expand insn using hard_frame_pointer_rtx and
3314 * config/fr30/fr30.c (fr30_expand_prologue): Check for
3315 hard_frame_pointer_rtx instead of using REGNO() check.
3316 Properly sign extend GEN_INT() argument.
3318 2007-09-18 Roman Zippel <zippel@linux-m68k.org>
3320 * config/m68k/m68k.c (override_options): Remove USE_GAS,
3322 (output_dbcc_and_branch, output_scc_di): Replace all jbcc
3323 alternatives with just jcc.
3324 * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di,
3325 bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev,
3326 bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si,
3327 dbge_hi, dbge_si): Likewise.
3329 2007-09-18 Roman Zippel <zippel@linux-m68k.org>
3331 * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered,
3332 bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev,
3333 bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev,
3334 bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev,
3335 bunlt_rev, bltgt_rev): Replace all fbcc with fjcc.
3337 2007-09-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3339 * config/m68k/m68k-devices.def (51qe): New device.
3340 * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit. Add it
3341 to all uses of FL_FOR_isa_c for compatibility.
3342 (all_microarchs): Add cfv1 microarchitecture.
3343 (m68k_handle_option): Handle m51qe option.
3344 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE.
3345 (TUNE_CFV1): New macro.
3346 (enum uarch_type): Add ucfv1.
3347 * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture.
3349 2007-09-18 Richard Guenther <rguenther@suse.de>
3351 PR tree-optimization/31863
3352 * tree-ssa-structalias.c (create_variable_info_for): Always
3353 free the fieldstack.
3355 2007-09-18 Dorit Nuzman <dorit@il.ibm.com>
3357 * opts.c (decode_options): Enable vectorization under -O3.
3359 2007-09-18 Richard Guenther <rguenther@suse.de>
3361 PR tree-optimization/33340
3362 * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to
3363 SSA_NAMEs that occur in abnormal PHI nodes.
3365 2007-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3367 * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p):
3368 Don't use const_get_call_expr_in.
3369 * tree-gimple.c (const_get_call_expr_in): Delete.
3370 * tree-gimple.h (const_get_call_expr_in): Likewise.
3372 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
3374 * df-scan.c (df_notes_rescan): Do nothing if the instruction does
3375 not yet have a basic block.
3376 * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
3378 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
3380 * config/mips/mips.c (mips_file_start): Add ".previous" directives
3381 to both ".section"s.
3383 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk>
3385 * config/mips/mips.c (mips_output_mi_thunk): Use
3386 mips_function_ok_for_sibcall and const_call_insn_operand
3387 to determine if a direct sibcall is allowed. Use
3388 mips_classify_symbol to determine a global pointer is needed.
3390 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk>
3392 * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand.
3394 2007-09-17 Chao-ying Fu <fu@mips.com>
3395 Nigel Stephens <nigel@mips.com>
3397 * config/fixed-bit.h: New file.
3398 * config/fixed-bit.c: New file.
3399 * doc/libgcc.texi (Fixed-point fractional library routines): New node.
3401 2007-09-18 Jakub Jelinek <jakub@redhat.com>
3403 * c-format.h (format_kind_info): Add alloc_char field.
3404 * c-format.c (scanf_flag_specs): Add 'm'.
3405 (scanf_flag_pairs): Add 'a', 'm' pair.
3406 (scan_char_table): Allow 'm' modifier for c, s, [, C and S.
3407 (format_types_orig): Add alloc_char fields.
3408 (check_format_info_main): Rename aflag to alloc_flag.
3409 Handle fki->alloc_char. modifier after width and before length
3410 modifiers. Move FMT_FLAG_SCANF_A_KLUDGE handling before
3411 length modifiers as well.
3412 * config/sol2-c.c (solaris_format_types): Add alloc_char field.
3415 * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs
3416 returned by build_call_expr.
3418 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
3420 * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return