1 2007-11-07 Diego Novillo <dnovillo@google.com>
3 * tree.h (struct tree_struct_field_tag): Move field
5 (struct tree_memory_tag): ... here.
7 2007-11-07 Diego Novillo <dnovillo@google.com>
10 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
11 (SFT_IN_NESTED_STRUCT): Define.
12 * tree-dfa.c (dump_subvars_for): Show offset of each
14 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
15 * tree-ssa-structalias.c (struct variable_info): Likewise.
16 (push_fields_onto_fieldstack): If OFFSET is positive,
18 (create_variable_info_for): Copy setting of
19 in_nested_struct from the field offset object.
20 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
22 * tree-ssa-operands.c (add_vars_for_offset): If VAR
23 belongs to a nested structure, adjust OFFSET by
26 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
28 PR rtl-optimization/33737
29 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
30 target block after computing the probabilities of outgoing edges.
31 Cap the frequency to BB_FREQ_MAX.
32 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
33 frequency of the basic block if it has been reused.
35 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
37 PR rtl-optimization/33822
38 * rtl.h (REG_OFFSET): Fix comment.
39 * var-tracking.c (INT_MEM_OFFSET): New macro.
40 (var_mem_set): Use it.
41 (var_mem_delete_and_set): Likewise.
42 (var_mem_delete): Likewise.
43 (same_variable_part_p): Likewise.
44 (vt_get_decl_and_offset): Likewise.
45 (offset_valid_for_tracked_p): New predicate.
46 (count_uses): Do not track locations with invalid offsets.
48 (add_stores): Likewise.
50 2007-11-07 Tom Tromey <tromey@redhat.com>
52 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
53 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
55 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
56 Andrey Belevantsev <abel@ispras.ru>
58 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
59 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
60 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
61 Save calculated max_asap in it.
62 (sms_schedule): Calculate maxii using max_asap.
64 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
66 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
67 with -mhard-dfp/-mno-hard-dfp.
69 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
70 Jakub Jelinek <jakub@redhat.com>
73 * haifa-sched.c (check_sched_flags): Remove.
74 (sched_init): Don't call it.
76 2007-11-06 Diego Novillo <dnovillo@google.com>
78 * tree-flow.h (struct fieldoff): Reformat comment.
80 * tree-ssa-operands.c: Tidy top-level comments.
82 (add_vars_for_offset): Tidy parameter formatting..
83 (get_addr_dereference_operands): Likewise.
84 (get_indirect_ref_operands): Likewise.
85 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
86 <OMP_ATOMIC_STORE>: Likewise.
88 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
91 * config/i386/driver-i386.c: Test for __GNUC__ instead of
92 GCC_VERSION which is always defined.
94 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
97 * reload1.c (find_reloads): Also check in_reg when handling a
98 simple move with an input reload and a destination of a hard
101 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
103 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
104 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
105 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
106 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
107 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
108 (m68k_sched_attr_type2): New function.
109 (sched_adjust_cost_state): New static variable.
110 (m68k_sched_adjust_cost): New static function implementing
112 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
113 New static variables.
114 (m68k_sched_variable_issue): New static function implementing
116 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
117 (sched_dump_split_class): New static function.
118 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
120 (sched_dump_dfa_class, m68k_sched_dump): New static function.
121 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
122 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
123 m68k_sched_dfa_post_advance_cycle): New static functions implementing
126 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
127 (CPU_UNITS_QUERY): Define.
129 * config/m68k/cf.md: New file.
130 * config/m68k/m68.md (cf.md): New include.
132 2007-11-06 Tom Tromey <tromey@redhat.com>
134 PR c++/32256, PR c++/32368:
135 * function.c (saved_in_system_header): New global.
136 (push_cfun): Save in_system_header.
137 (pop_cfun): Restore in_system_header.
138 (push_struct_function): Save in_system_header.
140 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
144 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
145 (complete_array_type): Set canonical type appropriately.
146 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
147 C and C++ front ends now have different versions of this function,
148 because the C++ version needs to maintain canonical types here.
150 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
152 * tree-parloops.c (reduction_info): Remove reduction_init field.
153 (initialize_reductions): Remove creation of the reduction_init variable.
154 (struct data_arg): Remove.
155 (add_field_for_reduction, create_stores_for_reduction): New functions.
156 (add_field_for_name): Remove reduction handling.
157 (separate_decls_in_loop): Call add_field_for_reduction,
158 create_stores_for_reduction.
160 2007-11-06 Jakub Jelinek <jakub@redhat.com>
162 PR tree-optimization/33458
163 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
164 !is_gimple_val PHI argument, gimplify it and insert it on edge.
166 PR tree-optimization/33993
167 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
168 rather than build_constructor_from_list if all list values are
170 (get_initial_def_for_induction): Use build_vector instead of
171 build_constructor_from_list.
173 2007-11-05 Mark Mitchell <mark@codesourcery.com>
176 * tree.h (DECL_INIT_PRIORITY): Do not require
177 DECL_HAS_INIT_PRIORITY_P.
178 (DECL_FINI_PRIORITY): Likewise.
179 * tree.c (decl_init_priority_lookup): Remove assert.
180 (decl_fini_priority_insert): Likewise.
181 * cgraphunit.c (static_ctors): Make it a VEC.
182 (static_dtors): Likewise.
183 (record_cdtor_fn): Adjust accordingly.
184 (build_cdtor): Generate multiple functions for each initialization
186 (compare_ctor): New function.
187 (compare_dtor): Likewise.
188 (cgraph_build_cdtor_fns): Sort the functions by priority before
190 (cgraph_build_static_cdtor): Put the priority in the function's
193 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
196 * common.opt: Add shared and pie.
198 2007-11-05 Bob Wilson <bob.wilson@acm.org>
200 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
201 replace references to virtual_stack_vars_rtx in goto_handler.
203 2007-11-05 Paul Brook <paul@codesourcery.com>
205 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
206 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
207 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
208 arm_lang_output_object_attributes_hook.
209 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
210 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
211 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
213 * config/arm/t-arm.c (arm.o): New rule.
214 * config/arm/arm-c.c: New file.
216 2007-11-05 Nick Clifton <nickc@redhat.com>
217 Sebastian Pop <sebastian.pop@amd.com>
219 PR tree-optimization/32540
220 PR tree-optimization/33922
221 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
222 * tree-ssa-pre.c: Include params.h.
223 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
224 to limit the maximum length of the PA set for a given block.
225 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
226 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
228 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
230 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
231 __fixunssfDI): Make return type unsigned.
232 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
233 __fixunssfDI): Make return type unsigned.
235 2007-11-05 Jakub Jelinek <jakub@redhat.com>
237 PR tree-optimization/33856
238 * tree-data-ref.c (get_references_in_stmt): Don't add
239 REFERENCE_CLASS_P trees to references vector if get_base_address
240 returns NULL on them.
242 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
244 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
246 2007-11-04 Andrew Pinski <pinskia@gmail.com>
249 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
250 for TRUTH_NOT_EXPR to type.
252 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
254 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
256 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
259 * dwarf2out.c (add_calling_convention_attribute): Change
260 second argument. Set calling convention to DW_CC_program for
261 Fortran main program.
262 (gen_subprogram_die): Adjust to new prototype for
263 add_calling_convention_attribute.
265 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
267 PR tree-optimization/33987
268 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
270 (vectorizable_reduction): Add type check.
272 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
275 * c-parser.c (c_parser_statement_after_labels): Error if a
276 declaration is parsed after a label.
278 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
281 * reorg.c (emit_delay_sequence): Do not clear the locator on
282 the jump instruction.
284 2007-11-03 Jakub Jelinek <jakub@redhat.com>
287 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
288 current sched region.
290 2007-11-02 Jakub Jelinek <jakub@redhat.com>
292 * config/ia64/ia64.c (struct reg_write_state): Change into
293 unsigned short bitfields rather than unsigned int, decrease
294 first_pred to just 10 bits.
295 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
297 (rws_insn_set, rws_insn_test): New functions.
298 (in_safe_group_barrier): New variable.
299 (rws_update): Remove first argument, always set rws_sum array.
300 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
301 or update rws_sum if !in_safe_group_barrier, adjust rws_update
303 (rtx_needs_barrier): Use rws_insn_test macro.
304 (safe_group_barrier_needed): Don't save/restore rws_sum array,
305 instead set/clear in_safe_group_barrier flag.
307 2007-11-02 Bob Wilson <bob.wilson@acm.org>
309 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
310 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
311 pointer or frame pointer.
312 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
313 (MUST_USE_SJLJ_EXCEPTIONS): Define.
314 (DWARF2_UNWIND_INFO): Define.
315 (INCOMING_RETURN_ADDR_RTX): Define.
316 (DWARF_FRAME_RETURN_COLUMN): Define.
318 2007-11-02 Tom Tromey <tromey@redhat.com>
320 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
323 2007-11-02 Diego Novillo <dnovillo@google.com>
325 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
326 argument from function pointer ANALYZE_EXPR. Update all
328 * cgraph.c (debug_cgraph_node): New.
331 2007-11-02 Jakub Jelinek <jakub@redhat.com>
333 PR rtl-optimization/33648
334 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
335 the newly created basic block.
337 2007-11-01 Richard Guenther <rguenther@suse.de>
339 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
341 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
343 PR rtl-optimization/33828
344 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
347 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
349 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
350 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
351 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
353 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
355 * gcc.c (getenv_spec_function): Escape the environment variable's
358 2007-11-01 Janis Johnson <janis187@us.ibm.com>
360 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
361 show that CSE means common subexpression elimination. Change wording
362 for -fsee and define LCM. Remove capitalization of optimizations
363 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
365 2007-11-01 Janis Johnson <janis187@us.ibm.com>
368 * doc/sourcebuild.texi (Test Directives): Document that xfail
369 has no effect for dg-do except when dg-do-what is "run".
371 2007-11-01 Tom Tromey <tromey@redhat.com>
373 * c-decl.c (grokdeclarator): Set decl source locations.
374 * c-parser.c (c_parser_enum_specifier): Set location.
375 (c_parser_struct_or_union_specifier): Likewise.
377 2007-11-01 Tom Tromey <tromey@redhat.com>
379 * print-tree.c (print_node): Print column number.
381 2007-11-01 Jakub Jelinek <jakub@redhat.com>
384 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
385 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
386 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
388 PR rtl-optimization/33673
389 * gcse.c (cprop_jump): If a conditional jump has been optimized
390 into unconditional jump, make the remaining normal edge fallthru
391 and delete the jump insn.
393 2007-11-01 Ben Elliston <bje@au.ibm.com>
395 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
396 (set_mem_attrs_from_reg): Likewise.
398 2007-11-01 Michael Matz <matz@suse.de>
400 PR tree-optimization/33961
401 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
402 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
403 (add_or_mark_expr): New argument 'store', using it to search
405 (nt_init_block): Adjust calls to add_or_mark_expr.
407 2007-10-31 Jakub Jelinek <jakub@redhat.com>
410 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
411 for the first push_operand.
413 2007-10-31 Revital Eres <eres@il.ibm.com>
415 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
416 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
417 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
418 movmisalignv2sf, vcondv2sf): New.
419 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
420 UNSPEC_EXTODD_V2SF): Define new constants.
421 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
422 paired_emit_vector_cond_expr): New.
423 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
424 * config/rs6000/rs6000.c (paired_expand_vector_move,
425 paired_emit_vector_cond_expr, paired_emit_vector_compare):
427 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
429 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
431 PR tree-optimization/32377
432 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
433 work also for unknown number of iterations.
434 (analyze_subscript_affine_affine): Clean up. Don't fail when the
435 number of iterations is not known.
437 2007-10-31 Richard Guenther <rguenther@suse.de>
440 * fold-const.c (extract_muldiv_1): Make sure to not introduce
441 new undefined integer overflow.
442 (fold_binary): Avoid useless conversion.
444 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
447 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
450 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
452 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
454 * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
455 with -mhard-dfp/-mno-hard-dfp.
456 * config/s390/s390.opt: Likewise.
457 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
460 2007-10-30 Janis Johnson <janis187@us.ibm.com>
462 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
464 2007-10-30 Janis Johnson <janis187@us.ibm.com>
466 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
467 optimization options.
468 (Optimize Options): Add -fdce and -fdse to the list of optimizations
469 enabled by -O. Document -fdce and -fdse.
471 2007-10-30 Jakub Jelinek <jakub@redhat.com>
474 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
475 convert second operand of COMPOUND_EXPR to the original type of
478 2007-10-30 Richard Guenther <rguenther@suse.de>
480 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
481 of loop adding SFTs as virtual operands.
483 2007-10-30 Richard Guenther <rguenther@suse.de>
485 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
487 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
489 PR tree-optimization/32893
490 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
491 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
493 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
495 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
497 (sub_ddmmss): Likewise.
498 (umul_ppmm): Likewise.
499 (udiv_qrnnd): Likewise.
501 2007-10-29 Janis Johnson <janis187@us.ibm.com>
504 * doc/sourcebuild.texi (Test Directives): Document that dg-require
505 directives must come before dg-additional-sources.
507 2007-10-29 Jakub Jelinek <jakub@redhat.com>
509 PR tree-optimization/33723
510 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
511 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
513 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
515 PR tree-optimization/33614
516 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
517 if they can't be reduced to VECTOR_CSTs and aren't legitimate
518 initializer constants.
520 2007-10-29 Richard Guenther <rguenther@suse.de>
522 PR tree-optimization/33870
523 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
524 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
527 2007-10-29 Richard Guenther <rguenther@suse.de>
529 * passes.c (init_optimization_passes): Exchange store_copy_prop
531 * tree-pass.h (pass_store_copy_prop): Remove.
532 * tree-ssa-copy.c (do_store_copy_prop): Remove.
533 (stmt_may_generate-copy): Do not handle store_copy_prop.
534 (get_copy_of_val): Likewise.
535 (set_copy_of_val): Likewise.
536 (copy_prop_visit_assignment): Likewise.
537 (copy_prop_visit_stmt): Likewise.
538 (copy_prop_visit_phi_node): Likewise.
539 (init_copy_prop): Likewise.
540 (execute_copy_prop): Likewise.
541 (do_copy_prop): Remove.
542 (gate_store_copy_prop): Likewise.
543 (store_copy_prop): Likewise.
544 (pass_store_copy_prop): Likewise.
545 (pass_copy_prop): Call execute_copy_prop.
546 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
547 * common.opt (ftree-store-copy-prop): Mark obsolete.
548 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
550 2007-10-29 Ian Lance Taylor <iant@google.com>
552 * ifcvt.c (noce_can_store_speculate_p): New static function.
553 (noce_process_if_block): Call it.
554 (if_convert): Remove recompute_dominance parameter. Change all
557 2007-10-29 Richard Guenther <rguenther@suse.de>
559 * tree-flow-inline.h (get_subvar_at): Use binary search.
560 (get_first_overlapping_subvar): New function to binary search
561 for the first overlapping subvar.
562 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
563 just handle adding subvars for a pointed-to subvar. Optimize
564 and use get_first_overlapping_subvar.
565 (add_vars_for_bitmap): Fold into single caller.
566 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
567 and non pointed-to bits of add_vars_for_offset.
569 2007-10-29 Revital Eres <eres@il.ibm.com>
571 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
573 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
574 Zdenek Dvorak <ook@ucw.cz>
577 reduction support for automatic parallelization.
579 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
581 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
582 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
583 and OMP_ATOMIC_STORE.
584 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
585 * gimple-low.c (lower_stmt): Same.
586 * gimplify.c (gimplify_expr): Same.
587 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
588 gimplify_omp_atomic_mutex): Remove.
589 (gimplify_omp_atomic): Change it to simply gimplify the
590 statement instead of expanding it.
591 * omp-low.c: Add includes to optabs.h, cfgloop.h.
592 (expand_omp_atomic, expand_omp_atomic_pipeline,
593 goa_stabilize_expr, expand_omp_atomic_mutex,
594 expand_omp_atomic_fetch_op): New functions to implement
595 expansion of OMP_ATOMIC.
596 (expand_omp, build_omp_regions_1): Add support for
597 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
598 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
600 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
602 * tree-parloops.c: add include to tree-vectorizer.h.
603 (reduction_info): New structure for reduction.
604 (reduction_list): New list to represent list of reductions per loop.
605 (struct data_arg): New helper structure for reduction.
606 (reduction_info_hash, reduction_info_eq, reduction_phi,
607 initialize_reductions, create_call_for_reduction,
608 create_phi_for_local_result, create_call_for_reduction_1,
609 create_loads_for_reductions, create_final_loads_for_reduction):
611 (loop_parallel_p): Identify reductions, add reduction_list parameter.
612 (separate_decls_in_loop_name): Support reduction variables.
613 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
614 call create_loads_for_reduction for each reduction.
615 (canonicalize_loop_ivs): Identify reductions, add reduction_list
617 (transform_to_exit_first_loop): Add reduction support, add
618 reduction_list parameter.
619 (gen_parallel_loop): Add reduction_list parameter. Add call
620 separate_decls_in_loop with
621 the new argument. Traverse reductions and call
622 initialize_reductions, create_call_for_reduction.
623 (parallelize_loops): Create and delete the reduction list.
624 (add_field_for_name): Change use of data parameter. Add fields for
626 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
627 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
628 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
629 * tree-inline.c (estimate_num_insns_1): add cases for
630 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
631 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
632 * tree-ssa-operands.c (get_addr_dereference_operands):
633 New function. Subroutine of get_indirect_ref_operands.
634 (get_indirect_ref_operands): Call get_addr_dereference_operands.
635 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
638 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
640 * config/cris/cris.c: Include df.h.
641 (cris_address_cost): Add gcc_assert for canonicalization
642 assumptions. For PLUS with MULT or register, correct
643 test for register in other arm. Tweak comments.
645 2007-10-28 Richard Guenther <rguenther@suse.de>
647 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
648 telling if the var is to be treated as points-to location.
649 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
650 (add_virtual_operand): Only recurse into MPTs if aliases
653 2007-10-28 Richard Guenther <rguenther@suse.de>
655 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
656 (add_vars_for_bitmap): Do not recurse further. Only add vars
658 (add_virtual_operand): Re-instantiate loop to add operands for
659 aliases. Recurse into MPTs.
660 (get_indirect_ref_operands): If we fall back to use a pointers
661 SMT, make sure to not prune based on the access offset and size.
663 2007-10-28 Andrew Pinski <pinskia@gmail.com>
666 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
667 the eh information on the statement.
669 2007-10-28 Richard Guenther <rguenther@suse.de>
671 * tree-flow.h (subvar_t): Make it a VEC.
672 (struct subvar): Remove.
673 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
674 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
676 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
677 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
678 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
679 (set_initial_properties): Likewise.
680 (setup_pointers_and_addressables): Likewise.
681 (new_type_alias): Likewise.
682 (create_overlap_variables_for): Likewise.
683 * tree-dfa.c (dump_subvars_for): Likewise.
684 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
685 (get_expr_operands): Likewise.
686 (add_to_addressable_set): Likewise.
687 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
689 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
691 PR tree-optimization/33920
692 * tree-if-conv.c (tree_if_conversion): Force predicate of single
693 successor bb to true when predecessor bb has NULL predicate.
694 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
696 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
698 * config/mips/mips.md: Add combiner patterns for DImode extensions
699 of HImode and QImode truncations. Reformat HImode <- QImode pattern
702 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
705 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
707 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
709 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
710 LIBCALL notes if they are about to be moved to the same insn.
712 2007-10-27 Richard Guenther <rguenther@suse.de>
714 PR tree-optimization/33870
715 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
716 duplication. Remove redundant call to access_can_touch_variable.
717 (add_vars_for_bitmap): New helper for recursing over MPT contents.
718 (add_virtual_operand): Use it.
720 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
723 * pa.h (ASM_PN_FORMAT): Delete define.
725 2007-10-26 Janis Johnson <janis187@us.ibm.com>
727 * doc/invoke.texi (Option Summary, optimizations): Remove
728 -fbounds-check. Add -fassociative-math, -freciprocal-math,
729 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
730 -fsplit-wide-types to match later entry. Break up a long line.
731 (Option Summary, code gen options) Add -fno-stack-limit. Add
732 missing @gol to the end of a line.
733 (Optimization Options): Remove -fbounds-check, which is also
734 documented under Code Generation Options. Remove =n from
735 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
736 to -fcprop-registers to match other options, and say when it is
737 enabled rather than disabled. Remove extra index entry for
738 -fno-cx-limited-range. Add index entries for -fstack-protector
739 and -fstack-protector-all.
740 (Code Gen Options): Add index entry for -ftls-model.
742 2007-10-26 Anatoly Sokolov <aesok@post.ru>
744 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
745 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
746 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
747 expand_epilogue, output_movhi): Don't handle 'main' function.
748 (avr_attribute_table): Add 'OS_task' function attribute.
749 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
751 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
752 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
754 * config/avr/avr.opt (minit-stack): Remove.
756 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
758 * tree-nested.c (get_trampoline_type): Fix thinko.
760 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
763 * tree.c (build_offset_type): Build canonical type based on the
764 TYPE_MAIN_VARIANT of the base type.
766 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
768 * reorg.c (emit_delay_sequence): Move insn locator from the
769 first insn to the sequence.
771 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
773 * ipa-pure-const.c (check_decl): Return immediately when
774 pure_const_state has been set to IPA_NEITHER.
776 2007-10-25 Ira Rosen <irar@il.ibm.com>
778 PR tree-optimization/33833
779 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
780 and convert init to sizetype in inner_base construction.
782 2007-10-25 Richard Guenther <rguenther@suse.de>
784 * tree-flow.h (mem_sym_stats): Remove.
785 (dump_mem_sym_stats_for_var): Declare.
786 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
787 (mem_sym_stats): Move ...
788 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
789 (mem_sym_score): Rename from ...
790 (pscore): ... this. Remove.
791 (dump_mem_sym_stats_for_var): New function. Dump the score, but
793 (compare_mp_info_entries): Make sort stable by disambiguating
796 2007-10-25 Ira Rosen <irar@il.ibm.com>
798 PR tree-optimization/33866
799 * tree-vect-transform.c (vectorizable_store): Check operands of all
800 the stmts in the group of strided accesses. Get def stmt type for each
801 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
803 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
805 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
806 (Yt): Rename register constraint to Y2.
807 * config/i386/sse.md: Use renamed register constraints.
808 * config/i386/mmx.md: Ditto.
809 * config/i386/i386.md: Ditto.
811 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
813 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
815 2007-10-24 Chao-ying Fu <fu@mips.com>
817 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
818 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
820 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
821 Olga Golovanevsky <olga@il.ibm.com>
823 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
824 the compiler that wr.wrap and wr.domain are initialized in
827 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
829 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
830 to print gcov_type values.
832 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
834 * config/avr/avr.h: Do not include progmem_section definition when
835 building with IN_TARGET_LIBS.
837 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
840 * config/mips/mips.c (mips_lo_sum_offset): New structure.
841 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
842 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
843 (mips_orphaned_high_part_p: New functions.
844 (mips_avoid_hazard): Don't check INSN_P here.
845 (mips_avoid_hazards): Rename to...
846 (mips_reorg_process_insns): ...this. Cope with
847 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
848 or turn them into nops.
849 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
850 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
851 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
852 (mips_override_options): Set flag_delayed_branch to 0.
854 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
856 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
857 MIPS-specific implementation details.
858 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
859 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
860 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
861 for targets with movmemsi.
862 (MOVE_BY_PIECES_P): Define.
863 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
864 (mips_block_move_loop): Add a bytes_per_iter argument.
865 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
866 Update call to mips_block_move_loop.
868 2007-10-24 Michael Matz <matz@suse.de>
871 * var-tracking.c (variable_union): Don't break after one loop
872 iteration but only when a difference is found.
873 (dump_variable): Also print DECL_UID.
875 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
877 * ipa-type-escape.h: Expose function
878 is_array_access_through_pointer_and_index.
880 (is_array_access_through_pointer_and_index):
881 Add three new parameters. Add support of
882 POINTER_PLUS_EXPR tree code.
884 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
886 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
887 * tree-pass.h: Add pass_ipa_struct_reorg.
888 * common.opt: Add ipa-struct-reorg flag.
889 * Makefile.in: Add ipa-strcut-reorg.o compilation.
890 * passes.c: Add pass pass_ipa_struct_reorg.
891 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
892 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
894 2007-10-24 Ira Rosen <irar@il.ibm.com>
896 PR tree-optimization/33804
897 * tree-vect-transform.c (vectorizable_operation): Remove the
898 checks that the vectorization is worthwhile from the transformation
901 2007-10-24 Ira Rosen <irar@il.ibm.com>
903 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
904 vectype cannot be determined for the scalar type.
905 (vect_analyze_slp_instance): Likewise.
906 * tree-vect-transform.c (vect_model_reduction_cost): Change the
907 return type to bool. Return false if vectype cannot be determined
909 (vect_get_constant_vectors): Return false if vectype cannot be
910 determined for the scalar type.
911 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
912 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
913 vectorizable_reduction): Likewise.
915 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
917 * config.gcc: For a FreeBSD target, parse the value of ${target}
918 to determine the value of FBSD_MAJOR, instead of adding an
919 explicit check for every possible FreeBSD major version.
921 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
923 PR rtl-optimization/33846
924 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
926 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
928 PR tree-optimization/33860
929 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
930 interleaved accesses in case the dr is inside the inner-loop during
931 outer-loop vectorization.
933 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
935 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
936 Document MEM_POINTER. Replace mentions of "integrated"
937 field with "return_val". Delete outdated stuff.
939 2007-10-23 David Edelsohn <edelsohn@gnu.org>
941 * config/rs6000/rs6000.c (rs6000_override_options): Set
942 rs6000_altivec_abi on AIX.
943 (conditional_register_usage): Set VR20:31 fixed on AIX.
945 2007-10-23 Richard Guenther <rguenther@suse.de>
947 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
950 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
951 David S. Miller <davem@davemloft.net>
953 * df-scan.c (df_get_call_refs): Mark global registers as both a
954 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
956 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
958 PR tree-optimization/33834
959 PR tree-optimization/33835
960 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
961 stmts need to be checked for success seperately.
962 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
963 Remove the check that stmt is not LIVE.
964 (vectorizable_assignment, vectorizable_induction): Likewise.
965 (vectorizable_operation, vectorizable_type_demotion): Likewise.
966 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
968 (vectorizable_live_operation): Check that op is not NULL.
970 2007-10-22 Janis Johnson <janis187@us.ibm.com>
972 * doc/invoke.texi (Optimization Options): In the summary, show
973 that the value for options -falign-jumps, -falign-labels,
974 -falign-loops, -falign-functions, -fsched-stalled-insns, and
975 -fsched-stalled-insns-dep is optional. In the summary, show that
976 -fsched-stalled-insns takes an optional argument and that
977 -fparallelize-loops takes an argument. Add opindex for several
978 optimization options, and fix typos in the opindex commands for
979 several others. In the descriptions for -fsched-stalled-insns
980 and -fsched-stalled-insns-dep, show the options with and without
983 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
985 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
987 * config/avr/avr.h (LINK_SPEC): Likewise.
988 (CRT_BINUTILS_SPECS): Likewsie.
989 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
991 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
993 PR rtl-optimization/33644
994 * cfgcleanup.c: Do not include dce.h.
995 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
996 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
997 * dce.c (something_changed): Delete.
998 (libcall_dead_p): New predicate.
999 (delete_unmarked_insns): Use it to delete dead libcalls.
1000 Deal with REG_LIBCALL and REG_RETVAL notes.
1001 (prescan_libcall_for_dce): New function.
1002 (prescan_insns_for_dce): Use it to deal with libcalls.
1003 (mark_reg_dependencies): Do nothing special for libcalls.
1004 (dce_process_block): Likewise.
1005 (fast_dce): Delete unused local variable.
1006 (run_fast_dce): Do not return a value.
1007 * dce.h (struct df): Delete.
1008 (run_fast_dce): Adjust prototype.
1009 * optabs.c (libcall_id): Delete.
1010 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
1011 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
1012 * reload1.c (reload): Delete REG_LIBCALL_ID case.
1013 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
1014 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
1015 notes instead of REG_LIBCALL_ID notes.
1016 * reg-notes.def (LIBCALL_ID): Delete.
1017 * Makefile.in (see.o): Add dce.h dependency.
1018 (cfgcleanup.o): Remove dce.h dependency.
1020 2007-10-22 Michael Matz <matz@suse.de>
1022 PR tree-optimization/33855
1023 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
1026 2007-10-22 Ira Rosen <irar@il.ibm.com>
1028 PR tree-optimization/33854
1029 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
1030 FLOAT_EXPR to the list of promotion operations.
1032 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
1036 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
1037 (print_reg): Print register prefix only with AT&T asm syntax.
1038 Support pc_rtx for RIP register.
1039 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
1040 relative addressing. Always print segment register prefix with AT&T
1041 asm syntax and never with Intel asm syntax.
1042 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
1043 Fix prefix for 16-byte XFmode operands.
1044 (output_addr_const_extra): Support Intel asm syntax.
1045 (x86_file_start): Don't use register prefix with Intel asm syntax.
1046 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
1047 ("return_internal_long"): Fix Intel asm syntax output.
1048 ("set_got_rex64"): Support Intel asm syntax.
1049 ("set_rip_rex64"): Likewise.
1050 ("set_got_offset_rex64"): Likewise.
1051 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
1053 ("*tls_global_dynamic_64"): Likewise.
1054 ("*tls_local_dynamic_base_64"): Likewise.
1055 ("*load_tp_si")("*load_tp_di"): Likewise.
1056 ("*add_tp_si")("*add_tp_di"): Likewise.
1057 ("*tls_dynamic_lea_64"): Likewise.
1058 ("*sibcall_value_1_rex64_v"): Likewise.
1059 ("stack_tls_protect_set_si"): Likewise.
1060 ("stack_tls_protect_set_di"): Likewise.
1061 ("stack_tls_protect_test_si"): Likewise.
1062 ("stack_tls_protect_test_di"): Likewise.
1063 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
1065 ("*movv2sf_internal_rex64"): Likewise.
1066 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
1067 (__get_cpuid_max): Likewise.
1069 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1071 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
1072 the STRICT_P argument type "bool" rather than "int".
1073 (mips_legitimate_address_p): Likewise.
1074 (fp_register_operand, lo_operand): Delete.
1075 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1076 (mips_emit_scc): Rename to...
1077 (mips_expand_scc): ...this.
1078 (gen_conditional_branch): Rename to...
1079 (mips_expand_conditional_branch): ...this.
1080 (gen_conditional_move): Rename to...
1081 (mips_expand_conditional_move): ...this.
1082 (mips_gen_conditional_trap): Rename to...
1083 (mips_expand_conditional_trap): ...this and take an rtx code instead
1084 of an operands array.
1085 (mips_expand_call): Give the SIBCALL_P argument type "bool"
1087 (mips_emit_fcc_reload): Rename to...
1088 (mips_expand_fcc_reload): ...this.
1089 (init_cumulative_args): Rename to...
1090 (mips_init_cumulative_args): ...this and remove the libname argument.
1091 (function_arg_advance): Rename to...
1092 (mips_function_arg_advance): ...this.
1093 (function_arg): Rename to...
1094 (mips_function_arg): ...this and use "rtx" instead of
1096 (function_arg_boundary): Rename to...
1097 (mips_function_arg_boundary): ...this.
1098 (mips_expand_unaligned_load): Rename to...
1099 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1100 and BITPOS arguments type "HOST_WIDE_INT".
1101 (mips_expand_unaligned_store): Rename to...
1102 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1103 and BITPOS arguments type "HOST_WIDE_INT".
1104 (override_options): Rename to...
1105 (mips_override_options): ...this.
1106 (print_operand): Rename to...
1107 (mips_print_operand): ...this.
1108 (print_operand_address): Rename to...
1109 (mips_print_operand_address): ...this.
1110 (mips_output_ascii): Remove the PREFIX argument.
1111 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1113 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1114 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
1115 of "struct rtx_def *".
1116 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1118 (build_mips16_call_stub): Delete.
1119 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1120 (mips_use_ins_ext_p): Give the second and third arguments type
1121 "HOST_WIDE_INT" rather than "rtx".
1122 * config/mips/mips.h: Update after the above changes. Tweak comments
1124 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
1125 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1126 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1127 element type from "char" to "bool".
1128 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
1129 (mips_cpu_info_table): Delete.
1130 * config/mips/mips.md: Update after the above changes. Tweak some
1132 * config/mips/mips-ps-3d.md: Likewise.
1133 * config/mips/mips.c: Tweak comments and formatting.
1134 Use NULL-like macros rather than 0 in various places.
1135 (mips_section_threshold): Rename to...
1136 (mips_small_data_threshold): ...this and give it an unsigned type.
1137 (num_source_filenames): Remove explicit initialization.
1138 (sdb_label_count): Likewise.
1139 (sym_lineno): Delete.
1140 (set_noat): Make static.
1141 (mips_branch_likely): Likewise, and give it type "bool".
1142 (mips_isa_info): Rename to...
1143 (mips_isa_option_info): ...this.
1144 (mips_flag_delayed_branch): Rename to...
1145 (mips_base_delayed_branch): ...this.
1146 (mips_split_addresses): Delete.
1147 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1148 element type from "char" to "bool".
1149 (mips_regno_to_class): Add an explicit array size.
1150 (mips16_flipper): Change from type "int" to type "bool".
1151 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
1152 (mips_tls_operand_p): Rename to...
1153 (mips_tls_symbol_p): ...this.
1154 (mips_global_symbol_p): Remove redundant "const".
1155 (mips_offset_within_alignment_p): Simplify.
1156 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
1157 to STRICT_P and give it type bool.
1158 (mips_valid_base_register_p): Likewise.
1159 (mips_classify_address): Likewise.
1160 (mips_legitimate_address_p): Likewise.
1161 (mips16_unextended_reference_p): Take the offset as an
1162 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
1163 (mips_const_insns): Use IN_RANGE.
1164 (mips_force_temporary): Remove an unnecessary copy_rtx.
1165 (mips16_gp_pseudo_reg): Simplify.
1166 (mips_split_symbol): Remove an unnecessary copy_rtx.
1167 (mips_legitimize_tls_address): Only create registers if we need them.
1168 (mips_legitimize_address): Use mips_split_plus.
1169 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
1170 variable COST to NUM_OPS.
1171 (mips_legitimize_move): Use gen_lowpart.
1172 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
1173 (m16_check_op): Use IN_RANGE.
1174 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1175 (mips_split_doubleword_move): Pass booleans to mips_subword.
1176 (mips_output_move): Store the mode in a local variable.
1177 Explicitly assert that this function does not deal with
1178 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
1179 cases more consistent.
1180 (mips_relational_operand_ok_p): Rename to...
1181 (mips_int_order_operand_ok_p): ...this.
1182 (mips_canonicalize_comparison): Rename to...
1183 (mips_canonicalize_int_order_test): ...this.
1184 (mips_emit_int_relational): Rename to...
1185 (mips_emit_int_order_test): ...this. Store the mode in a local
1187 (mips_reverse_fp_cond_p): Rename to...
1188 (mips_reversed_fp_cond): ...this.
1189 (mips_emit_compare): Make the order of the statements more consistent.
1190 (mips_emit_scc): Rename to...
1191 (mips_expand_scc): ...this.
1192 (gen_conditional_branch): Rename to...
1193 (mips_expand_conditional_branch): ...this.
1194 (gen_conditional_move): Rename to...
1195 (mips_expand_conditional_move): ...this. Build the condition
1196 separately from the main pattern.
1197 (mips_gen_conditional_trap): Rename to...
1198 (mips_expand_conditional_trap): ...this and take an rtx code instead
1199 of an operands array. Simplify.
1200 (init_cumulative_args): Rename to...
1201 (mips_init_cumulative_args): ...this. Use memset rather than a
1202 copy from a zeroed static. Use prototype_p and stdarg_p.
1203 (mips_arg_info): Rename to...
1204 (mips_get_arg_info): ...this and put the INFO argument first.
1205 (function_arg): Rename to...
1206 (mips_function_arg): ...this and use "rtx" instead of
1207 "struct rtx_def *". Only split structures into chunks if
1208 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
1209 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
1210 comparison with REAL_TYPE. Rename local variable REG to REGNO
1211 and make it unsigned.
1212 (function_arg_advance): Rename to...
1213 (mips_function_arg_advance): ...this.
1214 (function_arg_boundary): Rename to...
1215 (mips_function_arg_boundary): ...this.
1216 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
1218 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
1219 comparison with REAL_TYPE.
1220 (mips_function_value): Remove the FUNC argument. Rename local
1221 variable UNSIGNEDP to UNSIGNED_P.
1222 (mips_return_in_memory): Use IN_RANGE.
1223 (mips_setup_incoming_varargs): Pass a boolean rather than an int
1224 to FUNCTION_ARG_ADVANCE.
1225 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
1226 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
1227 SIZE and RSIZE if needed.
1228 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
1230 (build_mips16_function_stub): Rename to...
1231 (mips16_build_function_stub): ...this.
1232 (build_mips16_call_stub): Rename to...
1233 (mips16_build_call_stub): ...this. Make static, and return a
1234 "bool" rather than an "int". Rename the ARG_SIZE argument to
1235 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
1236 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
1237 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
1239 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
1240 are not sibling ones.
1241 (mips_emit_fcc_reload): Rename to...
1242 (mips_expand_fcc_reload): ...this.
1243 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
1245 (mips_expand_unaligned_load): Rename to...
1246 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1247 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
1249 (mips_expand_unaligned_store): Rename to...
1250 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1251 and BITPOS arguments type "HOST_WIDE_INT".
1252 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
1253 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
1255 (mips_init_split_addresses): Replace with...
1256 (mips_split_addresses_p): ...this new function.
1257 (mips_init_relocs): Check mips_split_addresses_p () rather than
1258 mips_split_addresses. Always initialize mips_split_p with booleans.
1259 (print_operand_reloc): Rename to...
1260 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
1262 (print_operand): Rename to...
1263 (mips_print_operand): ...this.
1264 (print_operand_address): Rename to...
1265 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
1266 (mips_in_small_data_p): Simplify.
1267 (mips_output_ascii): Remove the PREFIX argument and "register"
1268 keywords. Use the STRING parameter directly and cast to
1270 (mips16e_collect_argument_save_p): Use IN_RANGE.
1271 (mips_function_has_gp_insn): Simplify.
1272 (mips_set_return_address): Use BITSET_P.
1273 (mips_restore_gp): Use a separate statement to pick the base
1275 (mips_output_function_prologue): Use a local FRAME variable.
1276 (mips_save_reg): Pass booleans to mips_subword.
1277 (mips_expand_prologue): Use a local FRAME variable. Use
1278 cprestore_size to detect when .cprestore is needed.
1279 (mips_restore_reg): Use GP_REG_FIRST.
1280 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1281 rather than "int". Use local FRAME and REGNO variables.
1282 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1283 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1285 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
1286 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1287 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
1288 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
1289 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
1290 (builtin_description): Rename to...
1291 (mips_builtin_description): ...this.
1292 (mips_bdesc): Rename to...
1293 (mips_ps_bdesc): ...this.
1294 (sb1_bdesc): Rename to...
1295 (mips_sb1_bdesc): ...this.
1296 (dsp_bdesc): Rename to...
1297 (mips_dsp_bdesc): ...this.
1298 (dsp_32only_bdesc): Rename to...
1299 (mips_dsp_32only_bdesc): ...this.
1300 (bdesc_map): Rename to...
1301 (mips_bdesc_map): ...this.
1302 (bdesc_arrays): Rename to...
1303 (mips_bdesc_arrays): ...this.
1304 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
1305 Tweak error message.
1306 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
1307 Rename local variables I and J to OPNO and ARGNO respectively.
1308 Assert that the number of arguments is no more than the number of
1310 (mips_expand_builtin_compare): Use an array of arguments rather
1311 than an array of operands. Assert that the number of operands is
1313 (add_constant): Rename to...
1314 (mips16_add_constant): ...this. Use XNEW.
1315 (dump_constants_1): Rename to...
1316 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
1317 (dump_constants): Rename to...
1318 (mips16_emit_constants): ...this.
1319 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
1320 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
1321 Assign mips16_p to was_mips16_p.
1322 (mips_parse_cpu): Tweak warning message.
1323 (override_options): Rename to...
1324 (mips_override_options): ...this. Move the mips_cost initialization
1325 out of the "shared with GAS" block. Quote option names in error
1327 (mips_conditional_register_usage): Make local variable REGNO unsigned.
1328 (mips_order_regs_for_local_alloc): Remove register keyword.
1330 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1332 * system.h (IN_RANGE): Cast each argument individually.
1334 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1336 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
1337 MIPS16 code unless using o32 or o64.
1339 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1341 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
1342 for modes smaller than 4 bytes.
1343 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
1346 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1348 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
1349 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
1350 (ASM_OUTPUT_ALIGNED_BSS): Delete.
1351 * config/mips/mips.c (mips_output_aligned_bss): Delete.
1353 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1355 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
1356 sibling calls to "mips16" functions if the function satisfies
1357 const_call_insn_operand.
1359 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1361 * config/mips/mips.c (mips_va_start): Fix types in calls
1364 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1366 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
1369 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1371 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
1372 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
1373 instead of checking mips_isa.
1375 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1377 * doc/invoke.texi (-mpaired-single): Don't say that the option
1378 requires 64-bit code.
1379 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
1380 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
1381 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
1382 V2SF if ISA_MIPS32R2.
1383 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
1384 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
1385 to ISA_HAS_NMADD_NMSUB.
1386 (mips_split_doubleword_move): Handle V2SF.
1387 (mips_modes_tieable_p): New function.
1388 (override_options): Report a warning rather than an error when
1389 -mpaired-single is used on ISAs that don't support it; use
1390 ISA_HAS_PAIRED_SINGLE to check that case.
1391 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
1392 and DF move splitters with a single MOVE64 splitter, thereby adding
1393 a V2SF splitter too.
1394 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
1395 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
1396 (HALFMODE): Add V2SF.
1397 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
1398 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
1399 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
1400 (movv2sf_hardfloat_32bit): New pattern.
1401 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
1402 TARGET_DOUBLE_FLOAT conditions.
1404 2007-10-20 Jakub Jelinek <jakub@redhat.com>
1406 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
1407 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
1408 64-bit register in 64-bit libgcc.
1410 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
1412 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
1413 * config/avr/avr.h (LINK_SPEC): Likewise.
1414 (CRT_BINUTILS_SPECS): Likewsie.
1415 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1417 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1419 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
1420 and -Wfatal-errors together.
1422 2007-10-20 Alan Modra <amodra@bigpond.net.au>
1425 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
1426 change for vrsave, ie restore after frame pop.
1428 2007-10-19 David S. Miller <davem@davemloft.net>
1430 * config/sparc/niagara2.md: Fix copyright notice.
1432 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
1434 PR tree-optimization/23820
1435 PR tree-optimization/24309
1436 PR tree-optimization/33766
1437 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
1438 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
1439 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
1440 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
1441 * tree-loop-linear.c (perfect_loop_nest_depth): New.
1442 (linear_transform_loops): Use perfect_loop_nest_depth.
1443 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
1444 should have a single condition: their exit.
1446 2007-10-19 Richard Guenther <rguenther@suse.de>
1450 * stor-layout.c (layout_type): Assert that aggregates do not
1451 have their alias sets set.
1452 * alias.c (get_alias_set): Return alias set zero for incomplete
1453 types, return the alias set of the element for incomplete array
1454 types, but do not remember these.
1456 2007-10-19 Richard Guenther <rguenther@suse.de>
1459 2007-10-19 Richard Guenther <rguenther@suse.de>
1462 * tree.c (build_array_type): Do not re-layout unbound array
1465 2007-10-19 Richard Guenther <rguenther@suse.de>
1468 * tree.c (build_array_type): Do not re-layout unbound array
1471 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1473 * config/mips/mips.c (mips_canonicalize_comparison): Check
1474 mips_relational_operand_ok_p before trying to rewrite the test.
1475 Only calculate PLUS_ONE if needed.
1476 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
1479 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1481 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
1484 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1486 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
1487 the call uses the incoming value of $2.
1489 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1491 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
1492 rather then gen_rtx_MEM.
1493 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
1495 (mips_set_return_address): Likewise.
1496 (mips_restore_gp): Likewise.
1498 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1500 * config/mips/mips.c (gpr_mode): Delete.
1501 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
1502 instead of gpr_mode.
1503 (mips_for_each_saved_reg): Likewise.
1504 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1505 (override_options): Don't initialize gpr_mode.
1506 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
1508 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1510 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
1512 (mips_class_max_nregs): Calculate the smallest consituent register
1513 size and use that to determine an upper bound on the number of
1516 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1518 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
1520 (mips_expand_epilogue): ...here.
1521 (mips_mdebug_abi_name): New function, split out from...
1522 (mips_file_start): ...here.
1523 (mips_hard_regno_mode_ok_p): New function, split out from...
1524 (override_options): ...here.
1525 (mips_expand_builtin_1): New function, split out from...
1526 (mips_expand_buitin): ...here. Abort if we don't recognize
1529 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1531 * config/mips/mips.c (build_mips16_function_stub): Load the
1532 target address into $1 before transfering the arguments.
1533 Don't use ".set noreorder".
1534 (build_mips16_call_stub): Likewise.
1536 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1538 * config/mips/mips.c (mips_output_32bit_xfer): New function.
1539 (mips_output_64bit_xfer): Likewise.
1540 (mips16_fp_args): Rename to...
1541 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
1542 with a DIRECTION argument. Use mips_output_32bit_xfer and
1543 mips_output_64bit_xfer.
1544 (build_mips16_function_stub): Update accordingly.
1545 (mips16_fpret_double): Delete.
1546 (build_mips16_call_stub): Update after above changes.
1547 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
1548 of mips16_fpret_double. Use GP_REG_RETURN.
1550 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1552 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
1553 use asm_out_file instead.
1554 (build_mips16_function_stub): Likewise.
1555 (build_mips16_call_stub, mips_output_function_prologue): Update
1558 2007-10-18 David S. Miller <davem@davemloft.net>
1560 Add Niagara-2 support.
1561 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
1562 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
1563 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
1564 (include): Add inclusion of niagara2.md
1565 * config/sparc/sparc.c (niagara2_costs): New.
1566 (sparc_override_options): Add niagara2 entry to cpu_default[]
1567 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
1568 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
1569 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
1570 (sparc_initialize_trampoline): Handle niagara2 like niagara.
1571 (sparc64_initialize_trampoline): Likewise.
1572 (sparc_use_sched_lookahead): Likewise.
1573 (sparc_issue_rate): Likewise.
1574 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
1576 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
1577 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
1578 TARGET_CPU_niagara2.
1579 (PROCESSOR_NIAGARA2): New.
1580 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
1581 (BRANCH_COST): Likewise.
1582 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
1583 * config/sparc/sol2.h: Likewise.
1584 * config/sparc/niagara2.md: New file.
1586 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1588 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
1590 (mips_compute_frame_info): Remove associated code.
1591 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
1593 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1595 * config/mips/mips-protos.h (compute_frame_size): Delete.
1596 * config/mips/mips.h: Update comments.
1597 * config/mips/mips.c (mips_frame_info): Remove initialized.
1598 (compute_frame_size): Rename to...
1599 (mips_compute_frame_info): ...this and make static. Remove the
1600 SIZE argument and return no value. Remove the setting of initialized.
1601 Update rest of file accordingly.
1602 (mips_set_return_address): Don't call compute_frame_size.
1603 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
1604 Don't call compute_frame_size.
1606 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1608 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
1609 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
1610 mips_hard_frame_pointer_required.
1611 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
1612 large MIPS16 frames.
1613 * config/mips/mips.c (mips_frame_pointer_required): New function.
1615 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1617 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
1618 and hard_frame_pointer_offset.
1619 (mips_debugger_offset): Use hard_frame_pointer_offset.
1620 (mips16e_collect_argument_save_p): Likewise.
1621 (compute_frame_size): Initialize arg_pointer_offset and
1622 hard_frame_pointer_offset.
1623 (mips_initial_elimination_offset): Use them.
1624 (mips_output_function_prologue): Use hard_frame_pointer_offset.
1625 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1627 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1629 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
1631 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
1632 "unsigned int" rather than "int" and put them with the other
1633 register-related fields. Put expanded comments above fields
1634 rather than to their right.
1635 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
1636 with a NUM_REGS_PTR argument.
1637 (mips16e_save_restore_pattern_p): Update accordingly.
1638 (compute_frame_size): Clarify frame diagram. Rewrite.
1640 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1642 * config/mips/mips-ftypes.def: New file.
1643 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
1644 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
1645 (mips_function_type): Redefine using mips-ftypes.def.
1646 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
1647 (mips_builtin_vector_type): New function.
1648 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
1649 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
1650 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
1651 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
1653 (mips_build_function_type): New function.
1654 (mips_init_builtins): Use it to create types lazily.
1656 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1658 * config/mips/mips.h (set_volatile): Delete.
1659 * config/mips/mips.c (set_volatile): Delete.
1660 (mips_print_operand_punctuation): New function, split out from
1661 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
1662 Use the same character ordering in the code and the comments.
1663 Use a recursive call to handle '*'. Abort on unknown characters.
1664 (mips_init_print_operand_punct): New function, split out from
1666 (mips_print_int_branch_condition): New function, split out from
1667 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
1668 to report unexpected codes.
1669 (mips_print_float_branch_condition): New function, split out from
1670 print_operand. Use output_operand_lossage to report unexpected codes.
1671 (print_operand): Rework to use a case statement. Use the
1672 same letter ordering in the code and the comments. Use
1673 output_operand_lossage to report unexpected codes and
1674 reverse_condition to handle inverted branch conditions.
1675 (override_options): Use mips_init_print_operand_punct.
1677 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1679 * config/mips/mips.h: Move variable declarations to end of file and
1680 enclose them all in #ifndef USED_FOR_TARGET.
1681 * config/mips/mips.c: Reorder functions into more logical groups,
1682 and so that callees appear before callers. Put the targetm
1683 initializer at the end of the file. Remove forward static
1684 declarations where possible.
1685 (mips_init_builtins): Add "static" to definition.
1686 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
1688 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1690 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
1691 (TARGET_MAX_ANCHOR_OFFSET): Delete.
1692 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
1693 (mips_set_mips16_mode): Initialize min_anchor_offset and
1694 max_anchor_offset directly to constants.
1696 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1698 * config/mips/mips.c: Delete trailing whitespace.
1700 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1702 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
1703 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
1705 * config/mips/mips.md (load_call<mode>): Don't make the unspec
1706 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
1708 2007-10-18 David Daney <ddaney@avtrex.com>
1710 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
1711 reg_offset variable to calculate register locations.
1713 2007-10-18 Richard Guenther <rguenther@suse.de>
1715 * tree-ssa.c (uid_ssaname_map_eq): New function.
1716 (uid_ssaname_map_has): Likewise.
1717 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
1718 * tree-flow.h (struct gimple_df): Make default_defs a
1720 * tree-dfa.c (gimple_default_def): Deal with it.
1721 (set_default_def): Likewise.
1723 2007-10-18 Richard Guenther <rguenther@suse.de>
1725 * tree-flow.h (struct gimple_df): Make referenced_vars
1727 (uid_decl_map_eq): Declare.
1728 (uid_decl_map_hash): Likewise.
1729 * tree-ssa.c (uid_decl_map_eq): New function.
1730 (uid_decl_map_hash): Likewise.
1731 (init_tree_ssa): Make referenced_vars a uid_decl_map.
1732 * tree-flow-inline.h (first_referenced_var): Deal with
1733 the referenced_vars representation change.
1734 (next_referenced_var): Likewise.
1735 * tree-dfa.c (referenced_var_lookup): Likewise.
1736 (referenced_var_check_and_insert): Likewise.
1737 (remove_referenced_var): Likewise.
1739 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
1741 * config/mips/mips.c (mips_dwarf_register_span): New.
1742 (TARGET_DWARF_REGISTER_SPAN): Define.
1744 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
1746 * config.gcc : update score-*-elf(extra_objs).
1747 * config/score/mac.md : Remove.
1748 * config/score/misc.md : Remove.
1749 * config/score/score7.md : Remove.
1750 * config/score/score-mdaux.h : Remove.
1751 * config/score/score-mdaux.c : Remove.
1752 * config/score/score-version.h : Remove.
1753 * config/score/score-generic.md : New.
1754 * config/score/score3.h : New.
1755 * config/score/score3.c : New.
1756 * config/score/score7.h : New.
1757 * config/score/score7.c : New.
1758 * config/score/mul-div.S : add flush_cache score3 support.
1759 * config/score/elf.h : Fix some typos.
1760 * config/score/score.md : merge score3 and score7 pattern.
1761 * config/score/score.c : use to seperate which target it used.
1762 * config/score/score.h : use to seperate the target macro.
1763 * config/score/score.opt : remove -mmac option , add -mscore3,
1764 -mscore3d and -march OPTION support.
1766 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
1768 * cfgexpand.c (expand_stack_vars): Add checking to make sure
1769 that the offset of a variable is not greater than the size
1772 2007-10-17 Anatoly Sokolov <aesok@post.ru>
1774 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
1775 atmega88p, atmega168p and atmega328p devices.
1776 * config/avr/avr.h (LINK_SPEC): (Ditto.).
1777 (CRT_BINUTILS_SPECS): (Ditto.).
1778 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1780 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1782 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
1784 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
1785 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
1786 (print_insn): Move declaration to ...
1787 * rtl.h (print_insn): ... here.
1789 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1791 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
1792 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
1793 m68k_sched_branch_type): Move declarations to ...
1794 * config/m68/m68k-protos.h: ... here.
1796 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1798 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
1800 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
1802 * config/avr/avr.c (avr_mcu_types): Add attiny48.
1803 * config/avr/avr.h (LINK_SPEC): Likewise.
1804 (CRT_BINUTILS_SPECS): Likewsie.
1805 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1807 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
1809 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
1810 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
1811 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1813 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
1816 * reg-stack.c (move_for_stack_reg): Swap input argument of
1817 UNSPEC_TAN insn to the top of the stack.
1819 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
1822 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
1823 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
1824 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
1825 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
1826 immediate shift value.
1827 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
1828 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
1829 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
1830 Remove macros for !__OPTIMIZE__ case.
1832 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
1834 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
1836 (perform_var_substitution): Only DFS from real nodes. Don't test
1838 (unite_pointer_equivalences): Fix broken test.
1840 2007-10-17 Alan Modra <amodra@bigpond.net.au>
1842 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
1843 altivec sp_offset. Rearrange sp_offset assignments to
1844 correspond to stack adjustments. Use frame_reg_rtx for
1845 SPE register restores. Correct SPE stack adjustment.
1847 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1849 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
1850 * toplev.c (check_global_declaration_1): Use appropriate warning
1851 option instead of unnamed warning.
1852 * stor-layout.c (layout_decl): Likewise.
1853 * c-typeck.c (build_conditional_expr): Likewise.
1854 (build_compound_expr): Fix wrong comment.
1855 (build_binary_op): Use appropriate warning option instead of
1857 * cfgexpand.c (tree_expand_cfg): Likewise.
1858 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1859 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
1860 (execute_warn_function_return): Likewise.
1861 * stmt.c (warn_if_unused_value): Likewise.
1863 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
1865 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
1866 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
1868 (CRT_BINUTILS_SPECS): Likewsie.
1869 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1871 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
1874 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
1876 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1878 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
1879 (fini_dce): Only release them for the fast pass.
1880 (end_ud_dce): Delete.
1881 (rest_of_handle_ud_dce): Do not modify df_in_progress.
1882 Call fini_dce instead of end_ud_dce.
1883 (rest_of_handle_fast_dce): Do not modify df_in_progress.
1884 (run_fast_df_dce): Reset df_in_progress to false on exit.
1886 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
1887 Maxim Kuvyrkov <maxim@codesourcery.com>
1889 * target.h (unspec_may_trap_p): New target hook.
1890 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
1891 * targhooks.c (default_unspec_may_trap_p): Default implementation of
1893 * targhooks.h (default_unspec_may_trap_p): Declare it.
1894 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
1895 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
1896 * rtl.h (may_trap_p_1): Declare.
1898 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
1899 override default hook implementation.
1900 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
1903 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1905 * doc/invoke.texi (Wextra): Move it just after Wall, list the
1906 options enabled by Wextra and mention Wuninitialized.
1908 2007-10-15 Nigel Stephens <nigel@mips.com>
1910 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
1912 2007-10-15 Jakub Jelinek <jakub@redhat.com>
1914 PR tree-optimization/33136
1915 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
1917 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
1919 PR tree-optimization/33735
1920 PR tree-optimization/33572
1921 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
1922 2007-10-09's change.
1923 * except.c (duplicate_eh_regions): Don't look for prev_try
1924 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
1926 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
1929 * tree-inline.c (copy_bb): Use bsi_replace to replace a
1930 __builtin_va_arg_pack-containing call stmt.
1932 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
1934 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
1937 2007-10-15 Jakub Jelinek <jakub@redhat.com>
1939 PR tree-optimization/33619
1940 * tree-ssa-ter.c (is_replaceable_p): Return false for all
1943 2007-10-15 David Edelsohn <edelsohn@gnu.org>
1945 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
1947 2007-10-15 Richard Guenther <rguenther@suse.de>
1949 * fold-const.c (extract_array_ref): Remove.
1950 (fold_comparison): Handle POINTER_PLUS_EXPR with the
1951 generic address expression comparison folding. Remove
1952 the folding that used extract_array_ref.
1954 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1957 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
1958 speculation type of insn can be changed before trying to do that.
1960 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1962 * dse.c (struct insn_info): Add 'frame_read' field.
1963 (scan_insn): For the call to a const function, set frame_read if
1964 reload has been run.
1965 If the insn reads the frame, kill the frame related stores.
1966 (scan_reads_nospill): Likewise.
1968 2007-10-14 Jason Merrill <jason@redhat.com>
1970 * tree-eh.c (optimize_double_finally): Don't assume that the
1971 cleanup we're duplicating is only one statement.
1973 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
1975 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
1976 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
1977 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
1978 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
1979 tree-vect-transform.c: Fix comment typos.
1980 * doc/extend.texi: Fix a typo.
1982 * c-common.h: Remove the prototype for c_expand_body.
1983 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
1984 * tree.h: Remove the prototype for fold_build_call_expr.
1986 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
1988 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
1990 2007-10-13 David Edelsohn <edelsohn@gnu.org>
1992 * config/rs6000/aix53.h: New file.
1993 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
1994 (TARGET_ALTIVEC_ABI): Same.
1995 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
1996 (TARGET_ALTIVEC_ABI): Delete.
1997 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
1998 stanza defaulting to aix5.3.
2000 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2002 * config/i386/i386.md (SI_REG, DI_REG): New constants.
2003 (strmov): Use defined constants.
2004 (cmpstrnsi): Likewise.
2005 * config/i386/i386.c (decide_alg): Use defined constants.
2006 (ix86_expand_strlen): Likewise.
2008 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
2010 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
2011 * var-tracking.c (micro_operation_def): Update comment on u.loc.
2012 (mode_for_reg_attrs, var_lowpart): New functions.
2013 (add_uses): Consider recording a lowpart of LOC for MO_USE.
2014 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
2015 or copy is known, set LOC to the SET that performs the set, instead
2017 (find_src_status, find_src_set_src): Remove LOC parameter.
2018 Replace INSN with the source value.
2019 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
2020 handling MO_SET and MO_COPY. Update the calls to find_src_status
2021 and find_src_set_src.
2023 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2026 * config/i386/i386.md (strmov): Check for esi and edi usage.
2027 * config/i386/i386.c (decide_alg): Check whether we can use a
2028 rep prefix and adjust algorithm choice accordingly.
2029 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
2031 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2033 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
2035 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
2037 * global.c (build_insn_chain): Formatting fixes.
2039 2007-10-12 Richard Guenther <rguenther@suse.de>
2041 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
2042 combining both operands require either both have single uses
2043 or combining to a constant.
2045 2007-10-12 Richard Guenther <rguenther@suse.de>
2048 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
2049 a rhs with side-effects or which is a load.
2050 (forward_propagate_into_cond): Also try combining both operands.
2052 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
2054 PR tree-optimization/33742
2055 * tree-vect-transform.c (vectorizable_operation): Return false
2056 if get_vectype_for_scalar_type for scalar_dest can't be determined.
2057 (vectorizable_call): Same for rhs_type and lhs_type.
2059 2007-10-12 Jakub Jelinek <jakub@redhat.com>
2061 PR tree-optimization/33645
2062 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
2063 pass it to walk_tree.
2064 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
2065 When calling set_is_used on a VAR_DECL, if data is not NULL and
2066 its DECL_UID is in the bitmap, call mark_all_vars_used on its
2067 DECL_INITIAL after clearing the bit in bitmap.
2068 (remove_unused_locals): Adjust mark_all_vars_used callers.
2069 Instead of removing unused global vars from unexpanded_var_list
2070 immediately record them in bitmap, call mark_all_vars_used on
2071 all used global vars from unexpanded_var_list and only purge
2072 global vars that weren't found used even during that step.
2074 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2076 * gthr-posix.h (__gthread_active_init): Create detached instead of
2077 joinable thread when testing whether threads are active on hppa-hpux.
2078 * gthr-posix95.h (__gthread_active_init): Likewise.
2080 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2083 * global.c (build_insn_chain): Include insn that occur between
2086 2007-10-11 Tom Tromey <tromey@redhat.com>
2088 * gengtype-yacc.y: Delete.
2090 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
2092 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
2093 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
2094 function_value_32, function_value_64, function_value_ms_64,
2095 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
2096 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
2099 2007-10-11 Richard Guenther <rguenther@suse.de>
2101 * gcse.c (hash_scan_set): If the next nonnote insn is in
2102 a different basic block insert the set.
2104 2007-10-11 Richard Guenther <rguenther@suse.de>
2107 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
2108 (verify_gimple_expr): Use it to verify pointer-to types for
2111 2007-10-11 Richard Guenther <rguenther@suse.de>
2114 * c-typeck.c (build_array_ref): Do not strip qualifiers from
2115 the array element type.
2117 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2119 PR rtl-optimization/33638
2120 * dse.c (struct insn_info): Remove 'stack_read' field,
2121 add 'stack_pointer_based' field.
2122 (record_store): For a store with non-constant base, record
2123 whether it is stack pointer based.
2124 (scan_insn): For the call to a const function, remove stack
2125 pointer based stores from the list of local active stores.
2126 (scan_reads_nospill): Delete code dealing with const functions.
2128 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
2130 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
2132 (conflict_p, set_conflict, set_conflicts): Likewise.
2133 * global.c (global_alloc): Likewise.
2134 * ra.h: Update prototypes.
2136 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
2138 * opth-gen.awk: Fixed generation of comment stating the origin
2141 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
2144 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2145 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2146 and '%}', respectively.
2149 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2150 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2151 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2153 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2157 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2158 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2159 syntax for ASSEMBLER_DIALECT.
2160 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2162 2007-10-10 Revital Eres <eres@il.ibm.com>
2164 * modulo-sched.c (check_nodes_order): Dump the final order of
2166 (get_sched_window): Add dump info.
2167 (calculate_order_params): Dump order params of the nodes.
2169 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2172 * ra-conflict.c (record_one_conflict_between_regnos,
2173 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
2174 (global_conflicts): Enhanced incorrect check.
2176 2007-10-09 Geoffrey Keating <geoffk@apple.com>
2178 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
2179 if flag_exceptions is not set.
2180 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
2181 assemble_name rather than incorrectly emulating it.
2183 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
2184 friends are removed from G++.
2186 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2188 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
2189 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
2190 enabling them is redundant. Don't check two times for
2193 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
2195 * ra-conflict.c (record_one_conflict_between_regnos): Revert
2197 (set_conflicts_for_earlyclobber): Likewise.
2198 (global_conflicts): Likewise.
2200 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2202 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2203 and '%}', respectively.
2205 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2207 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2208 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2210 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2213 2007-10-09 Richard Guenther <rguenther@suse.de>
2216 * gimplify.c (canonicalize_component_ref): Honor qualifiers
2217 of referenced structure and component.
2219 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2222 * ra-conflict.c (record_one_conflict_between_regnos,
2223 set_conflicts_for_earlyclobber, global_conflicts): Improved
2225 (global_conflicts): Removed incorrect check.
2227 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
2229 PR tree-optimization/33615
2230 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
2231 if the statement might throw. Fix formatting.
2233 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
2235 PR tree-optimization/33615
2236 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
2237 if the rhs might throw.
2239 2007-10-09 Jan Hubicka <jh@suse.cz>
2241 * invoke.texi (align-threshold, align-loop-iterations): Document.
2242 * final.c: Include cfgloop.h, params.h
2243 (compute_alignments): Dump decisions and compare them with loop
2244 structure; honor given parameters.
2245 (pass_compute_alignments): New dump file.
2246 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
2247 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
2249 2007-10-09 James E. Wilson <wilson@specifix.com>
2251 PR tree-optimization/33655
2253 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
2254 convert it to bitsizetype before size_binop call.
2256 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2258 PR tree-optimization/33572
2259 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
2260 the absence of a corresponding edge from the exit block.
2262 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2265 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
2267 (sra_build_assignment): Likewise. Set up mask depending on
2268 precision, not type.
2269 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
2270 computing bit masks.
2271 (sra_build_elt_assignment): Don't view-convert from signed to
2273 (sra_explode_bitfield_assignment): Use bit-field type if
2274 possible. Use BYTES_BIG_ENDIAN.
2276 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
2279 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
2280 the original stmt can throw.
2281 (sra_build_bf_assignment): Fix type mismatch when applying negated
2284 2007-10-08 Geoffrey Keating <geoffk@apple.com>
2286 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
2287 '#pragma mark' to be executed at preprocessing time.
2289 2007-10-08 Ollie Wild <aaw@google.com>
2291 * varasm.c (compare_constant): Removed call to
2292 lang_hooks.expand_constant.
2293 (copy_constants): Removed call to lang_hooks.expand_constant.
2294 (compute_reloc_for_constant): Removed call to
2295 lang_hooks.expand_constant.
2296 (output_addressed_constants): Removed call to
2297 lang_hooks.expand_constant.
2298 (constructor_static_from_elts_p): Removed call to
2299 lang_hooks.expand_constant.
2300 (output_constant): Removed calls to lang_hooks.expand_constant.
2301 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2302 * langhooks-def.h (lhd_return_tree): Removed.
2303 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2304 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2305 * langhooks.c (lhd_return_tree): Removed.
2307 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
2309 * combine.c (setup_incoming_promotions): Ensure that
2310 arguments that have not undergone mode promotions do not
2311 incorrectly get marked as being sign- or zero-extended.
2313 2007-10-08 Richard Guenther <rguenther@suse.de>
2318 * fold-const.c (fold_binary): Use correct types in folding
2319 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
2320 and building of RROTATE_EXPR.
2322 2007-10-08 Richard Guenther <rguenther@suse.de>
2327 * fold-const.c (fold_binary): Use the correct types when
2328 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
2329 (fold_binary): Use the correct types when folding
2330 (-A) - B to (-B) - A.
2331 (fold_unary): Use the correct types when folding ~(X).
2333 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2335 * doc/invoke.texi (Wall): fix formatting issues.
2337 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
2339 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
2340 truncated shift counts.
2342 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2344 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2345 syntax for ASSEMBLER_DIALECT.
2346 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2348 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2349 Nathan Froyd <froydnj@codesourcery.com>
2351 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
2352 when determining whether to record INCOMING_RETURN_ADDR_RTX.
2354 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2357 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
2359 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
2360 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
2361 the function, temporarily point the debug interface to the null one.
2363 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2365 PR tree-optimization/33655
2367 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
2370 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2372 PR tree-optimization/33572
2373 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
2374 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
2375 (update_ssa_across_abnormal_edges): ... this. Set slots in the
2377 (copy_edges_for_bb): Handle nonlocal label edges.
2378 (make_nonlocal_label_edges): Deleted.
2379 (optimize_inline_calls): Don't call it.
2381 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
2383 * gthr-single.h: Revert last change.
2385 2007-10-05 Michael Matz <matz@suse.de>
2388 * lower-subreg.c (decompose_multiword_subregs): Use
2389 validate_unshare_change().
2391 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
2393 * ra-conflict.c: Include "sparseset.h".
2394 (conflicts): Change to HOST_WIDEST_FAST_INT.
2395 (allocnos_live): Redefine variable as a sparseset.
2396 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
2398 (allocno_row_words): Removed global variable.
2399 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
2400 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
2401 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
2402 (record_one_conflict_between_regnos): Cache allocno values and reuse.
2404 (record_one_conflict): Update uses of allocnos_live to use
2405 the sparseset routines. Use set_conflicts_p.
2406 (mark_reg_store): Likewise.
2407 (set_reg_in_live): Likewise.
2408 (global_conflicts): Update uses of allocnos_live.
2409 Use the new adjacency list to visit an allocno's neighbors
2410 rather than iterating over all possible allocnos.
2411 Call set_conflicts_p to setup conflicts rather than adding
2413 * global.c: Comments updated.
2414 (CONFLICTP): Delete define.
2415 (regno_compare): New function. Add prototype.
2416 (global_alloc): Sort the allocno to regno mapping according to
2417 which basic blocks the regnos are referenced in. Modify the
2418 conflict bit matrix to a compressed triangular bitmatrix.
2419 Only allocate the conflict bit matrix and adjacency lists if
2420 we are actually going to allocate something.
2421 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
2422 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
2423 allocno's neighbors rather than iterating over all possible allocnos.
2424 (mirror_conflicts): Removed function.
2425 (dump_conflicts): Iterate over regnos rather than allocnos so
2426 that all dump output will be sorted by regno number.
2427 Use the FOR_EACH_CONFLICT macro.
2428 * ra.h: Comments updated.
2429 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
2430 (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
2432 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
2433 (adjacency_list_d, adjacency_iterator_d): New types.
2434 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
2435 adjacency_iter_next, regno_basic_block): New static inline functions.
2436 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
2437 (conflict_p): Add function prototype.
2438 * sparseset.h, sparseset.c: New files.
2439 * Makefile.in (OBJS-common): Add sparseset.o.
2440 (sparseset.o): New rule.
2442 2007-10-05 Richard Guenther <rguenther@suse.de>
2445 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
2448 2007-10-05 Michael Matz <matz@suse.de>
2451 * function.c (match_asm_constraints_1): Check for input
2452 being used in the outputs.
2454 2007-10-05 Richard Guenther <rguenther@suse.de>
2456 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
2458 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
2461 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
2462 subset checks. Make the cost of FPR -> FPR moves depend on
2463 mips_mode_ok_for_mov_fmt_p.
2465 2007-10-04 Doug Kwan <dougkwan@google.com>
2467 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
2468 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2469 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2470 support of conditional variables.
2471 * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
2472 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2473 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2474 support of conditional variables.
2475 * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
2476 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2477 conditional variables.
2478 * gthr.h: Update comments to document new interface.
2480 2007-10-04 Geoffrey Keating <geoffk@apple.com>
2482 * cgraphunit.c (cgraph_build_static_cdtor): Don't set
2485 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2487 * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
2489 2007-10-04 Richard Guenther <rguenther@suse.de>
2492 * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
2493 does not need to be of INTEGER_TYPE.
2494 (verify_gimple_2): New function split out from ...
2495 (verify_gimple_1): ... here. ICE if there was an error during
2498 2007-10-04 Michael Matz <matz@suse.de>
2500 PR rtl-optimization/33653
2501 * dce.c (deletable_insn_p_1): Use volatile_refs_p().
2502 * dse.c (scan_insn): Same.
2504 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2506 * config.gcc: Remove USE_GAS for m68k targets.
2508 2007-10-04 Richard Guenther <rguenther@suse.de>
2510 PR tree-optimization/33627
2511 * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
2512 * tree-gimple.c (canonicalize_cond_expr_cond): New function,
2514 * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
2515 * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
2517 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2519 * config/avr/avr.c (commands_in_file, commands_in_prologues,
2520 commands_in_epilogues): Remove variables.
2521 (avr_file_start): Remove unneded initializations of commands_in_file,
2522 commands_in_prologues and commands_in_epilogues variables.
2523 (avr_file_end): Remove dead code.
2525 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2527 * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
2528 MOTOROLA is to true.
2530 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk>
2533 * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
2534 (mips_split_doubleword_move): ...this.
2535 * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
2536 use natural endianness for multi-format FPR values.
2537 (mips_split_64bit_move): Rename to...
2538 (mips_split_doubleword_move): ...this and extend to 64-bit words.
2539 Use move_doubleword_fpr* patterns for moves involving FPRs.
2540 (mips_save_reg): Update the call to mips_split_64bit_move.
2541 (mips_secondary_reload_class): Return NO_REGS for any reload of a
2542 nonzero constant into an FPR if the constant can be forced to memory.
2543 * config/mips/mips.md: Update the splitter calls to
2544 mips_split_64bit_move.
2545 (UNSPEC_LOAD_DF_LOW): Rename to...
2546 (UNSPEC_LOAD_LOW): ...this.
2547 (UNSPEC_LOAD_DF_HIGH): Rename to...
2548 (UNSPEC_LOAD_HIGH): ...this.
2549 (UNSPEC_STORE_DF_HIGH): Rename to...
2550 (UNSPEC_STORE_WORD): ...this.
2551 (SPLITF): New mode iterator.
2552 (HALFMODE): New mode attribute.
2553 (movtf): New expander.
2554 (*movtf_internal): New define_insn_and_split.
2555 (move_doubleword_fpr<mode>): New expander.
2556 (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
2558 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2559 (mfhc1<mode>): ...these more general patterns.
2561 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2563 * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
2565 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2567 * gcse.c (hash_scan_set): Insert set in insn before note at
2568 the end of basic block.
2570 2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
2572 PR tree-optimization/33576
2573 * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
2574 * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
2575 * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
2576 (remove_iv): Declared.
2577 * lambda-code.c (remove_iv): Not static.
2578 (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
2579 Don't remove ivs there, save ivs in the buffer.
2581 2007-10-03 Jason Merrill <jason@redhat.com>
2584 * tree-eh.c (same_handler_p): New fn.
2585 (optimize_double_finally): New fn.
2586 (refactor_eh_r): New fn.
2587 (refactor_eh): New fn.
2588 (pass_refactor_eh): New pass.
2589 * tree-pass.h: Declare it.
2590 * passes.c (init_optimization_passes): Add it.
2592 2007-10-03 Doug Kwan <dougkwan@google.com>
2593 Richard Guenther <rguenther@suse.de>
2596 * dwarf2out.c (reference_to_unused): Disable sanity checking,
2597 be conservative instead.
2599 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2602 * doc/invoke.texi (-fwhole-program): Document that Fortran
2603 doesn't support this option.
2605 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk>
2608 * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
2611 2007-10-02 David Daney <ddaney@avtrex.com>
2613 * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
2614 against constant zero.
2615 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero
2618 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2620 * ra-conflict.c: New file.
2622 * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
2623 usage to DF_LIVE usage.
2624 (reload): Remove reference to df_get_live_top.
2625 * rtlanal.c (subreg_nregs_with_regno): New function.
2626 * df-scan.c (df_def_record_1, df_uses_record): Add code to set
2627 DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
2628 (df_has_eh_preds): Removed.
2629 (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
2630 df_exit_block_uses_collect): Changed call from df_has_eh_preds to
2632 * global.c (allocno, max_allocno, conflicts, allocno_row_words,
2633 reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
2634 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
2635 (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
2636 mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
2637 (global_alloc): Turn off rescanning insns after call to
2638 global_conflicts and added call to set_preferences.
2639 (global_conflicts): Moved to ra-alloc.c.
2640 (set_preferences_1, set_preferences): New function.
2641 (mirror_conflicts): Changed types for various variables.
2642 (mark_elimination): Change DF_RA_LIVE
2643 usage to DF_LIVE usage.
2644 (build_insn_chain): Rewritten from scratch and made local.
2645 (print_insn_chain, print_insn_chains): New functions.
2646 (dump_conflicts): Do not print conflicts for fixed_regs.
2647 (rest_of_handle_global_alloc): Turn off insn rescanning.
2648 * hard-reg-set.h: Fixed comment.
2649 * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
2650 usage to DF_LIVE usage and delete refs to TOP sets.
2651 (block_alloc): Mark regs as live if they are in the artificial
2652 defs at top of block.
2653 (find_stack_regs): New function.
2654 (rest_of_handle_local_alloc): Changed urec problem to live
2655 problem and do not turn off df rescanning.
2656 * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
2657 DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
2658 df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
2659 (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
2660 (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
2661 fields in df_ref_flags. The rest have been renumbered.
2662 * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
2664 * rtl.h (subreg_nregs_with_regno): New function.
2665 * df-problems.c: (df_get_live_out, df_get_live_in,
2666 df_get_live_top): Removed reference to DF_RA_LIVE.
2667 (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
2668 df_live_alloc, df_live_reset, df_live_local_finalize,
2669 df_live_free): Make top set only if different from in set.
2670 (df_lr_top_dump, df_live_top_dump): Only print top set if
2671 different from in set.
2672 (df_lr_bb_local_compute): Removed unnecessary check.
2673 (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
2674 df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
2675 df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
2676 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
2677 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
2678 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
2679 df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
2680 df_urec_add_problem): Removed.
2681 (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
2683 * Makefile.in (ra-conflict.o, ra.h): New dependencies.
2684 * basic_block.h (bb_has_abnormal_pred): New function.
2685 * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
2686 usage to DF_LIVE usage.
2688 2007-10-02 Revital Eres <eres@il.ibm.com>
2690 * config/rs6000/predicates.md (easy_vector_constant): Return false
2691 for 750CL paired vectors.
2692 * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
2694 (vec_initv2sf): Add new description.
2695 (vconcatsf): Likewise.
2696 * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
2697 * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
2699 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
2701 * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
2702 sinking the last stmt in a BB.
2704 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
2707 * tree-sra.c (struct sra_elt): Add in_bitfld_block.
2708 (sra_hash_tree): Handle BIT_FIELD_REFs.
2709 (sra_elt_hash): Don't hash bitfld blocks.
2710 (sra_elt_eq): Skip them in parent compares as well. Handle
2712 (build_element_name_1): Handle BIT_FIELD_REFs.
2713 (instantiate_element): Propagate nowarn from parents. Create
2714 BIT_FIELD_REF for variables that are widened by scalarization.
2715 Gimple-zero-initialize all bit-field variables that are not
2716 part of parameters that are going to be scalarized on entry.
2717 (instantiate_missing_elements_1): Return the sra_elt.
2718 (canon_type_for_field): New.
2719 (try_instantiate_multiple_fields): New. Infer widest possible
2720 access mode from decl or member type, but clip it at word
2721 size, and only widen it if a field crosses an alignment
2723 (instantiate_missing_elements): Use them.
2724 (generate_one_element_ref): Handle BIT_FIELD_REFs.
2725 (scalar_bitfield_p): New.
2726 (sra_build_assignment): Optimize assignments from scalarizable
2727 BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift
2730 (sra_build_bf_assignment): New. Optimize assignments to
2731 scalarizable BIT_FIELD_REFs.
2732 (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF
2733 assignments to full variables.
2734 (generate_copy_inout): Use the new macros and functions.
2735 (generate_element_copy): Likewise. Handle bitfld differences.
2736 (generate_element_zero): Don't recurse for blocks. Use
2737 sra_build_elt_assignment.
2738 (generate_one_element_init): Take elt instead of var. Use
2739 sra_build_elt_assignment.
2740 (generate_element_init_1): Adjust.
2741 (bitfield_overlap_info): New struct.
2742 (bitfield_overlaps_p): New.
2743 (sra_explode_bitfield_assignment): New. Adjust widened
2744 variables to account for endianness.
2745 (sra_sync_for_bitfield_assignment): New.
2746 (scalarize_use): Re-expand assignment to/from scalarized
2747 BIT_FIELD_REFs. Explode or sync needed members for
2748 BIT_FIELD_REFs accesses or assignments. Use REPLDUP.
2749 (scalarize_copy): Use REPLDUP.
2750 (scalarize_ldst): Move assert before dereference. Adjust EH
2752 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
2754 2007-10-01 Paolo Bonzini <bonzini@gnu.org>
2756 * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
2757 Rename CR_* constants to CMP_*. Fix spacing.
2759 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2762 * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
2763 to be processed with the special script doc/install.texi2html.
2765 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2767 * doc/invoke.texi (Wall): List the options enabled by Wall.
2768 (Wstrict-aliasing): Add missing @option.
2770 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk>
2772 * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
2773 rather than gen_lowpart to change a register from DImode to DFmode.
2774 (mips_cannot_change_mode_class): Only allow FPRs to change mode if
2775 both FROM and TO are integer modes that are no bigger than 4 bytes.
2776 (mips_mode_ok_for_mov_fmt_p): New function.
2777 (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
2778 (mips_secondary_reload_class): Tweak formatting and comments.
2779 Use reg_class_subset_p instead of direct comparisons with
2780 classes. Only allow direct FPR<->FPR moves for modes that
2781 satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores
2782 for 4- and 8-byte types. Handle reloads in which X is an FPR.
2783 * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
2784 (*movdi_64bit): Likewise.
2785 (*movsi_internal): Likewise.
2786 (*movhi_internal): Likewise.
2787 (*movqi_internal): Likewise.
2789 2007-09-30 Diego Novillo <dnovillo@google.com>
2792 * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
2795 2007-09-30 Uros Bizjak <ubizjak@gmail.com>
2797 PR tree-optimization/33597
2798 * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
2799 for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
2801 2007-09-28 Uros Bizjak <ubizjak@gmail.com>
2803 * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
2804 instead of variants of (!reload_in_progress && !reload_completed).
2805 (x86_expand_vector_move): Ditto.
2807 2007-09-28 Ollie Wild <aaw@google.com>
2810 2007-09-27 Ollie Wild <aaw@google.com>
2812 * varasm.c (compare_constant): Removed call to
2813 lang_hooks.expand_constant.
2814 (copy_constants): Removed call to lang_hooks.expand_constant.
2815 (compute_reloc_for_constant): Removed call to
2816 lang_hooks.expand_constant.
2817 (output_addressed_constants): Removed call to
2818 lang_hooks.expand_constant.
2819 (constructor_static_from_elts_p): Removed call to
2820 lang_hooks.expand_constant.
2821 (output_constant): Removed calls to lang_hooks.expand_constant.
2822 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2823 * langhooks-def.h (lhd_return_tree): Removed.
2824 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2825 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2826 * langhooks.c (lhd_return_tree): Removed.
2828 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2831 * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
2832 argument to gen_selb.
2834 2007-09-28 Chao-ying Fu <fu@mips.com>
2836 * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
2837 * doc/libgcc.texi (Fixed-point fractional library routines):
2838 Fix typos for neg and cmp functions.
2840 2007-09-28 Michael Matz <matz@suse.de>
2842 PR rtl-optimization/33552
2843 * function.c (match_asm_constraints_1): Check for overlap in
2844 inputs and replace all occurences.
2846 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk>
2848 * config/mips/mips.c (override_options): Fix comment typo.
2850 2007-09-28 Jie Zhang <jie.zhang@analog.com>
2852 * config.gcc (bfin*-linux-uclibc*): Set extra_parts
2853 to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
2854 * config/bfin/t-bfin-linux (crti.o): Don't build.
2856 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2857 * config/bfin/t-bfin-uclinux (crti.o): Don't build.
2859 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2861 2007-09-27 Ollie Wild <aaw@google.com>
2863 * varasm.c (compare_constant): Removed call to
2864 lang_hooks.expand_constant.
2865 (copy_constants): Removed call to lang_hooks.expand_constant.
2866 (compute_reloc_for_constant): Removed call to
2867 lang_hooks.expand_constant.
2868 (output_addressed_constants): Removed call to
2869 lang_hooks.expand_constant.
2870 (constructor_static_from_elts_p): Removed call to
2871 lang_hooks.expand_constant.
2872 (output_constant): Removed calls to lang_hooks.expand_constant.
2873 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2874 * langhooks-def.h (lhd_return_tree): Removed.
2875 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2876 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2877 * langhooks.c (lhd_return_tree): Removed.
2879 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2882 * expr.c (emit_group_load_1): Split constant double when destination
2883 length is half source length.
2885 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk>
2887 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
2888 (mips_cpu_info): Add tune_flags.
2889 (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
2890 * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
2892 (override_options): Remove deprecation code. Use branch-likely
2893 instructions for optimize_size or if the tuning flags do not
2894 suggest otherwise. Tweak warning.
2895 (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
2897 2007-09-27 Matthias Klose <doko@ubuntu.com>
2899 * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2900 multilib osdirname if it exists.
2901 * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2903 2007-09-27 Ian Lance Taylor <iant@google.com>
2905 PR tree-optimization/33565
2906 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
2907 assignments of comparisons.
2908 * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
2909 parameter. Change caller. Defer overflow warnings around call to
2911 * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
2912 TREE_NO_WARNING is set on the statement.
2913 * tree-ssa-forwprop.c
2914 (tree_ssa_forward_propagate_single_use_vars): Don't test
2915 TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
2916 * tree-cfg.c (fold_cond_expr_cond): Likewise.
2918 2007-09-27 Joseph Myers <joseph@codesourcery.com>
2920 * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
2921 reduce offset by units of 0x10000 for SPE vector modes or modes
2922 used with E500 double instructions.
2924 2007-09-04 Paolo Bonzini <bonzini@gnu.org>
2926 * simplify-rtx.c (comparison_result): New.
2927 (simplify_const_relational_operation): Use it instead of the five
2928 "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
2929 Improve bounds-checking optimizations; remove subsumed POPCOUNT
2930 optimizations. Extract nonzero_address_p optimizations into a
2931 separate "if" together with optimizations where op1 is const0_rtx.
2932 Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for
2933 floating-point arguments too when appropriate. Hoist test for ABS
2934 outside the final switch statement.
2935 * cse.c (fold_rtx): Don't look for an IOR equivalent of
2936 folded_arg0 if we found a constant equivalent. Remove
2937 transformations done in simplify-rtx.c for "op0 RELOP op0".
2939 2007-09-27 Jakub Jelinek <jakub@redhat.com>
2941 * builtins.c (expand_builtin, expand_builtin_object_size,
2942 expand_builtin_memory_chk, maybe_emit_chk_warning,
2943 maybe_emit_sprintf_chk_warning): Use new %K format string specifier
2945 * expr.c (expand_expr_real_1): Likewise.
2946 * langhooks-def.h (struct diagnostic_info): Add forward decl.
2947 (lhd_print_error_function): Add third argument.
2948 * langhooks.h (struct diagnostic_info): Add forward decl.
2949 (struct lang_hooks): Add third argument to print_error_function.
2950 * diagnostic.h (diagnostic_info): Add abstract_origin field.
2951 (diagnostic_last_function_changed, diagnostic_set_last_function): Add
2953 (diagnostic_report_current_function): Likewise.
2954 * toplev.c (announce_function): Pass NULL as second argument to
2955 diagnostic_set_last_function.
2956 * diagnostic.c (diagnostic_report_current_function): Add second
2957 argument, pass it as third argument to lang_hooks.print_error_function.
2958 (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
2959 to diagnostic_report_current_function.
2960 (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
2961 and message.abstract_origin.
2962 (verbatim): Initialize abstract_origin.
2963 * pretty-print.h (text_info): Add abstract_origin field.
2964 * pretty-print.c (pp_base_format): Handle %K.
2965 * langhooks.c (lhd_print_error_function): Add third argument. If
2966 diagnostic->abstract_origin, print virtual backtrace.
2967 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2968 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
2969 (init_dynamic_diag_info): Likewise.
2971 2007-09-26 David Daney <ddaney@avtrex.com>
2974 * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
2975 sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
2976 sync_old_nand<mode>, sync_new_nand<mode>,
2977 sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
2978 Update length attributes.
2979 (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
2980 sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
2982 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
2983 MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
2984 MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
2987 2007-09-26 Richard Guenther <rguenther@suse.de>
2989 PR tree-optimization/33563
2990 * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
2991 (get_kill_of_stmt_lhs): ... this. Re-structure. Handle
2993 (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
2994 get_use_of_stmt_lhs.
2996 2007-09-26 Joseph Myers <joseph@codesourcery.com>
2999 * c-common.c (complete_array_type): Diagnose too-large arrays and
3000 set type to error_mark_node.
3002 2007-09-26 Richard Guenther <rguenther@suse.de>
3004 PR tree-optimization/30375
3005 PR tree-optimization/33560
3006 * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
3010 2006-05-22 Aldy Hernandez <aldyh@redhat.com>
3012 * tree-ssa-dse.c (aggregate_vardecl_d): New.
3013 (dse_global_data): Add aggregate_vardecl field.
3014 (dse_possible_dead_store_p): New.
3015 Add prev_defvar variable.
3016 Allow immediate uses and previous immediate uses to differ
3017 if they are setting different parts of the whole.
3018 (get_aggregate_vardecl): New.
3019 (dse_record_partial_aggregate_store): New.
3020 (dse_whole_aggregate_clobbered_p): New.
3021 (dse_partial_kill_p): New.
3022 Call dse_maybe_record_aggregate_store().
3023 When checking whether a STMT and its USE_STMT refer to the
3024 same memory address, check also for partial kills that clobber
3026 Move some variable definitions to the block where they are used.
3027 (aggregate_vardecl_hash): New.
3028 (aggregate_vardecl_eq): New.
3029 (aggregate_vardecl_free): New.
3030 (aggregate_whole_store_p): New.
3031 (tree_ssa_dse): Initialize and free aggregate_vardecl.
3032 Mark which aggregate stores we care about.
3034 2007-09-25 DJ Delorie <dj@redhat.com>
3037 * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
3040 2007-09-25 Michael Meissner <michael.meissner@amd.com>
3043 * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
3044 gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
3045 for vector int32 -> int64 conversions. Don't write beyond the end
3046 of the allocated vector for int32 -> int64 conversions.
3048 2007-09-25 Revital Eres <eres@il.ibm.com>
3050 * config/rs6000/paired.h (paired_sel): New.
3051 * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
3052 (rs6000_expand_ternop_builtin): Pass zero const_double operand
3053 when expanding selv2sf.
3054 * config/rs6000/rs6000.h (rs6000_builtins): Add
3055 PAIRED_BUILTIN_SELV2SF4.
3057 2007-09-25 Joseph Myers <joseph@codesourcery.com>
3060 * c-typeck.c (default_conversion): Call require_complete_type
3061 before perform_integral_promotions.
3062 (build_unary_op): Call require_complete_type except for ADDR_EXPR.
3063 (build_c_cast): Call require_complete_type except for casts to
3065 (convert_for_assignment): Call require_complete_type.
3067 2007-09-25 Revital Eres <eres@il.ibm.com>
3069 * config/spu/spu.md: Fix doloop pattern.
3071 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com>
3073 * config/bfin/bfin.c (expand_prologue_reg_save,
3074 expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
3075 and ASTAT moved here...
3076 (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3077 ... from here. New argument ALL; callers changed.
3078 (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
3079 (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
3080 have the "saveall" attribute.
3082 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com>
3084 * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
3086 (INCOMING_REGNO, OUTGOING_REGNO): Define.
3087 * config/mmix/mmix.c (mmix_opposite_regno): New function.
3088 * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
3090 * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
3091 with REG_P tests before REGNO access.
3093 2007-09-24 DJ Delorie <dj@redhat.com>
3096 * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
3098 (movqicc_<code>_<mode>): Likewise.
3099 (movhicc_<code>_<mode>): Likewise.
3101 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk>
3104 * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
3105 register for reload.
3107 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
3110 * config/i386/i386.c (ix86_comp_type_attributes): Check
3113 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3115 * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
3116 "move.l %a4,%a4" to produce nops.
3117 * config/m68k/m68k.c (override_options): Reset align options,
3118 if neccessary align macro isn't avaible.
3120 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3122 config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
3124 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3126 * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
3128 * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
3129 reload is completed.
3130 (peephole pattern): Convert most of them to RTL peephole pattern.
3132 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3134 * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
3135 (moved from fp compare patterns).
3136 * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
3137 Cleanup predicates to relieve reload.
3138 (conditional_trap): Reject conditional trap with fp condition.
3139 * gcc/config/m68k/predicates.md (fp_src_operand): New, reject
3140 certain constants early.
3142 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3144 * gcc/final.c (final_scan_insn): Remove accidentally duplicated code.
3146 2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
3148 * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
3149 Allow --with-tune=cell and --with-cpu=cell.
3151 2007-09-24 David Edelsohn <edelsohn@gnu.org>
3153 * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
3154 * config/rs6000/rs6000.opt (swdiv): Change option to ...
3156 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
3158 (TARGET_BUILTIN_RECIPROCAL): Use it.
3159 (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
3160 (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
3161 (rs6000_emit_swrsqrtsf): New.
3162 * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
3164 * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
3165 (divsf3): Remove swdiv support.
3168 (rsqrt_internal1): New.
3169 (divdf3): Remove swdiv support.
3172 2007-09-24 Jakub Jelinek <jakub@redhat.com>
3175 * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
3177 * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
3178 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
3179 * tree.c (type_hash_eq): For FUNCTION_TYPE use
3180 lang_hooks.type.type_hash_eq in addition to generic tests.
3182 2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
3183 Ramana Radhakrishnan <ramana@hercules.pun.celunite.com>
3185 * tree-inline.h (eni_weights): Add field target_builtin_cost to
3186 reflect the cost per call to a target specific builtin.
3187 * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
3188 call to a target specific builtin, then use target_builtin_call_cost.
3189 (init_inline_once): Initialize target_builtin_call_cost field.
3191 2007-09-24 Kai Tietz <kai.tietz@onevision.com>
3194 * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
3197 2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
3199 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
3200 * configure: Regenerated.
3202 2007-09-23 Ollie Wild <aaw@google.com>
3204 * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
3206 (get_pointer_modulus_and_residue): New function.
3208 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3210 * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
3211 combine an SC return value into a single register.
3213 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3215 * opth-gen.awk (target_flags_explicit): Declare.
3216 * toplev.h (target_flags_explicit): Delete declaration.
3217 * toplev.c (target_flags): Likewise.
3218 * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
3219 (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
3220 Never return true for TARGET_MIPS16.
3221 * config/mips/mips.c (mips_llsc): Delete.
3222 (mips_handle_option): Remove -mllsc handling.
3223 (mips_strip_unspec_address): Tweak comment.
3224 * config/mips/mips.opt (mllsc): Use a target mask.
3226 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3228 * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
3229 word_mode as well as Pmode.
3231 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3233 * function.c (assign_parm_setup_block): Explicitly convert BLKmode
3234 parameters from word_mode to the subword type if such a truncation
3237 2007-09-23 Jakub Jelinek <jakub@redhat.com>
3239 * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
3240 * configure: Regenerated.
3242 2007-09-23 Jan Hubicka <jh@suse.cz>
3244 * params.def (INLINE_CALL_COST): Set to 12.
3245 * invoke.texi (inline-call-cost): Update default value.
3247 2007-09-23 Eric Botcazou <ebotcazou@adacore.com>
3249 * config/alpha/alpha.md (movti): Use operand_subword for the split.
3251 2007-09-23 Ayal Zaks <zaks@il.ibm.com>
3252 Revital Eres <eres@il.ibm.com>
3254 * modulo-sched.c (doloop_register_get): Rewrite the loop which
3255 checks whether the count_reg is found outside the control part.
3257 2007-09-23 Jakub Jelinek <jakub@redhat.com>
3259 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
3260 instead of checking CALL_EXPR_FN directly to test for builtins.
3261 If error or warning attributes are present, print
3262 error resp. warning.
3263 * c-common.c (handle_error_attribute): New function.
3264 (c_common_attribute_table): Add error and warning
3266 * doc/extend.texi: Document error and warning attributes.
3268 * tree.h (block_nonartificial_location): New prototype.
3269 * tree.c (block_nonartificial_location): New function.
3270 * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
3271 if artificial attribute is present on abstract inline decl.
3272 * c-common.c (handle_artificial_attribute): New function.
3273 (c_common_attribute_table): Add artificial attribute.
3274 * final.c (override_filename, override_linenum): New variables.
3275 (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
3276 and override_linenum if inside of a block inlined from
3277 __attribute__((__artificial__)) function.
3278 (notice_source_line): Honor override_filename and override_linenum.
3279 * doc/extend.texi: Document __attribute__((__artificial__)).
3280 * config/i386/emmintrin.h: Add __artificial__ attribute to
3281 all __always_inline__ functions.
3282 * config/i386/mmintrin.h: Likewise.
3283 * config/i386/tmmintrin.h: Likewise.
3284 * config/i386/mm3dnow.h: Likewise.
3285 * config/i386/pmmintrin.h: Likewise.
3286 * config/i386/ammintrin.h: Likewise.
3287 * config/i386/xmmintrin.h: Likewise.
3288 * config/i386/smmintrin.h: Likewise.
3289 * config/i386/bmmintrin.h: Likewise.
3290 * config/i386/mmintrin-common.h: Likewise.
3293 * expr.c (expand_constructor): New function.
3294 (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
3295 (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
3298 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3300 * config/mips/mips.c (dump_constants_1): Generalize to include
3301 fractional and accumulator modes.
3303 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3305 * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
3306 * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
3308 (override_options): Check TARGET_HARD_FLOAT_ABI instead of
3309 TARGET_HARD_FLOAT when testing whether -mpaired-single is
3311 (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
3313 * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
3315 * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
3316 (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
3318 (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
3319 ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
3320 * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
3322 * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
3324 * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
3325 instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
3326 * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
3328 2007-09-22 Jason Merrill <jason@redhat.com>
3331 * attribs.c (lookup_attribute_spec): Split out...
3332 (decl_attributes): From here.
3333 * tree.h: Declare it.
3335 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
3337 * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
3339 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3341 * tree-inline.c (remap_type_1): Correctly chain variants.
3343 2007-09-22 Richard Guenther <rguenther@suse.de>
3345 PR tree-optimization/33146
3346 * fold-const.c (fold_binary): Use the original tree
3348 * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
3349 also changes "sign".
3351 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3354 * except.c (finish_eh_generation): Call commit_edge_insertions if
3355 there are insns queued on the entry edge.
3356 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
3359 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
3361 * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
3363 2007-09-19 Michael Meissner <michael.meissner@amd.com>
3365 * gcc/config/i386/i386.c: Delete trailing whitespace.
3366 * gcc/config/i386/i386.h: Ditto.
3367 * gcc/config/i386/bmmintrin.h: Ditto.
3368 * gcc/config/i386/sync.md: Ditto.
3369 * gcc/config/i386/ppro.md: Ditto.
3370 * gcc/config/i386/mmx.md: Ditto.
3371 * gcc/config/i386/constraints.md: Ditto.
3372 * gcc/config/i386/sse.md: Ditto.
3373 * gcc/config/i386/athlon.md: Ditto.
3374 * gcc/config/i386/i386.md: Ditto.
3376 2007-09-21 Richard Guenther <rguenther@suse.de>
3378 PR tree-optimization/33508
3379 * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
3380 quadratic loop by keeping a bitmap of variables we have
3381 to clobber all subvariables for.
3382 (set_initial_properties): Likewise.
3384 2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk>
3386 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
3388 2007-09-20 Nigel Stephens <nigel@mips.com>
3389 Chao-ying Fu <fu@mips.com>
3391 * c-decl.c (finish_declspecs): When _Sat is used without
3392 _Fract or _Accum, set the default type to cts_fract.
3393 This avoids a warning of "type defaults to int".
3395 2007-09-20 Joseph Myers <joseph@codesourcery.com>
3397 * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
3398 bit-fields wider than one bit.
3400 2007-09-20 Jakub Jelinek <jakub@redhat.com>
3403 * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
3405 * dbxout.c (dbxout_type): Likewise.
3409 * gimplify.c (gimplify_vla_decl): New function.
3410 (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
3412 (gimplify_target_expr): Handle variable length TARGET_EXPRs.
3414 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
3416 * doc/invoke.texi (-minterlink-mips16): Document.
3417 * config/mips/mips.opt (minterlink-mips16): New option.
3418 * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
3421 2007-09-20 Joseph Myers <joseph@codesourcery.com>