1 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3 * common.opt: Add pointer to doc/options.texi.
4 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
5 -fipa-reference): Add or correct doc. Sorted options list for -Os
8 2007-11-07 <aldot@gcc.gnu.org> Bernhard Fischer
11 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
12 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
13 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
14 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
15 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
16 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
17 to TARGET_BIG_ENDIAN_DEFAULT.
18 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
19 * gcc/config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
20 to TARGET_BIG_ENDIAN_DEFAULT.
22 2007-11-07 Diego Novillo <dnovillo@google.com>
24 * tree.h (struct tree_struct_field_tag): Move field
26 (struct tree_memory_tag): ... here.
28 2007-11-07 Diego Novillo <dnovillo@google.com>
31 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
32 (SFT_IN_NESTED_STRUCT): Define.
33 * tree-dfa.c (dump_subvars_for): Show offset of each
35 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
36 * tree-ssa-structalias.c (struct variable_info): Likewise.
37 (push_fields_onto_fieldstack): If OFFSET is positive,
39 (create_variable_info_for): Copy setting of
40 in_nested_struct from the field offset object.
41 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
43 * tree-ssa-operands.c (add_vars_for_offset): If VAR
44 belongs to a nested structure, adjust OFFSET by
47 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
49 PR rtl-optimization/33737
50 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
51 target block after computing the probabilities of outgoing edges.
52 Cap the frequency to BB_FREQ_MAX.
53 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
54 frequency of the basic block if it has been reused.
56 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
58 PR rtl-optimization/33822
59 * rtl.h (REG_OFFSET): Fix comment.
60 * var-tracking.c (INT_MEM_OFFSET): New macro.
61 (var_mem_set): Use it.
62 (var_mem_delete_and_set): Likewise.
63 (var_mem_delete): Likewise.
64 (same_variable_part_p): Likewise.
65 (vt_get_decl_and_offset): Likewise.
66 (offset_valid_for_tracked_p): New predicate.
67 (count_uses): Do not track locations with invalid offsets.
69 (add_stores): Likewise.
71 2007-11-07 Tom Tromey <tromey@redhat.com>
73 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
74 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
76 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
77 Andrey Belevantsev <abel@ispras.ru>
79 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
80 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
81 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
82 Save calculated max_asap in it.
83 (sms_schedule): Calculate maxii using max_asap.
85 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
87 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
88 with -mhard-dfp/-mno-hard-dfp.
90 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
91 Jakub Jelinek <jakub@redhat.com>
94 * haifa-sched.c (check_sched_flags): Remove.
95 (sched_init): Don't call it.
97 2007-11-06 Diego Novillo <dnovillo@google.com>
99 * tree-flow.h (struct fieldoff): Reformat comment.
101 * tree-ssa-operands.c: Tidy top-level comments.
103 (add_vars_for_offset): Tidy parameter formatting..
104 (get_addr_dereference_operands): Likewise.
105 (get_indirect_ref_operands): Likewise.
106 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
107 <OMP_ATOMIC_STORE>: Likewise.
109 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
112 * config/i386/driver-i386.c: Test for __GNUC__ instead of
113 GCC_VERSION which is always defined.
115 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
118 * reload1.c (find_reloads): Also check in_reg when handling a
119 simple move with an input reload and a destination of a hard
122 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
124 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
125 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
126 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
127 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
128 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
129 (m68k_sched_attr_type2): New function.
130 (sched_adjust_cost_state): New static variable.
131 (m68k_sched_adjust_cost): New static function implementing
133 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
134 New static variables.
135 (m68k_sched_variable_issue): New static function implementing
137 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
138 (sched_dump_split_class): New static function.
139 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
141 (sched_dump_dfa_class, m68k_sched_dump): New static function.
142 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
143 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
144 m68k_sched_dfa_post_advance_cycle): New static functions implementing
147 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
148 (CPU_UNITS_QUERY): Define.
150 * config/m68k/cf.md: New file.
151 * config/m68k/m68.md (cf.md): New include.
153 2007-11-06 Tom Tromey <tromey@redhat.com>
155 PR c++/32256, PR c++/32368:
156 * function.c (saved_in_system_header): New global.
157 (push_cfun): Save in_system_header.
158 (pop_cfun): Restore in_system_header.
159 (push_struct_function): Save in_system_header.
161 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
165 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
166 (complete_array_type): Set canonical type appropriately.
167 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
168 C and C++ front ends now have different versions of this function,
169 because the C++ version needs to maintain canonical types here.
171 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
173 * tree-parloops.c (reduction_info): Remove reduction_init field.
174 (initialize_reductions): Remove creation of the reduction_init variable.
175 (struct data_arg): Remove.
176 (add_field_for_reduction, create_stores_for_reduction): New functions.
177 (add_field_for_name): Remove reduction handling.
178 (separate_decls_in_loop): Call add_field_for_reduction,
179 create_stores_for_reduction.
181 2007-11-06 Jakub Jelinek <jakub@redhat.com>
183 PR tree-optimization/33458
184 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
185 !is_gimple_val PHI argument, gimplify it and insert it on edge.
187 PR tree-optimization/33993
188 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
189 rather than build_constructor_from_list if all list values are
191 (get_initial_def_for_induction): Use build_vector instead of
192 build_constructor_from_list.
194 2007-11-05 Mark Mitchell <mark@codesourcery.com>
197 * tree.h (DECL_INIT_PRIORITY): Do not require
198 DECL_HAS_INIT_PRIORITY_P.
199 (DECL_FINI_PRIORITY): Likewise.
200 * tree.c (decl_init_priority_lookup): Remove assert.
201 (decl_fini_priority_insert): Likewise.
202 * cgraphunit.c (static_ctors): Make it a VEC.
203 (static_dtors): Likewise.
204 (record_cdtor_fn): Adjust accordingly.
205 (build_cdtor): Generate multiple functions for each initialization
207 (compare_ctor): New function.
208 (compare_dtor): Likewise.
209 (cgraph_build_cdtor_fns): Sort the functions by priority before
211 (cgraph_build_static_cdtor): Put the priority in the function's
214 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
217 * common.opt: Add shared and pie.
219 2007-11-05 Bob Wilson <bob.wilson@acm.org>
221 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
222 replace references to virtual_stack_vars_rtx in goto_handler.
224 2007-11-05 Paul Brook <paul@codesourcery.com>
226 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
227 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
228 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
229 arm_lang_output_object_attributes_hook.
230 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
231 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
232 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
234 * config/arm/t-arm.c (arm.o): New rule.
235 * config/arm/arm-c.c: New file.
237 2007-11-05 Nick Clifton <nickc@redhat.com>
238 Sebastian Pop <sebastian.pop@amd.com>
240 PR tree-optimization/32540
241 PR tree-optimization/33922
242 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
243 * tree-ssa-pre.c: Include params.h.
244 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
245 to limit the maximum length of the PA set for a given block.
246 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
247 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
249 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
251 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
252 __fixunssfDI): Make return type unsigned.
253 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
254 __fixunssfDI): Make return type unsigned.
256 2007-11-05 Jakub Jelinek <jakub@redhat.com>
258 PR tree-optimization/33856
259 * tree-data-ref.c (get_references_in_stmt): Don't add
260 REFERENCE_CLASS_P trees to references vector if get_base_address
261 returns NULL on them.
263 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
265 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
267 2007-11-04 Andrew Pinski <pinskia@gmail.com>
270 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
271 for TRUTH_NOT_EXPR to type.
273 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
275 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
277 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
280 * dwarf2out.c (add_calling_convention_attribute): Change
281 second argument. Set calling convention to DW_CC_program for
282 Fortran main program.
283 (gen_subprogram_die): Adjust to new prototype for
284 add_calling_convention_attribute.
286 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
288 PR tree-optimization/33987
289 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
291 (vectorizable_reduction): Add type check.
293 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
296 * c-parser.c (c_parser_statement_after_labels): Error if a
297 declaration is parsed after a label.
299 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
302 * reorg.c (emit_delay_sequence): Do not clear the locator on
303 the jump instruction.
305 2007-11-03 Jakub Jelinek <jakub@redhat.com>
308 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
309 current sched region.
311 2007-11-02 Jakub Jelinek <jakub@redhat.com>
313 * config/ia64/ia64.c (struct reg_write_state): Change into
314 unsigned short bitfields rather than unsigned int, decrease
315 first_pred to just 10 bits.
316 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
318 (rws_insn_set, rws_insn_test): New functions.
319 (in_safe_group_barrier): New variable.
320 (rws_update): Remove first argument, always set rws_sum array.
321 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
322 or update rws_sum if !in_safe_group_barrier, adjust rws_update
324 (rtx_needs_barrier): Use rws_insn_test macro.
325 (safe_group_barrier_needed): Don't save/restore rws_sum array,
326 instead set/clear in_safe_group_barrier flag.
328 2007-11-02 Bob Wilson <bob.wilson@acm.org>
330 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
331 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
332 pointer or frame pointer.
333 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
334 (MUST_USE_SJLJ_EXCEPTIONS): Define.
335 (DWARF2_UNWIND_INFO): Define.
336 (INCOMING_RETURN_ADDR_RTX): Define.
337 (DWARF_FRAME_RETURN_COLUMN): Define.
339 2007-11-02 Tom Tromey <tromey@redhat.com>
341 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
344 2007-11-02 Diego Novillo <dnovillo@google.com>
346 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
347 argument from function pointer ANALYZE_EXPR. Update all
349 * cgraph.c (debug_cgraph_node): New.
352 2007-11-02 Jakub Jelinek <jakub@redhat.com>
354 PR rtl-optimization/33648
355 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
356 the newly created basic block.
358 2007-11-01 Richard Guenther <rguenther@suse.de>
360 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
362 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
364 PR rtl-optimization/33828
365 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
368 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
370 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
371 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
372 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
374 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
376 * gcc.c (getenv_spec_function): Escape the environment variable's
379 2007-11-01 Janis Johnson <janis187@us.ibm.com>
381 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
382 show that CSE means common subexpression elimination. Change wording
383 for -fsee and define LCM. Remove capitalization of optimizations
384 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
386 2007-11-01 Janis Johnson <janis187@us.ibm.com>
389 * doc/sourcebuild.texi (Test Directives): Document that xfail
390 has no effect for dg-do except when dg-do-what is "run".
392 2007-11-01 Tom Tromey <tromey@redhat.com>
394 * c-decl.c (grokdeclarator): Set decl source locations.
395 * c-parser.c (c_parser_enum_specifier): Set location.
396 (c_parser_struct_or_union_specifier): Likewise.
398 2007-11-01 Tom Tromey <tromey@redhat.com>
400 * print-tree.c (print_node): Print column number.
402 2007-11-01 Jakub Jelinek <jakub@redhat.com>
405 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
406 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
407 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
409 PR rtl-optimization/33673
410 * gcse.c (cprop_jump): If a conditional jump has been optimized
411 into unconditional jump, make the remaining normal edge fallthru
412 and delete the jump insn.
414 2007-11-01 Ben Elliston <bje@au.ibm.com>
416 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
417 (set_mem_attrs_from_reg): Likewise.
419 2007-11-01 Michael Matz <matz@suse.de>
421 PR tree-optimization/33961
422 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
423 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
424 (add_or_mark_expr): New argument 'store', using it to search
426 (nt_init_block): Adjust calls to add_or_mark_expr.
428 2007-10-31 Jakub Jelinek <jakub@redhat.com>
431 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
432 for the first push_operand.
434 2007-10-31 Revital Eres <eres@il.ibm.com>
436 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
437 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
438 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
439 movmisalignv2sf, vcondv2sf): New.
440 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
441 UNSPEC_EXTODD_V2SF): Define new constants.
442 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
443 paired_emit_vector_cond_expr): New.
444 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
445 * config/rs6000/rs6000.c (paired_expand_vector_move,
446 paired_emit_vector_cond_expr, paired_emit_vector_compare):
448 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
450 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
452 PR tree-optimization/32377
453 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
454 work also for unknown number of iterations.
455 (analyze_subscript_affine_affine): Clean up. Don't fail when the
456 number of iterations is not known.
458 2007-10-31 Richard Guenther <rguenther@suse.de>
461 * fold-const.c (extract_muldiv_1): Make sure to not introduce
462 new undefined integer overflow.
463 (fold_binary): Avoid useless conversion.
465 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
468 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
471 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
473 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
475 * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
476 with -mhard-dfp/-mno-hard-dfp.
477 * config/s390/s390.opt: Likewise.
478 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
481 2007-10-30 Janis Johnson <janis187@us.ibm.com>
483 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
485 2007-10-30 Janis Johnson <janis187@us.ibm.com>
487 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
488 optimization options.
489 (Optimize Options): Add -fdce and -fdse to the list of optimizations
490 enabled by -O. Document -fdce and -fdse.
492 2007-10-30 Jakub Jelinek <jakub@redhat.com>
495 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
496 convert second operand of COMPOUND_EXPR to the original type of
499 2007-10-30 Richard Guenther <rguenther@suse.de>
501 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
502 of loop adding SFTs as virtual operands.
504 2007-10-30 Richard Guenther <rguenther@suse.de>
506 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
508 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
510 PR tree-optimization/32893
511 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
512 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
514 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
516 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
518 (sub_ddmmss): Likewise.
519 (umul_ppmm): Likewise.
520 (udiv_qrnnd): Likewise.
522 2007-10-29 Janis Johnson <janis187@us.ibm.com>
525 * doc/sourcebuild.texi (Test Directives): Document that dg-require
526 directives must come before dg-additional-sources.
528 2007-10-29 Jakub Jelinek <jakub@redhat.com>
530 PR tree-optimization/33723
531 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
532 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
534 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
536 PR tree-optimization/33614
537 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
538 if they can't be reduced to VECTOR_CSTs and aren't legitimate
539 initializer constants.
541 2007-10-29 Richard Guenther <rguenther@suse.de>
543 PR tree-optimization/33870
544 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
545 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
548 2007-10-29 Richard Guenther <rguenther@suse.de>
550 * passes.c (init_optimization_passes): Exchange store_copy_prop
552 * tree-pass.h (pass_store_copy_prop): Remove.
553 * tree-ssa-copy.c (do_store_copy_prop): Remove.
554 (stmt_may_generate-copy): Do not handle store_copy_prop.
555 (get_copy_of_val): Likewise.
556 (set_copy_of_val): Likewise.
557 (copy_prop_visit_assignment): Likewise.
558 (copy_prop_visit_stmt): Likewise.
559 (copy_prop_visit_phi_node): Likewise.
560 (init_copy_prop): Likewise.
561 (execute_copy_prop): Likewise.
562 (do_copy_prop): Remove.
563 (gate_store_copy_prop): Likewise.
564 (store_copy_prop): Likewise.
565 (pass_store_copy_prop): Likewise.
566 (pass_copy_prop): Call execute_copy_prop.
567 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
568 * common.opt (ftree-store-copy-prop): Mark obsolete.
569 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
571 2007-10-29 Ian Lance Taylor <iant@google.com>
573 * ifcvt.c (noce_can_store_speculate_p): New static function.
574 (noce_process_if_block): Call it.
575 (if_convert): Remove recompute_dominance parameter. Change all
578 2007-10-29 Richard Guenther <rguenther@suse.de>
580 * tree-flow-inline.h (get_subvar_at): Use binary search.
581 (get_first_overlapping_subvar): New function to binary search
582 for the first overlapping subvar.
583 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
584 just handle adding subvars for a pointed-to subvar. Optimize
585 and use get_first_overlapping_subvar.
586 (add_vars_for_bitmap): Fold into single caller.
587 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
588 and non pointed-to bits of add_vars_for_offset.
590 2007-10-29 Revital Eres <eres@il.ibm.com>
592 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
594 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
595 Zdenek Dvorak <ook@ucw.cz>
598 reduction support for automatic parallelization.
600 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
602 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
603 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
604 and OMP_ATOMIC_STORE.
605 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
606 * gimple-low.c (lower_stmt): Same.
607 * gimplify.c (gimplify_expr): Same.
608 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
609 gimplify_omp_atomic_mutex): Remove.
610 (gimplify_omp_atomic): Change it to simply gimplify the
611 statement instead of expanding it.
612 * omp-low.c: Add includes to optabs.h, cfgloop.h.
613 (expand_omp_atomic, expand_omp_atomic_pipeline,
614 goa_stabilize_expr, expand_omp_atomic_mutex,
615 expand_omp_atomic_fetch_op): New functions to implement
616 expansion of OMP_ATOMIC.
617 (expand_omp, build_omp_regions_1): Add support for
618 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
619 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
621 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
623 * tree-parloops.c: add include to tree-vectorizer.h.
624 (reduction_info): New structure for reduction.
625 (reduction_list): New list to represent list of reductions per loop.
626 (struct data_arg): New helper structure for reduction.
627 (reduction_info_hash, reduction_info_eq, reduction_phi,
628 initialize_reductions, create_call_for_reduction,
629 create_phi_for_local_result, create_call_for_reduction_1,
630 create_loads_for_reductions, create_final_loads_for_reduction):
632 (loop_parallel_p): Identify reductions, add reduction_list parameter.
633 (separate_decls_in_loop_name): Support reduction variables.
634 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
635 call create_loads_for_reduction for each reduction.
636 (canonicalize_loop_ivs): Identify reductions, add reduction_list
638 (transform_to_exit_first_loop): Add reduction support, add
639 reduction_list parameter.
640 (gen_parallel_loop): Add reduction_list parameter. Add call
641 separate_decls_in_loop with
642 the new argument. Traverse reductions and call
643 initialize_reductions, create_call_for_reduction.
644 (parallelize_loops): Create and delete the reduction list.
645 (add_field_for_name): Change use of data parameter. Add fields for
647 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
648 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
649 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
650 * tree-inline.c (estimate_num_insns_1): add cases for
651 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
652 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
653 * tree-ssa-operands.c (get_addr_dereference_operands):
654 New function. Subroutine of get_indirect_ref_operands.
655 (get_indirect_ref_operands): Call get_addr_dereference_operands.
656 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
659 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
661 * config/cris/cris.c: Include df.h.
662 (cris_address_cost): Add gcc_assert for canonicalization
663 assumptions. For PLUS with MULT or register, correct
664 test for register in other arm. Tweak comments.
666 2007-10-28 Richard Guenther <rguenther@suse.de>
668 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
669 telling if the var is to be treated as points-to location.
670 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
671 (add_virtual_operand): Only recurse into MPTs if aliases
674 2007-10-28 Richard Guenther <rguenther@suse.de>
676 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
677 (add_vars_for_bitmap): Do not recurse further. Only add vars
679 (add_virtual_operand): Re-instantiate loop to add operands for
680 aliases. Recurse into MPTs.
681 (get_indirect_ref_operands): If we fall back to use a pointers
682 SMT, make sure to not prune based on the access offset and size.
684 2007-10-28 Andrew Pinski <pinskia@gmail.com>
687 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
688 the eh information on the statement.
690 2007-10-28 Richard Guenther <rguenther@suse.de>
692 * tree-flow.h (subvar_t): Make it a VEC.
693 (struct subvar): Remove.
694 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
695 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
697 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
698 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
699 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
700 (set_initial_properties): Likewise.
701 (setup_pointers_and_addressables): Likewise.
702 (new_type_alias): Likewise.
703 (create_overlap_variables_for): Likewise.
704 * tree-dfa.c (dump_subvars_for): Likewise.
705 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
706 (get_expr_operands): Likewise.
707 (add_to_addressable_set): Likewise.
708 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
710 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
712 PR tree-optimization/33920
713 * tree-if-conv.c (tree_if_conversion): Force predicate of single
714 successor bb to true when predecessor bb has NULL predicate.
715 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
717 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
719 * config/mips/mips.md: Add combiner patterns for DImode extensions
720 of HImode and QImode truncations. Reformat HImode <- QImode pattern
723 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
726 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
728 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
730 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
731 LIBCALL notes if they are about to be moved to the same insn.
733 2007-10-27 Richard Guenther <rguenther@suse.de>
735 PR tree-optimization/33870
736 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
737 duplication. Remove redundant call to access_can_touch_variable.
738 (add_vars_for_bitmap): New helper for recursing over MPT contents.
739 (add_virtual_operand): Use it.
741 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
744 * pa.h (ASM_PN_FORMAT): Delete define.
746 2007-10-26 Janis Johnson <janis187@us.ibm.com>
748 * doc/invoke.texi (Option Summary, optimizations): Remove
749 -fbounds-check. Add -fassociative-math, -freciprocal-math,
750 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
751 -fsplit-wide-types to match later entry. Break up a long line.
752 (Option Summary, code gen options) Add -fno-stack-limit. Add
753 missing @gol to the end of a line.
754 (Optimization Options): Remove -fbounds-check, which is also
755 documented under Code Generation Options. Remove =n from
756 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
757 to -fcprop-registers to match other options, and say when it is
758 enabled rather than disabled. Remove extra index entry for
759 -fno-cx-limited-range. Add index entries for -fstack-protector
760 and -fstack-protector-all.
761 (Code Gen Options): Add index entry for -ftls-model.
763 2007-10-26 Anatoly Sokolov <aesok@post.ru>
765 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
766 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
767 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
768 expand_epilogue, output_movhi): Don't handle 'main' function.
769 (avr_attribute_table): Add 'OS_task' function attribute.
770 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
772 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
773 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
775 * config/avr/avr.opt (minit-stack): Remove.
777 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
779 * tree-nested.c (get_trampoline_type): Fix thinko.
781 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
784 * tree.c (build_offset_type): Build canonical type based on the
785 TYPE_MAIN_VARIANT of the base type.
787 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
789 * reorg.c (emit_delay_sequence): Move insn locator from the
790 first insn to the sequence.
792 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
794 * ipa-pure-const.c (check_decl): Return immediately when
795 pure_const_state has been set to IPA_NEITHER.
797 2007-10-25 Ira Rosen <irar@il.ibm.com>
799 PR tree-optimization/33833
800 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
801 and convert init to sizetype in inner_base construction.
803 2007-10-25 Richard Guenther <rguenther@suse.de>
805 * tree-flow.h (mem_sym_stats): Remove.
806 (dump_mem_sym_stats_for_var): Declare.
807 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
808 (mem_sym_stats): Move ...
809 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
810 (mem_sym_score): Rename from ...
811 (pscore): ... this. Remove.
812 (dump_mem_sym_stats_for_var): New function. Dump the score, but
814 (compare_mp_info_entries): Make sort stable by disambiguating
817 2007-10-25 Ira Rosen <irar@il.ibm.com>
819 PR tree-optimization/33866
820 * tree-vect-transform.c (vectorizable_store): Check operands of all
821 the stmts in the group of strided accesses. Get def stmt type for each
822 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
824 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
826 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
827 (Yt): Rename register constraint to Y2.
828 * config/i386/sse.md: Use renamed register constraints.
829 * config/i386/mmx.md: Ditto.
830 * config/i386/i386.md: Ditto.
832 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
834 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
836 2007-10-24 Chao-ying Fu <fu@mips.com>
838 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
839 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
841 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
842 Olga Golovanevsky <olga@il.ibm.com>
844 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
845 the compiler that wr.wrap and wr.domain are initialized in
848 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
850 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
851 to print gcov_type values.
853 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
855 * config/avr/avr.h: Do not include progmem_section definition when
856 building with IN_TARGET_LIBS.
858 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
861 * config/mips/mips.c (mips_lo_sum_offset): New structure.
862 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
863 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
864 (mips_orphaned_high_part_p: New functions.
865 (mips_avoid_hazard): Don't check INSN_P here.
866 (mips_avoid_hazards): Rename to...
867 (mips_reorg_process_insns): ...this. Cope with
868 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
869 or turn them into nops.
870 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
871 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
872 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
873 (mips_override_options): Set flag_delayed_branch to 0.
875 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
877 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
878 MIPS-specific implementation details.
879 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
880 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
881 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
882 for targets with movmemsi.
883 (MOVE_BY_PIECES_P): Define.
884 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
885 (mips_block_move_loop): Add a bytes_per_iter argument.
886 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
887 Update call to mips_block_move_loop.
889 2007-10-24 Michael Matz <matz@suse.de>
892 * var-tracking.c (variable_union): Don't break after one loop
893 iteration but only when a difference is found.
894 (dump_variable): Also print DECL_UID.
896 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
898 * ipa-type-escape.h: Expose function
899 is_array_access_through_pointer_and_index.
901 (is_array_access_through_pointer_and_index):
902 Add three new parameters. Add support of
903 POINTER_PLUS_EXPR tree code.
905 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
907 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
908 * tree-pass.h: Add pass_ipa_struct_reorg.
909 * common.opt: Add ipa-struct-reorg flag.
910 * Makefile.in: Add ipa-strcut-reorg.o compilation.
911 * passes.c: Add pass pass_ipa_struct_reorg.
912 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
913 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
915 2007-10-24 Ira Rosen <irar@il.ibm.com>
917 PR tree-optimization/33804
918 * tree-vect-transform.c (vectorizable_operation): Remove the
919 checks that the vectorization is worthwhile from the transformation
922 2007-10-24 Ira Rosen <irar@il.ibm.com>
924 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
925 vectype cannot be determined for the scalar type.
926 (vect_analyze_slp_instance): Likewise.
927 * tree-vect-transform.c (vect_model_reduction_cost): Change the
928 return type to bool. Return false if vectype cannot be determined
930 (vect_get_constant_vectors): Return false if vectype cannot be
931 determined for the scalar type.
932 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
933 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
934 vectorizable_reduction): Likewise.
936 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
938 * config.gcc: For a FreeBSD target, parse the value of ${target}
939 to determine the value of FBSD_MAJOR, instead of adding an
940 explicit check for every possible FreeBSD major version.
942 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
944 PR rtl-optimization/33846
945 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
947 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
949 PR tree-optimization/33860
950 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
951 interleaved accesses in case the dr is inside the inner-loop during
952 outer-loop vectorization.
954 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
956 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
957 Document MEM_POINTER. Replace mentions of "integrated"
958 field with "return_val". Delete outdated stuff.
960 2007-10-23 David Edelsohn <edelsohn@gnu.org>
962 * config/rs6000/rs6000.c (rs6000_override_options): Set
963 rs6000_altivec_abi on AIX.
964 (conditional_register_usage): Set VR20:31 fixed on AIX.
966 2007-10-23 Richard Guenther <rguenther@suse.de>
968 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
971 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
972 David S. Miller <davem@davemloft.net>
974 * df-scan.c (df_get_call_refs): Mark global registers as both a
975 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
977 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
979 PR tree-optimization/33834
980 PR tree-optimization/33835
981 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
982 stmts need to be checked for success seperately.
983 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
984 Remove the check that stmt is not LIVE.
985 (vectorizable_assignment, vectorizable_induction): Likewise.
986 (vectorizable_operation, vectorizable_type_demotion): Likewise.
987 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
989 (vectorizable_live_operation): Check that op is not NULL.
991 2007-10-22 Janis Johnson <janis187@us.ibm.com>
993 * doc/invoke.texi (Optimization Options): In the summary, show
994 that the value for options -falign-jumps, -falign-labels,
995 -falign-loops, -falign-functions, -fsched-stalled-insns, and
996 -fsched-stalled-insns-dep is optional. In the summary, show that
997 -fsched-stalled-insns takes an optional argument and that
998 -fparallelize-loops takes an argument. Add opindex for several
999 optimization options, and fix typos in the opindex commands for
1000 several others. In the descriptions for -fsched-stalled-insns
1001 and -fsched-stalled-insns-dep, show the options with and without
1004 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
1006 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
1008 * config/avr/avr.h (LINK_SPEC): Likewise.
1009 (CRT_BINUTILS_SPECS): Likewsie.
1010 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1012 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1014 PR rtl-optimization/33644
1015 * cfgcleanup.c: Do not include dce.h.
1016 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
1017 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
1018 * dce.c (something_changed): Delete.
1019 (libcall_dead_p): New predicate.
1020 (delete_unmarked_insns): Use it to delete dead libcalls.
1021 Deal with REG_LIBCALL and REG_RETVAL notes.
1022 (prescan_libcall_for_dce): New function.
1023 (prescan_insns_for_dce): Use it to deal with libcalls.
1024 (mark_reg_dependencies): Do nothing special for libcalls.
1025 (dce_process_block): Likewise.
1026 (fast_dce): Delete unused local variable.
1027 (run_fast_dce): Do not return a value.
1028 * dce.h (struct df): Delete.
1029 (run_fast_dce): Adjust prototype.
1030 * optabs.c (libcall_id): Delete.
1031 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
1032 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
1033 * reload1.c (reload): Delete REG_LIBCALL_ID case.
1034 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
1035 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
1036 notes instead of REG_LIBCALL_ID notes.
1037 * reg-notes.def (LIBCALL_ID): Delete.
1038 * Makefile.in (see.o): Add dce.h dependency.
1039 (cfgcleanup.o): Remove dce.h dependency.
1041 2007-10-22 Michael Matz <matz@suse.de>
1043 PR tree-optimization/33855
1044 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
1047 2007-10-22 Ira Rosen <irar@il.ibm.com>
1049 PR tree-optimization/33854
1050 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
1051 FLOAT_EXPR to the list of promotion operations.
1053 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
1057 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
1058 (print_reg): Print register prefix only with AT&T asm syntax.
1059 Support pc_rtx for RIP register.
1060 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
1061 relative addressing. Always print segment register prefix with AT&T
1062 asm syntax and never with Intel asm syntax.
1063 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
1064 Fix prefix for 16-byte XFmode operands.
1065 (output_addr_const_extra): Support Intel asm syntax.
1066 (x86_file_start): Don't use register prefix with Intel asm syntax.
1067 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
1068 ("return_internal_long"): Fix Intel asm syntax output.
1069 ("set_got_rex64"): Support Intel asm syntax.
1070 ("set_rip_rex64"): Likewise.
1071 ("set_got_offset_rex64"): Likewise.
1072 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
1074 ("*tls_global_dynamic_64"): Likewise.
1075 ("*tls_local_dynamic_base_64"): Likewise.
1076 ("*load_tp_si")("*load_tp_di"): Likewise.
1077 ("*add_tp_si")("*add_tp_di"): Likewise.
1078 ("*tls_dynamic_lea_64"): Likewise.
1079 ("*sibcall_value_1_rex64_v"): Likewise.
1080 ("stack_tls_protect_set_si"): Likewise.
1081 ("stack_tls_protect_set_di"): Likewise.
1082 ("stack_tls_protect_test_si"): Likewise.
1083 ("stack_tls_protect_test_di"): Likewise.
1084 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
1086 ("*movv2sf_internal_rex64"): Likewise.
1087 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
1088 (__get_cpuid_max): Likewise.
1090 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1092 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
1093 the STRICT_P argument type "bool" rather than "int".
1094 (mips_legitimate_address_p): Likewise.
1095 (fp_register_operand, lo_operand): Delete.
1096 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1097 (mips_emit_scc): Rename to...
1098 (mips_expand_scc): ...this.
1099 (gen_conditional_branch): Rename to...
1100 (mips_expand_conditional_branch): ...this.
1101 (gen_conditional_move): Rename to...
1102 (mips_expand_conditional_move): ...this.
1103 (mips_gen_conditional_trap): Rename to...
1104 (mips_expand_conditional_trap): ...this and take an rtx code instead
1105 of an operands array.
1106 (mips_expand_call): Give the SIBCALL_P argument type "bool"
1108 (mips_emit_fcc_reload): Rename to...
1109 (mips_expand_fcc_reload): ...this.
1110 (init_cumulative_args): Rename to...
1111 (mips_init_cumulative_args): ...this and remove the libname argument.
1112 (function_arg_advance): Rename to...
1113 (mips_function_arg_advance): ...this.
1114 (function_arg): Rename to...
1115 (mips_function_arg): ...this and use "rtx" instead of
1117 (function_arg_boundary): Rename to...
1118 (mips_function_arg_boundary): ...this.
1119 (mips_expand_unaligned_load): Rename to...
1120 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1121 and BITPOS arguments type "HOST_WIDE_INT".
1122 (mips_expand_unaligned_store): Rename to...
1123 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1124 and BITPOS arguments type "HOST_WIDE_INT".
1125 (override_options): Rename to...
1126 (mips_override_options): ...this.
1127 (print_operand): Rename to...
1128 (mips_print_operand): ...this.
1129 (print_operand_address): Rename to...
1130 (mips_print_operand_address): ...this.
1131 (mips_output_ascii): Remove the PREFIX argument.
1132 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1134 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1135 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
1136 of "struct rtx_def *".
1137 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1139 (build_mips16_call_stub): Delete.
1140 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1141 (mips_use_ins_ext_p): Give the second and third arguments type
1142 "HOST_WIDE_INT" rather than "rtx".
1143 * config/mips/mips.h: Update after the above changes. Tweak comments
1145 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
1146 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1147 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1148 element type from "char" to "bool".
1149 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
1150 (mips_cpu_info_table): Delete.
1151 * config/mips/mips.md: Update after the above changes. Tweak some
1153 * config/mips/mips-ps-3d.md: Likewise.
1154 * config/mips/mips.c: Tweak comments and formatting.
1155 Use NULL-like macros rather than 0 in various places.
1156 (mips_section_threshold): Rename to...
1157 (mips_small_data_threshold): ...this and give it an unsigned type.
1158 (num_source_filenames): Remove explicit initialization.
1159 (sdb_label_count): Likewise.
1160 (sym_lineno): Delete.
1161 (set_noat): Make static.
1162 (mips_branch_likely): Likewise, and give it type "bool".
1163 (mips_isa_info): Rename to...
1164 (mips_isa_option_info): ...this.
1165 (mips_flag_delayed_branch): Rename to...
1166 (mips_base_delayed_branch): ...this.
1167 (mips_split_addresses): Delete.
1168 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1169 element type from "char" to "bool".
1170 (mips_regno_to_class): Add an explicit array size.
1171 (mips16_flipper): Change from type "int" to type "bool".
1172 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
1173 (mips_tls_operand_p): Rename to...
1174 (mips_tls_symbol_p): ...this.
1175 (mips_global_symbol_p): Remove redundant "const".
1176 (mips_offset_within_alignment_p): Simplify.
1177 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
1178 to STRICT_P and give it type bool.
1179 (mips_valid_base_register_p): Likewise.
1180 (mips_classify_address): Likewise.
1181 (mips_legitimate_address_p): Likewise.
1182 (mips16_unextended_reference_p): Take the offset as an
1183 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
1184 (mips_const_insns): Use IN_RANGE.
1185 (mips_force_temporary): Remove an unnecessary copy_rtx.
1186 (mips16_gp_pseudo_reg): Simplify.
1187 (mips_split_symbol): Remove an unnecessary copy_rtx.
1188 (mips_legitimize_tls_address): Only create registers if we need them.
1189 (mips_legitimize_address): Use mips_split_plus.
1190 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
1191 variable COST to NUM_OPS.
1192 (mips_legitimize_move): Use gen_lowpart.
1193 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
1194 (m16_check_op): Use IN_RANGE.
1195 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1196 (mips_split_doubleword_move): Pass booleans to mips_subword.
1197 (mips_output_move): Store the mode in a local variable.
1198 Explicitly assert that this function does not deal with
1199 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
1200 cases more consistent.
1201 (mips_relational_operand_ok_p): Rename to...
1202 (mips_int_order_operand_ok_p): ...this.
1203 (mips_canonicalize_comparison): Rename to...
1204 (mips_canonicalize_int_order_test): ...this.
1205 (mips_emit_int_relational): Rename to...
1206 (mips_emit_int_order_test): ...this. Store the mode in a local
1208 (mips_reverse_fp_cond_p): Rename to...
1209 (mips_reversed_fp_cond): ...this.
1210 (mips_emit_compare): Make the order of the statements more consistent.
1211 (mips_emit_scc): Rename to...
1212 (mips_expand_scc): ...this.
1213 (gen_conditional_branch): Rename to...
1214 (mips_expand_conditional_branch): ...this.
1215 (gen_conditional_move): Rename to...
1216 (mips_expand_conditional_move): ...this. Build the condition
1217 separately from the main pattern.
1218 (mips_gen_conditional_trap): Rename to...
1219 (mips_expand_conditional_trap): ...this and take an rtx code instead
1220 of an operands array. Simplify.
1221 (init_cumulative_args): Rename to...
1222 (mips_init_cumulative_args): ...this. Use memset rather than a
1223 copy from a zeroed static. Use prototype_p and stdarg_p.
1224 (mips_arg_info): Rename to...
1225 (mips_get_arg_info): ...this and put the INFO argument first.
1226 (function_arg): Rename to...
1227 (mips_function_arg): ...this and use "rtx" instead of
1228 "struct rtx_def *". Only split structures into chunks if
1229 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
1230 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
1231 comparison with REAL_TYPE. Rename local variable REG to REGNO
1232 and make it unsigned.
1233 (function_arg_advance): Rename to...
1234 (mips_function_arg_advance): ...this.
1235 (function_arg_boundary): Rename to...
1236 (mips_function_arg_boundary): ...this.
1237 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
1239 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
1240 comparison with REAL_TYPE.
1241 (mips_function_value): Remove the FUNC argument. Rename local
1242 variable UNSIGNEDP to UNSIGNED_P.
1243 (mips_return_in_memory): Use IN_RANGE.
1244 (mips_setup_incoming_varargs): Pass a boolean rather than an int
1245 to FUNCTION_ARG_ADVANCE.
1246 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
1247 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
1248 SIZE and RSIZE if needed.
1249 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
1251 (build_mips16_function_stub): Rename to...
1252 (mips16_build_function_stub): ...this.
1253 (build_mips16_call_stub): Rename to...
1254 (mips16_build_call_stub): ...this. Make static, and return a
1255 "bool" rather than an "int". Rename the ARG_SIZE argument to
1256 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
1257 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
1258 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
1260 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
1261 are not sibling ones.
1262 (mips_emit_fcc_reload): Rename to...
1263 (mips_expand_fcc_reload): ...this.
1264 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
1266 (mips_expand_unaligned_load): Rename to...
1267 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1268 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
1270 (mips_expand_unaligned_store): Rename to...
1271 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1272 and BITPOS arguments type "HOST_WIDE_INT".
1273 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
1274 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
1276 (mips_init_split_addresses): Replace with...
1277 (mips_split_addresses_p): ...this new function.
1278 (mips_init_relocs): Check mips_split_addresses_p () rather than
1279 mips_split_addresses. Always initialize mips_split_p with booleans.
1280 (print_operand_reloc): Rename to...
1281 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
1283 (print_operand): Rename to...
1284 (mips_print_operand): ...this.
1285 (print_operand_address): Rename to...
1286 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
1287 (mips_in_small_data_p): Simplify.
1288 (mips_output_ascii): Remove the PREFIX argument and "register"
1289 keywords. Use the STRING parameter directly and cast to
1291 (mips16e_collect_argument_save_p): Use IN_RANGE.
1292 (mips_function_has_gp_insn): Simplify.
1293 (mips_set_return_address): Use BITSET_P.
1294 (mips_restore_gp): Use a separate statement to pick the base
1296 (mips_output_function_prologue): Use a local FRAME variable.
1297 (mips_save_reg): Pass booleans to mips_subword.
1298 (mips_expand_prologue): Use a local FRAME variable. Use
1299 cprestore_size to detect when .cprestore is needed.
1300 (mips_restore_reg): Use GP_REG_FIRST.
1301 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1302 rather than "int". Use local FRAME and REGNO variables.
1303 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1304 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1306 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
1307 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1308 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
1309 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
1310 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
1311 (builtin_description): Rename to...
1312 (mips_builtin_description): ...this.
1313 (mips_bdesc): Rename to...
1314 (mips_ps_bdesc): ...this.
1315 (sb1_bdesc): Rename to...
1316 (mips_sb1_bdesc): ...this.
1317 (dsp_bdesc): Rename to...
1318 (mips_dsp_bdesc): ...this.
1319 (dsp_32only_bdesc): Rename to...
1320 (mips_dsp_32only_bdesc): ...this.
1321 (bdesc_map): Rename to...
1322 (mips_bdesc_map): ...this.
1323 (bdesc_arrays): Rename to...
1324 (mips_bdesc_arrays): ...this.
1325 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
1326 Tweak error message.
1327 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
1328 Rename local variables I and J to OPNO and ARGNO respectively.
1329 Assert that the number of arguments is no more than the number of
1331 (mips_expand_builtin_compare): Use an array of arguments rather
1332 than an array of operands. Assert that the number of operands is
1334 (add_constant): Rename to...
1335 (mips16_add_constant): ...this. Use XNEW.
1336 (dump_constants_1): Rename to...
1337 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
1338 (dump_constants): Rename to...
1339 (mips16_emit_constants): ...this.
1340 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
1341 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
1342 Assign mips16_p to was_mips16_p.
1343 (mips_parse_cpu): Tweak warning message.
1344 (override_options): Rename to...
1345 (mips_override_options): ...this. Move the mips_cost initialization
1346 out of the "shared with GAS" block. Quote option names in error
1348 (mips_conditional_register_usage): Make local variable REGNO unsigned.
1349 (mips_order_regs_for_local_alloc): Remove register keyword.
1351 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1353 * system.h (IN_RANGE): Cast each argument individually.
1355 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1357 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
1358 MIPS16 code unless using o32 or o64.
1360 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1362 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
1363 for modes smaller than 4 bytes.
1364 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
1367 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1369 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
1370 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
1371 (ASM_OUTPUT_ALIGNED_BSS): Delete.
1372 * config/mips/mips.c (mips_output_aligned_bss): Delete.
1374 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1376 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
1377 sibling calls to "mips16" functions if the function satisfies
1378 const_call_insn_operand.
1380 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1382 * config/mips/mips.c (mips_va_start): Fix types in calls
1385 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1387 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
1390 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1392 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
1393 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
1394 instead of checking mips_isa.
1396 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1398 * doc/invoke.texi (-mpaired-single): Don't say that the option
1399 requires 64-bit code.
1400 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
1401 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
1402 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
1403 V2SF if ISA_MIPS32R2.
1404 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
1405 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
1406 to ISA_HAS_NMADD_NMSUB.
1407 (mips_split_doubleword_move): Handle V2SF.
1408 (mips_modes_tieable_p): New function.
1409 (override_options): Report a warning rather than an error when
1410 -mpaired-single is used on ISAs that don't support it; use
1411 ISA_HAS_PAIRED_SINGLE to check that case.
1412 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
1413 and DF move splitters with a single MOVE64 splitter, thereby adding
1414 a V2SF splitter too.
1415 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
1416 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
1417 (HALFMODE): Add V2SF.
1418 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
1419 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
1420 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
1421 (movv2sf_hardfloat_32bit): New pattern.
1422 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
1423 TARGET_DOUBLE_FLOAT conditions.
1425 2007-10-20 Jakub Jelinek <jakub@redhat.com>
1427 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
1428 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
1429 64-bit register in 64-bit libgcc.
1431 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
1433 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
1434 * config/avr/avr.h (LINK_SPEC): Likewise.
1435 (CRT_BINUTILS_SPECS): Likewsie.
1436 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1438 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1440 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
1441 and -Wfatal-errors together.
1443 2007-10-20 Alan Modra <amodra@bigpond.net.au>
1446 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
1447 change for vrsave, ie restore after frame pop.
1449 2007-10-19 David S. Miller <davem@davemloft.net>
1451 * config/sparc/niagara2.md: Fix copyright notice.
1453 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
1455 PR tree-optimization/23820
1456 PR tree-optimization/24309
1457 PR tree-optimization/33766
1458 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
1459 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
1460 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
1461 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
1462 * tree-loop-linear.c (perfect_loop_nest_depth): New.
1463 (linear_transform_loops): Use perfect_loop_nest_depth.
1464 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
1465 should have a single condition: their exit.
1467 2007-10-19 Richard Guenther <rguenther@suse.de>
1471 * stor-layout.c (layout_type): Assert that aggregates do not
1472 have their alias sets set.
1473 * alias.c (get_alias_set): Return alias set zero for incomplete
1474 types, return the alias set of the element for incomplete array
1475 types, but do not remember these.
1477 2007-10-19 Richard Guenther <rguenther@suse.de>
1480 2007-10-19 Richard Guenther <rguenther@suse.de>
1483 * tree.c (build_array_type): Do not re-layout unbound array
1486 2007-10-19 Richard Guenther <rguenther@suse.de>
1489 * tree.c (build_array_type): Do not re-layout unbound array
1492 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1494 * config/mips/mips.c (mips_canonicalize_comparison): Check
1495 mips_relational_operand_ok_p before trying to rewrite the test.
1496 Only calculate PLUS_ONE if needed.
1497 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
1500 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1502 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
1505 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1507 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
1508 the call uses the incoming value of $2.
1510 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1512 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
1513 rather then gen_rtx_MEM.
1514 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
1516 (mips_set_return_address): Likewise.
1517 (mips_restore_gp): Likewise.
1519 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1521 * config/mips/mips.c (gpr_mode): Delete.
1522 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
1523 instead of gpr_mode.
1524 (mips_for_each_saved_reg): Likewise.
1525 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1526 (override_options): Don't initialize gpr_mode.
1527 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
1529 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1531 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
1533 (mips_class_max_nregs): Calculate the smallest consituent register
1534 size and use that to determine an upper bound on the number of
1537 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1539 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
1541 (mips_expand_epilogue): ...here.
1542 (mips_mdebug_abi_name): New function, split out from...
1543 (mips_file_start): ...here.
1544 (mips_hard_regno_mode_ok_p): New function, split out from...
1545 (override_options): ...here.
1546 (mips_expand_builtin_1): New function, split out from...
1547 (mips_expand_buitin): ...here. Abort if we don't recognize
1550 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1552 * config/mips/mips.c (build_mips16_function_stub): Load the
1553 target address into $1 before transfering the arguments.
1554 Don't use ".set noreorder".
1555 (build_mips16_call_stub): Likewise.
1557 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1559 * config/mips/mips.c (mips_output_32bit_xfer): New function.
1560 (mips_output_64bit_xfer): Likewise.
1561 (mips16_fp_args): Rename to...
1562 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
1563 with a DIRECTION argument. Use mips_output_32bit_xfer and
1564 mips_output_64bit_xfer.
1565 (build_mips16_function_stub): Update accordingly.
1566 (mips16_fpret_double): Delete.
1567 (build_mips16_call_stub): Update after above changes.
1568 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
1569 of mips16_fpret_double. Use GP_REG_RETURN.
1571 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1573 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
1574 use asm_out_file instead.
1575 (build_mips16_function_stub): Likewise.
1576 (build_mips16_call_stub, mips_output_function_prologue): Update
1579 2007-10-18 David S. Miller <davem@davemloft.net>
1581 Add Niagara-2 support.
1582 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
1583 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
1584 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
1585 (include): Add inclusion of niagara2.md
1586 * config/sparc/sparc.c (niagara2_costs): New.
1587 (sparc_override_options): Add niagara2 entry to cpu_default[]
1588 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
1589 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
1590 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
1591 (sparc_initialize_trampoline): Handle niagara2 like niagara.
1592 (sparc64_initialize_trampoline): Likewise.
1593 (sparc_use_sched_lookahead): Likewise.
1594 (sparc_issue_rate): Likewise.
1595 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
1597 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
1598 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
1599 TARGET_CPU_niagara2.
1600 (PROCESSOR_NIAGARA2): New.
1601 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
1602 (BRANCH_COST): Likewise.
1603 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
1604 * config/sparc/sol2.h: Likewise.
1605 * config/sparc/niagara2.md: New file.
1607 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1609 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
1611 (mips_compute_frame_info): Remove associated code.
1612 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
1614 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1616 * config/mips/mips-protos.h (compute_frame_size): Delete.
1617 * config/mips/mips.h: Update comments.
1618 * config/mips/mips.c (mips_frame_info): Remove initialized.
1619 (compute_frame_size): Rename to...
1620 (mips_compute_frame_info): ...this and make static. Remove the
1621 SIZE argument and return no value. Remove the setting of initialized.
1622 Update rest of file accordingly.
1623 (mips_set_return_address): Don't call compute_frame_size.
1624 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
1625 Don't call compute_frame_size.
1627 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1629 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
1630 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
1631 mips_hard_frame_pointer_required.
1632 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
1633 large MIPS16 frames.
1634 * config/mips/mips.c (mips_frame_pointer_required): New function.
1636 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1638 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
1639 and hard_frame_pointer_offset.
1640 (mips_debugger_offset): Use hard_frame_pointer_offset.
1641 (mips16e_collect_argument_save_p): Likewise.
1642 (compute_frame_size): Initialize arg_pointer_offset and
1643 hard_frame_pointer_offset.
1644 (mips_initial_elimination_offset): Use them.
1645 (mips_output_function_prologue): Use hard_frame_pointer_offset.
1646 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1648 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1650 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
1652 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
1653 "unsigned int" rather than "int" and put them with the other
1654 register-related fields. Put expanded comments above fields
1655 rather than to their right.
1656 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
1657 with a NUM_REGS_PTR argument.
1658 (mips16e_save_restore_pattern_p): Update accordingly.
1659 (compute_frame_size): Clarify frame diagram. Rewrite.
1661 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1663 * config/mips/mips-ftypes.def: New file.
1664 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
1665 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
1666 (mips_function_type): Redefine using mips-ftypes.def.
1667 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
1668 (mips_builtin_vector_type): New function.
1669 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
1670 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
1671 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
1672 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
1674 (mips_build_function_type): New function.
1675 (mips_init_builtins): Use it to create types lazily.
1677 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1679 * config/mips/mips.h (set_volatile): Delete.
1680 * config/mips/mips.c (set_volatile): Delete.
1681 (mips_print_operand_punctuation): New function, split out from
1682 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
1683 Use the same character ordering in the code and the comments.
1684 Use a recursive call to handle '*'. Abort on unknown characters.
1685 (mips_init_print_operand_punct): New function, split out from
1687 (mips_print_int_branch_condition): New function, split out from
1688 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
1689 to report unexpected codes.
1690 (mips_print_float_branch_condition): New function, split out from
1691 print_operand. Use output_operand_lossage to report unexpected codes.
1692 (print_operand): Rework to use a case statement. Use the
1693 same letter ordering in the code and the comments. Use
1694 output_operand_lossage to report unexpected codes and
1695 reverse_condition to handle inverted branch conditions.
1696 (override_options): Use mips_init_print_operand_punct.
1698 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1700 * config/mips/mips.h: Move variable declarations to end of file and
1701 enclose them all in #ifndef USED_FOR_TARGET.
1702 * config/mips/mips.c: Reorder functions into more logical groups,
1703 and so that callees appear before callers. Put the targetm
1704 initializer at the end of the file. Remove forward static
1705 declarations where possible.
1706 (mips_init_builtins): Add "static" to definition.
1707 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
1709 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1711 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
1712 (TARGET_MAX_ANCHOR_OFFSET): Delete.
1713 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
1714 (mips_set_mips16_mode): Initialize min_anchor_offset and
1715 max_anchor_offset directly to constants.
1717 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1719 * config/mips/mips.c: Delete trailing whitespace.
1721 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1723 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
1724 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
1726 * config/mips/mips.md (load_call<mode>): Don't make the unspec
1727 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
1729 2007-10-18 David Daney <ddaney@avtrex.com>
1731 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
1732 reg_offset variable to calculate register locations.
1734 2007-10-18 Richard Guenther <rguenther@suse.de>
1736 * tree-ssa.c (uid_ssaname_map_eq): New function.
1737 (uid_ssaname_map_has): Likewise.
1738 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
1739 * tree-flow.h (struct gimple_df): Make default_defs a
1741 * tree-dfa.c (gimple_default_def): Deal with it.
1742 (set_default_def): Likewise.
1744 2007-10-18 Richard Guenther <rguenther@suse.de>
1746 * tree-flow.h (struct gimple_df): Make referenced_vars
1748 (uid_decl_map_eq): Declare.
1749 (uid_decl_map_hash): Likewise.
1750 * tree-ssa.c (uid_decl_map_eq): New function.
1751 (uid_decl_map_hash): Likewise.
1752 (init_tree_ssa): Make referenced_vars a uid_decl_map.
1753 * tree-flow-inline.h (first_referenced_var): Deal with
1754 the referenced_vars representation change.
1755 (next_referenced_var): Likewise.
1756 * tree-dfa.c (referenced_var_lookup): Likewise.
1757 (referenced_var_check_and_insert): Likewise.
1758 (remove_referenced_var): Likewise.
1760 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
1762 * config/mips/mips.c (mips_dwarf_register_span): New.
1763 (TARGET_DWARF_REGISTER_SPAN): Define.
1765 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
1767 * config.gcc : update score-*-elf(extra_objs).
1768 * config/score/mac.md : Remove.
1769 * config/score/misc.md : Remove.
1770 * config/score/score7.md : Remove.
1771 * config/score/score-mdaux.h : Remove.
1772 * config/score/score-mdaux.c : Remove.
1773 * config/score/score-version.h : Remove.
1774 * config/score/score-generic.md : New.
1775 * config/score/score3.h : New.
1776 * config/score/score3.c : New.
1777 * config/score/score7.h : New.
1778 * config/score/score7.c : New.
1779 * config/score/mul-div.S : add flush_cache score3 support.
1780 * config/score/elf.h : Fix some typos.
1781 * config/score/score.md : merge score3 and score7 pattern.
1782 * config/score/score.c : use to seperate which target it used.
1783 * config/score/score.h : use to seperate the target macro.
1784 * config/score/score.opt : remove -mmac option , add -mscore3,
1785 -mscore3d and -march OPTION support.
1787 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
1789 * cfgexpand.c (expand_stack_vars): Add checking to make sure
1790 that the offset of a variable is not greater than the size
1793 2007-10-17 Anatoly Sokolov <aesok@post.ru>
1795 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
1796 atmega88p, atmega168p and atmega328p devices.
1797 * config/avr/avr.h (LINK_SPEC): (Ditto.).
1798 (CRT_BINUTILS_SPECS): (Ditto.).
1799 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1801 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1803 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
1805 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
1806 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
1807 (print_insn): Move declaration to ...
1808 * rtl.h (print_insn): ... here.
1810 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1812 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
1813 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
1814 m68k_sched_branch_type): Move declarations to ...
1815 * config/m68/m68k-protos.h: ... here.
1817 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1819 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
1821 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
1823 * config/avr/avr.c (avr_mcu_types): Add attiny48.
1824 * config/avr/avr.h (LINK_SPEC): Likewise.
1825 (CRT_BINUTILS_SPECS): Likewsie.
1826 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1828 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
1830 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
1831 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
1832 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1834 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
1837 * reg-stack.c (move_for_stack_reg): Swap input argument of
1838 UNSPEC_TAN insn to the top of the stack.
1840 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
1843 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
1844 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
1845 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
1846 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
1847 immediate shift value.
1848 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
1849 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
1850 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
1851 Remove macros for !__OPTIMIZE__ case.
1853 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
1855 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
1857 (perform_var_substitution): Only DFS from real nodes. Don't test
1859 (unite_pointer_equivalences): Fix broken test.
1861 2007-10-17 Alan Modra <amodra@bigpond.net.au>
1863 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
1864 altivec sp_offset. Rearrange sp_offset assignments to
1865 correspond to stack adjustments. Use frame_reg_rtx for
1866 SPE register restores. Correct SPE stack adjustment.
1868 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1870 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
1871 * toplev.c (check_global_declaration_1): Use appropriate warning
1872 option instead of unnamed warning.
1873 * stor-layout.c (layout_decl): Likewise.
1874 * c-typeck.c (build_conditional_expr): Likewise.
1875 (build_compound_expr): Fix wrong comment.
1876 (build_binary_op): Use appropriate warning option instead of
1878 * cfgexpand.c (tree_expand_cfg): Likewise.
1879 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1880 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
1881 (execute_warn_function_return): Likewise.
1882 * stmt.c (warn_if_unused_value): Likewise.
1884 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
1886 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
1887 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
1889 (CRT_BINUTILS_SPECS): Likewsie.
1890 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1892 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
1895 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
1897 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1899 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
1900 (fini_dce): Only release them for the fast pass.
1901 (end_ud_dce): Delete.
1902 (rest_of_handle_ud_dce): Do not modify df_in_progress.
1903 Call fini_dce instead of end_ud_dce.
1904 (rest_of_handle_fast_dce): Do not modify df_in_progress.
1905 (run_fast_df_dce): Reset df_in_progress to false on exit.
1907 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
1908 Maxim Kuvyrkov <maxim@codesourcery.com>
1910 * target.h (unspec_may_trap_p): New target hook.
1911 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
1912 * targhooks.c (default_unspec_may_trap_p): Default implementation of
1914 * targhooks.h (default_unspec_may_trap_p): Declare it.
1915 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
1916 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
1917 * rtl.h (may_trap_p_1): Declare.
1919 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
1920 override default hook implementation.
1921 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
1924 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1926 * doc/invoke.texi (Wextra): Move it just after Wall, list the
1927 options enabled by Wextra and mention Wuninitialized.
1929 2007-10-15 Nigel Stephens <nigel@mips.com>
1931 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
1933 2007-10-15 Jakub Jelinek <jakub@redhat.com>
1935 PR tree-optimization/33136
1936 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
1938 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
1940 PR tree-optimization/33735
1941 PR tree-optimization/33572
1942 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
1943 2007-10-09's change.
1944 * except.c (duplicate_eh_regions): Don't look for prev_try
1945 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
1947 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
1950 * tree-inline.c (copy_bb): Use bsi_replace to replace a
1951 __builtin_va_arg_pack-containing call stmt.
1953 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
1955 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
1958 2007-10-15 Jakub Jelinek <jakub@redhat.com>
1960 PR tree-optimization/33619
1961 * tree-ssa-ter.c (is_replaceable_p): Return false for all
1964 2007-10-15 David Edelsohn <edelsohn@gnu.org>
1966 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
1968 2007-10-15 Richard Guenther <rguenther@suse.de>
1970 * fold-const.c (extract_array_ref): Remove.
1971 (fold_comparison): Handle POINTER_PLUS_EXPR with the
1972 generic address expression comparison folding. Remove
1973 the folding that used extract_array_ref.
1975 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1978 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
1979 speculation type of insn can be changed before trying to do that.
1981 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1983 * dse.c (struct insn_info): Add 'frame_read' field.
1984 (scan_insn): For the call to a const function, set frame_read if
1985 reload has been run.
1986 If the insn reads the frame, kill the frame related stores.
1987 (scan_reads_nospill): Likewise.
1989 2007-10-14 Jason Merrill <jason@redhat.com>
1991 * tree-eh.c (optimize_double_finally): Don't assume that the
1992 cleanup we're duplicating is only one statement.
1994 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
1996 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
1997 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
1998 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
1999 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
2000 tree-vect-transform.c: Fix comment typos.
2001 * doc/extend.texi: Fix a typo.
2003 * c-common.h: Remove the prototype for c_expand_body.
2004 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
2005 * tree.h: Remove the prototype for fold_build_call_expr.
2007 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
2009 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
2011 2007-10-13 David Edelsohn <edelsohn@gnu.org>
2013 * config/rs6000/aix53.h: New file.
2014 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
2015 (TARGET_ALTIVEC_ABI): Same.
2016 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
2017 (TARGET_ALTIVEC_ABI): Delete.
2018 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
2019 stanza defaulting to aix5.3.
2021 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2023 * config/i386/i386.md (SI_REG, DI_REG): New constants.
2024 (strmov): Use defined constants.
2025 (cmpstrnsi): Likewise.
2026 * config/i386/i386.c (decide_alg): Use defined constants.
2027 (ix86_expand_strlen): Likewise.
2029 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
2031 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
2032 * var-tracking.c (micro_operation_def): Update comment on u.loc.
2033 (mode_for_reg_attrs, var_lowpart): New functions.
2034 (add_uses): Consider recording a lowpart of LOC for MO_USE.
2035 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
2036 or copy is known, set LOC to the SET that performs the set, instead
2038 (find_src_status, find_src_set_src): Remove LOC parameter.
2039 Replace INSN with the source value.
2040 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
2041 handling MO_SET and MO_COPY. Update the calls to find_src_status
2042 and find_src_set_src.
2044 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2047 * config/i386/i386.md (strmov): Check for esi and edi usage.
2048 * config/i386/i386.c (decide_alg): Check whether we can use a
2049 rep prefix and adjust algorithm choice accordingly.
2050 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
2052 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2054 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
2056 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
2058 * global.c (build_insn_chain): Formatting fixes.
2060 2007-10-12 Richard Guenther <rguenther@suse.de>
2062 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
2063 combining both operands require either both have single uses
2064 or combining to a constant.
2066 2007-10-12 Richard Guenther <rguenther@suse.de>
2069 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
2070 a rhs with side-effects or which is a load.
2071 (forward_propagate_into_cond): Also try combining both operands.
2073 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
2075 PR tree-optimization/33742
2076 * tree-vect-transform.c (vectorizable_operation): Return false
2077 if get_vectype_for_scalar_type for scalar_dest can't be determined.
2078 (vectorizable_call): Same for rhs_type and lhs_type.
2080 2007-10-12 Jakub Jelinek <jakub@redhat.com>
2082 PR tree-optimization/33645
2083 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
2084 pass it to walk_tree.
2085 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
2086 When calling set_is_used on a VAR_DECL, if data is not NULL and
2087 its DECL_UID is in the bitmap, call mark_all_vars_used on its
2088 DECL_INITIAL after clearing the bit in bitmap.
2089 (remove_unused_locals): Adjust mark_all_vars_used callers.
2090 Instead of removing unused global vars from unexpanded_var_list
2091 immediately record them in bitmap, call mark_all_vars_used on
2092 all used global vars from unexpanded_var_list and only purge
2093 global vars that weren't found used even during that step.
2095 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2097 * gthr-posix.h (__gthread_active_init): Create detached instead of
2098 joinable thread when testing whether threads are active on hppa-hpux.
2099 * gthr-posix95.h (__gthread_active_init): Likewise.
2101 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2104 * global.c (build_insn_chain): Include insn that occur between
2107 2007-10-11 Tom Tromey <tromey@redhat.com>
2109 * gengtype-yacc.y: Delete.
2111 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
2113 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
2114 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
2115 function_value_32, function_value_64, function_value_ms_64,
2116 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
2117 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
2120 2007-10-11 Richard Guenther <rguenther@suse.de>
2122 * gcse.c (hash_scan_set): If the next nonnote insn is in
2123 a different basic block insert the set.
2125 2007-10-11 Richard Guenther <rguenther@suse.de>
2128 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
2129 (verify_gimple_expr): Use it to verify pointer-to types for
2132 2007-10-11 Richard Guenther <rguenther@suse.de>
2135 * c-typeck.c (build_array_ref): Do not strip qualifiers from
2136 the array element type.
2138 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2140 PR rtl-optimization/33638
2141 * dse.c (struct insn_info): Remove 'stack_read' field,
2142 add 'stack_pointer_based' field.
2143 (record_store): For a store with non-constant base, record
2144 whether it is stack pointer based.
2145 (scan_insn): For the call to a const function, remove stack
2146 pointer based stores from the list of local active stores.
2147 (scan_reads_nospill): Delete code dealing with const functions.
2149 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
2151 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
2153 (conflict_p, set_conflict, set_conflicts): Likewise.
2154 * global.c (global_alloc): Likewise.
2155 * ra.h: Update prototypes.
2157 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
2159 * opth-gen.awk: Fixed generation of comment stating the origin
2162 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
2165 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2166 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2167 and '%}', respectively.
2170 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2171 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2172 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2174 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2178 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2179 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2180 syntax for ASSEMBLER_DIALECT.
2181 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2183 2007-10-10 Revital Eres <eres@il.ibm.com>
2185 * modulo-sched.c (check_nodes_order): Dump the final order of
2187 (get_sched_window): Add dump info.
2188 (calculate_order_params): Dump order params of the nodes.
2190 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2193 * ra-conflict.c (record_one_conflict_between_regnos,
2194 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
2195 (global_conflicts): Enhanced incorrect check.
2197 2007-10-09 Geoffrey Keating <geoffk@apple.com>
2199 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
2200 if flag_exceptions is not set.
2201 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
2202 assemble_name rather than incorrectly emulating it.
2204 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
2205 friends are removed from G++.
2207 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2209 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
2210 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
2211 enabling them is redundant. Don't check two times for
2214 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
2216 * ra-conflict.c (record_one_conflict_between_regnos): Revert
2218 (set_conflicts_for_earlyclobber): Likewise.
2219 (global_conflicts): Likewise.
2221 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2223 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2224 and '%}', respectively.
2226 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2228 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2229 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2231 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2234 2007-10-09 Richard Guenther <rguenther@suse.de>
2237 * gimplify.c (canonicalize_component_ref): Honor qualifiers
2238 of referenced structure and component.
2240 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2243 * ra-conflict.c (record_one_conflict_between_regnos,
2244 set_conflicts_for_earlyclobber, global_conflicts): Improved
2246 (global_conflicts): Removed incorrect check.
2248 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
2250 PR tree-optimization/33615
2251 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
2252 if the statement might throw. Fix formatting.
2254 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
2256 PR tree-optimization/33615
2257 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
2258 if the rhs might throw.
2260 2007-10-09 Jan Hubicka <jh@suse.cz>
2262 * invoke.texi (align-threshold, align-loop-iterations): Document.
2263 * final.c: Include cfgloop.h, params.h
2264 (compute_alignments): Dump decisions and compare them with loop
2265 structure; honor given parameters.
2266 (pass_compute_alignments): New dump file.
2267 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
2268 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
2270 2007-10-09 James E. Wilson <wilson@specifix.com>
2272 PR tree-optimization/33655
2274 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
2275 convert it to bitsizetype before size_binop call.
2277 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2279 PR tree-optimization/33572
2280 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
2281 the absence of a corresponding edge from the exit block.
2283 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2286 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
2288 (sra_build_assignment): Likewise. Set up mask depending on
2289 precision, not type.
2290 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
2291 computing bit masks.
2292 (sra_build_elt_assignment): Don't view-convert from signed to
2294 (sra_explode_bitfield_assignment): Use bit-field type if
2295 possible. Use BYTES_BIG_ENDIAN.
2297 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
2300 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
2301 the original stmt can throw.
2302 (sra_build_bf_assignment): Fix type mismatch when applying negated
2305 2007-10-08 Geoffrey Keating <geoffk@apple.com>
2307 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
2308 '#pragma mark' to be executed at preprocessing time.
2310 2007-10-08 Ollie Wild <aaw@google.com>
2312 * varasm.c (compare_constant): Removed call to
2313 lang_hooks.expand_constant.
2314 (copy_constants): Removed call to lang_hooks.expand_constant.
2315 (compute_reloc_for_constant): Removed call to
2316 lang_hooks.expand_constant.
2317 (output_addressed_constants): Removed call to
2318 lang_hooks.expand_constant.
2319 (constructor_static_from_elts_p): Removed call to
2320 lang_hooks.expand_constant.
2321 (output_constant): Removed calls to lang_hooks.expand_constant.
2322 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2323 * langhooks-def.h (lhd_return_tree): Removed.
2324 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2325 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2326 * langhooks.c (lhd_return_tree): Removed.
2328 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
2330 * combine.c (setup_incoming_promotions): Ensure that
2331 arguments that have not undergone mode promotions do not
2332 incorrectly get marked as being sign- or zero-extended.
2334 2007-10-08 Richard Guenther <rguenther@suse.de>
2339 * fold-const.c (fold_binary): Use correct types in folding
2340 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
2341 and building of RROTATE_EXPR.
2343 2007-10-08 Richard Guenther <rguenther@suse.de>
2348 * fold-const.c (fold_binary): Use the correct types when
2349 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
2350 (fold_binary): Use the correct types when folding
2351 (-A) - B to (-B) - A.
2352 (fold_unary): Use the correct types when folding ~(X).
2354 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2356 * doc/invoke.texi (Wall): fix formatting issues.
2358 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
2360 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
2361 truncated shift counts.
2363 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2365 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2366 syntax for ASSEMBLER_DIALECT.
2367 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2369 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2370 Nathan Froyd <froydnj@codesourcery.com>
2372 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
2373 when determining whether to record INCOMING_RETURN_ADDR_RTX.
2375 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2378 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
2380 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
2381 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
2382 the function, temporarily point the debug interface to the null one.
2384 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2386 PR tree-optimization/33655
2388 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
2391 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2393 PR tree-optimization/33572
2394 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
2395 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
2396 (update_ssa_across_abnormal_edges): ... this. Set slots in the
2398 (copy_edges_for_bb): Handle nonlocal label edges.
2399 (make_nonlocal_label_edges): Deleted.
2400 (optimize_inline_calls): Don't call it.
2402 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
2404 * gthr-single.h: Revert last change.
2406 2007-10-05 Michael Matz <matz@suse.de>
2409 * lower-subreg.c (decompose_multiword_subregs): Use
2410 validate_unshare_change().
2412 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
2414 * ra-conflict.c: Include "sparseset.h".
2415 (conflicts): Change to HOST_WIDEST_FAST_INT.
2416 (allocnos_live): Redefine variable as a sparseset.
2417 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
2419 (allocno_row_words): Removed global variable.
2420 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
2421 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
2422 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
2423 (record_one_conflict_between_regnos): Cache allocno values and reuse.
2425 (record_one_conflict): Update uses of allocnos_live to use
2426 the sparseset routines. Use set_conflicts_p.
2427 (mark_reg_store): Likewise.
2428 (set_reg_in_live): Likewise.
2429 (global_conflicts): Update uses of allocnos_live.
2430 Use the new adjacency list to visit an allocno's neighbors
2431 rather than iterating over all possible allocnos.
2432 Call set_conflicts_p to setup conflicts rather than adding
2434 * global.c: Comments updated.
2435 (CONFLICTP): Delete define.
2436 (regno_compare): New function. Add prototype.
2437 (global_alloc): Sort the allocno to regno mapping according to
2438 which basic blocks the regnos are referenced in. Modify the
2439 conflict bit matrix to a compressed triangular bitmatrix.
2440 Only allocate the conflict bit matrix and adjacency lists if
2441 we are actually going to allocate something.
2442 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
2443 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
2444 allocno's neighbors rather than iterating over all possible allocnos.
2445 (mirror_conflicts): Removed function.
2446 (dump_conflicts): Iterate over regnos rather than allocnos so
2447 that all dump output will be sorted by regno number.
2448 Use the FOR_EACH_CONFLICT macro.
2449 * ra.h: Comments updated.
2450 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
2451 (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
2453 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
2454 (adjacency_list_d, adjacency_iterator_d): New types.
2455 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
2456 adjacency_iter_next, regno_basic_block): New static inline functions.
2457 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
2458 (conflict_p): Add function prototype.
2459 * sparseset.h, sparseset.c: New files.
2460 * Makefile.in (OBJS-common): Add sparseset.o.
2461 (sparseset.o): New rule.
2463 2007-10-05 Richard Guenther <rguenther@suse.de>
2466 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
2469 2007-10-05 Michael Matz <matz@suse.de>
2472 * function.c (match_asm_constraints_1): Check for input
2473 being used in the outputs.
2475 2007-10-05 Richard Guenther <rguenther@suse.de>
2477 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
2479 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
2482 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
2483 subset checks. Make the cost of FPR -> FPR moves depend on
2484 mips_mode_ok_for_mov_fmt_p.
2486 2007-10-04 Doug Kwan <dougkwan@google.com>
2488 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
2489 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2490 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2491 support of conditional variables.
2492 * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
2493 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2494 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2495 support of conditional variables.
2496 * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
2497 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2498 conditional variables.
2499 * gthr.h: Update comments to document new interface.
2501 2007-10-04 Geoffrey Keating <geoffk@apple.com>
2503 * cgraphunit.c (cgraph_build_static_cdtor): Don't set
2506 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2508 * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
2510 2007-10-04 Richard Guenther <rguenther@suse.de>
2513 * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
2514 does not need to be of INTEGER_TYPE.
2515 (verify_gimple_2): New function split out from ...
2516 (verify_gimple_1): ... here. ICE if there was an error during
2519 2007-10-04 Michael Matz <matz@suse.de>
2521 PR rtl-optimization/33653
2522 * dce.c (deletable_insn_p_1): Use volatile_refs_p().
2523 * dse.c (scan_insn): Same.
2525 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2527 * config.gcc: Remove USE_GAS for m68k targets.
2529 2007-10-04 Richard Guenther <rguenther@suse.de>
2531 PR tree-optimization/33627
2532 * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
2533 * tree-gimple.c (canonicalize_cond_expr_cond): New function,
2535 * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
2536 * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
2538 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2540 * config/avr/avr.c (commands_in_file, commands_in_prologues,
2541 commands_in_epilogues): Remove variables.
2542 (avr_file_start): Remove unneded initializations of commands_in_file,
2543 commands_in_prologues and commands_in_epilogues variables.
2544 (avr_file_end): Remove dead code.
2546 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2548 * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
2549 MOTOROLA is to true.
2551 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk>
2554 * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
2555 (mips_split_doubleword_move): ...this.
2556 * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
2557 use natural endianness for multi-format FPR values.
2558 (mips_split_64bit_move): Rename to...
2559 (mips_split_doubleword_move): ...this and extend to 64-bit words.
2560 Use move_doubleword_fpr* patterns for moves involving FPRs.
2561 (mips_save_reg): Update the call to mips_split_64bit_move.
2562 (mips_secondary_reload_class): Return NO_REGS for any reload of a
2563 nonzero constant into an FPR if the constant can be forced to memory.
2564 * config/mips/mips.md: Update the splitter calls to
2565 mips_split_64bit_move.
2566 (UNSPEC_LOAD_DF_LOW): Rename to...
2567 (UNSPEC_LOAD_LOW): ...this.
2568 (UNSPEC_LOAD_DF_HIGH): Rename to...
2569 (UNSPEC_LOAD_HIGH): ...this.
2570 (UNSPEC_STORE_DF_HIGH): Rename to...
2571 (UNSPEC_STORE_WORD): ...this.
2572 (SPLITF): New mode iterator.
2573 (HALFMODE): New mode attribute.
2574 (movtf): New expander.
2575 (*movtf_internal): New define_insn_and_split.
2576 (move_doubleword_fpr<mode>): New expander.
2577 (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
2579 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2580 (mfhc1<mode>): ...these more general patterns.
2582 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2584 * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
2586 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2588 * gcse.c (hash_scan_set): Insert set in insn before note at
2589 the end of basic block.
2591 2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
2593 PR tree-optimization/33576
2594 * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
2595 * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
2596 * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
2597 (remove_iv): Declared.
2598 * lambda-code.c (remove_iv): Not static.
2599 (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
2600 Don't remove ivs there, save ivs in the buffer.
2602 2007-10-03 Jason Merrill <jason@redhat.com>
2605 * tree-eh.c (same_handler_p): New fn.
2606 (optimize_double_finally): New fn.
2607 (refactor_eh_r): New fn.
2608 (refactor_eh): New fn.
2609 (pass_refactor_eh): New pass.
2610 * tree-pass.h: Declare it.
2611 * passes.c (init_optimization_passes): Add it.
2613 2007-10-03 Doug Kwan <dougkwan@google.com>
2614 Richard Guenther <rguenther@suse.de>
2617 * dwarf2out.c (reference_to_unused): Disable sanity checking,
2618 be conservative instead.
2620 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2623 * doc/invoke.texi (-fwhole-program): Document that Fortran
2624 doesn't support this option.
2626 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk>
2629 * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
2632 2007-10-02 David Daney <ddaney@avtrex.com>
2634 * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
2635 against constant zero.
2636 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero
2639 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2641 * ra-conflict.c: New file.
2643 * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
2644 usage to DF_LIVE usage.
2645 (reload): Remove reference to df_get_live_top.
2646 * rtlanal.c (subreg_nregs_with_regno): New function.
2647 * df-scan.c (df_def_record_1, df_uses_record): Add code to set
2648 DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
2649 (df_has_eh_preds): Removed.
2650 (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
2651 df_exit_block_uses_collect): Changed call from df_has_eh_preds to
2653 * global.c (allocno, max_allocno, conflicts, allocno_row_words,
2654 reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
2655 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
2656 (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
2657 mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
2658 (global_alloc): Turn off rescanning insns after call to
2659 global_conflicts and added call to set_preferences.
2660 (global_conflicts): Moved to ra-alloc.c.
2661 (set_preferences_1, set_preferences): New function.
2662 (mirror_conflicts): Changed types for various variables.
2663 (mark_elimination): Change DF_RA_LIVE
2664 usage to DF_LIVE usage.
2665 (build_insn_chain): Rewritten from scratch and made local.
2666 (print_insn_chain, print_insn_chains): New functions.
2667 (dump_conflicts): Do not print conflicts for fixed_regs.
2668 (rest_of_handle_global_alloc): Turn off insn rescanning.
2669 * hard-reg-set.h: Fixed comment.
2670 * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
2671 usage to DF_LIVE usage and delete refs to TOP sets.
2672 (block_alloc): Mark regs as live if they are in the artificial
2673 defs at top of block.
2674 (find_stack_regs): New function.
2675 (rest_of_handle_local_alloc): Changed urec problem to live
2676 problem and do not turn off df rescanning.
2677 * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
2678 DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
2679 df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
2680 (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
2681 (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
2682 fields in df_ref_flags. The rest have been renumbered.
2683 * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
2685 * rtl.h (subreg_nregs_with_regno): New function.
2686 * df-problems.c: (df_get_live_out, df_get_live_in,
2687 df_get_live_top): Removed reference to DF_RA_LIVE.
2688 (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
2689 df_live_alloc, df_live_reset, df_live_local_finalize,
2690 df_live_free): Make top set only if different from in set.
2691 (df_lr_top_dump, df_live_top_dump): Only print top set if
2692 different from in set.
2693 (df_lr_bb_local_compute): Removed unnecessary check.
2694 (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
2695 df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
2696 df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
2697 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
2698 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
2699 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
2700 df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
2701 df_urec_add_problem): Removed.
2702 (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
2704 * Makefile.in (ra-conflict.o, ra.h): New dependencies.
2705 * basic_block.h (bb_has_abnormal_pred): New function.
2706 * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
2707 usage to DF_LIVE usage.
2709 2007-10-02 Revital Eres <eres@il.ibm.com>
2711 * config/rs6000/predicates.md (easy_vector_constant): Return false
2712 for 750CL paired vectors.
2713 * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
2715 (vec_initv2sf): Add new description.
2716 (vconcatsf): Likewise.
2717 * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
2718 * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
2720 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
2722 * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
2723 sinking the last stmt in a BB.
2725 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
2728 * tree-sra.c (struct sra_elt): Add in_bitfld_block.
2729 (sra_hash_tree): Handle BIT_FIELD_REFs.
2730 (sra_elt_hash): Don't hash bitfld blocks.
2731 (sra_elt_eq): Skip them in parent compares as well. Handle
2733 (build_element_name_1): Handle BIT_FIELD_REFs.
2734 (instantiate_element): Propagate nowarn from parents. Create
2735 BIT_FIELD_REF for variables that are widened by scalarization.
2736 Gimple-zero-initialize all bit-field variables that are not
2737 part of parameters that are going to be scalarized on entry.
2738 (instantiate_missing_elements_1): Return the sra_elt.
2739 (canon_type_for_field): New.
2740 (try_instantiate_multiple_fields): New. Infer widest possible
2741 access mode from decl or member type, but clip it at word
2742 size, and only widen it if a field crosses an alignment
2744 (instantiate_missing_elements): Use them.
2745 (generate_one_element_ref): Handle BIT_FIELD_REFs.
2746 (scalar_bitfield_p): New.
2747 (sra_build_assignment): Optimize assignments from scalarizable
2748 BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift
2751 (sra_build_bf_assignment): New. Optimize assignments to
2752 scalarizable BIT_FIELD_REFs.
2753 (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF
2754 assignments to full variables.
2755 (generate_copy_inout): Use the new macros and functions.
2756 (generate_element_copy): Likewise. Handle bitfld differences.
2757 (generate_element_zero): Don't recurse for blocks. Use
2758 sra_build_elt_assignment.
2759 (generate_one_element_init): Take elt instead of var. Use
2760 sra_build_elt_assignment.
2761 (generate_element_init_1): Adjust.
2762 (bitfield_overlap_info): New struct.
2763 (bitfield_overlaps_p): New.
2764 (sra_explode_bitfield_assignment): New. Adjust widened
2765 variables to account for endianness.
2766 (sra_sync_for_bitfield_assignment): New.
2767 (scalarize_use): Re-expand assignment to/from scalarized
2768 BIT_FIELD_REFs. Explode or sync needed members for
2769 BIT_FIELD_REFs accesses or assignments. Use REPLDUP.
2770 (scalarize_copy): Use REPLDUP.
2771 (scalarize_ldst): Move assert before dereference. Adjust EH
2773 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
2775 2007-10-01 Paolo Bonzini <bonzini@gnu.org>
2777 * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
2778 Rename CR_* constants to CMP_*. Fix spacing.
2780 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2783 * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
2784 to be processed with the special script doc/install.texi2html.
2786 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2788 * doc/invoke.texi (Wall): List the options enabled by Wall.
2789 (Wstrict-aliasing): Add missing @option.
2791 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk>
2793 * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
2794 rather than gen_lowpart to change a register from DImode to DFmode.
2795 (mips_cannot_change_mode_class): Only allow FPRs to change mode if
2796 both FROM and TO are integer modes that are no bigger than 4 bytes.
2797 (mips_mode_ok_for_mov_fmt_p): New function.
2798 (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
2799 (mips_secondary_reload_class): Tweak formatting and comments.
2800 Use reg_class_subset_p instead of direct comparisons with
2801 classes. Only allow direct FPR<->FPR moves for modes that
2802 satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores
2803 for 4- and 8-byte types. Handle reloads in which X is an FPR.
2804 * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
2805 (*movdi_64bit): Likewise.
2806 (*movsi_internal): Likewise.
2807 (*movhi_internal): Likewise.
2808 (*movqi_internal): Likewise.
2810 2007-09-30 Diego Novillo <dnovillo@google.com>
2813 * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
2816 2007-09-30 Uros Bizjak <ubizjak@gmail.com>
2818 PR tree-optimization/33597
2819 * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
2820 for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
2822 2007-09-28 Uros Bizjak <ubizjak@gmail.com>
2824 * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
2825 instead of variants of (!reload_in_progress && !reload_completed).
2826 (x86_expand_vector_move): Ditto.
2828 2007-09-28 Ollie Wild <aaw@google.com>
2831 2007-09-27 Ollie Wild <aaw@google.com>
2833 * varasm.c (compare_constant): Removed call to
2834 lang_hooks.expand_constant.
2835 (copy_constants): Removed call to lang_hooks.expand_constant.
2836 (compute_reloc_for_constant): Removed call to
2837 lang_hooks.expand_constant.
2838 (output_addressed_constants): Removed call to
2839 lang_hooks.expand_constant.
2840 (constructor_static_from_elts_p): Removed call to
2841 lang_hooks.expand_constant.
2842 (output_constant): Removed calls to lang_hooks.expand_constant.
2843 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2844 * langhooks-def.h (lhd_return_tree): Removed.
2845 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2846 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2847 * langhooks.c (lhd_return_tree): Removed.
2849 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2852 * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
2853 argument to gen_selb.
2855 2007-09-28 Chao-ying Fu <fu@mips.com>
2857 * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
2858 * doc/libgcc.texi (Fixed-point fractional library routines):
2859 Fix typos for neg and cmp functions.
2861 2007-09-28 Michael Matz <matz@suse.de>
2863 PR rtl-optimization/33552
2864 * function.c (match_asm_constraints_1): Check for overlap in
2865 inputs and replace all occurences.
2867 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk>
2869 * config/mips/mips.c (override_options): Fix comment typo.
2871 2007-09-28 Jie Zhang <jie.zhang@analog.com>
2873 * config.gcc (bfin*-linux-uclibc*): Set extra_parts
2874 to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
2875 * config/bfin/t-bfin-linux (crti.o): Don't build.
2877 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2878 * config/bfin/t-bfin-uclinux (crti.o): Don't build.
2880 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2882 2007-09-27 Ollie Wild <aaw@google.com>
2884 * varasm.c (compare_constant): Removed call to
2885 lang_hooks.expand_constant.
2886 (copy_constants): Removed call to lang_hooks.expand_constant.
2887 (compute_reloc_for_constant): Removed call to
2888 lang_hooks.expand_constant.
2889 (output_addressed_constants): Removed call to
2890 lang_hooks.expand_constant.
2891 (constructor_static_from_elts_p): Removed call to
2892 lang_hooks.expand_constant.
2893 (output_constant): Removed calls to lang_hooks.expand_constant.
2894 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2895 * langhooks-def.h (lhd_return_tree): Removed.
2896 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2897 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2898 * langhooks.c (lhd_return_tree): Removed.
2900 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2903 * expr.c (emit_group_load_1): Split constant double when destination
2904 length is half source length.
2906 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk>
2908 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
2909 (mips_cpu_info): Add tune_flags.
2910 (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
2911 * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
2913 (override_options): Remove deprecation code. Use branch-likely
2914 instructions for optimize_size or if the tuning flags do not
2915 suggest otherwise. Tweak warning.
2916 (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
2918 2007-09-27 Matthias Klose <doko@ubuntu.com>
2920 * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2921 multilib osdirname if it exists.
2922 * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2924 2007-09-27 Ian Lance Taylor <iant@google.com>
2926 PR tree-optimization/33565
2927 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
2928 assignments of comparisons.
2929 * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
2930 parameter. Change caller. Defer overflow warnings around call to
2932 * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
2933 TREE_NO_WARNING is set on the statement.
2934 * tree-ssa-forwprop.c
2935 (tree_ssa_forward_propagate_single_use_vars): Don't test
2936 TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
2937 * tree-cfg.c (fold_cond_expr_cond): Likewise.
2939 2007-09-27 Joseph Myers <joseph@codesourcery.com>
2941 * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
2942 reduce offset by units of 0x10000 for SPE vector modes or modes
2943 used with E500 double instructions.
2945 2007-09-04 Paolo Bonzini <bonzini@gnu.org>
2947 * simplify-rtx.c (comparison_result): New.
2948 (simplify_const_relational_operation): Use it instead of the five
2949 "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
2950 Improve bounds-checking optimizations; remove subsumed POPCOUNT
2951 optimizations. Extract nonzero_address_p optimizations into a
2952 separate "if" together with optimizations where op1 is const0_rtx.
2953 Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for
2954 floating-point arguments too when appropriate. Hoist test for ABS
2955 outside the final switch statement.
2956 * cse.c (fold_rtx): Don't look for an IOR equivalent of
2957 folded_arg0 if we found a constant equivalent. Remove
2958 transformations done in simplify-rtx.c for "op0 RELOP op0".
2960 2007-09-27 Jakub Jelinek <jakub@redhat.com>
2962 * builtins.c (expand_builtin, expand_builtin_object_size,
2963 expand_builtin_memory_chk, maybe_emit_chk_warning,
2964 maybe_emit_sprintf_chk_warning): Use new %K format string specifier
2966 * expr.c (expand_expr_real_1): Likewise.
2967 * langhooks-def.h (struct diagnostic_info): Add forward decl.
2968 (lhd_print_error_function): Add third argument.
2969 * langhooks.h (struct diagnostic_info): Add forward decl.
2970 (struct lang_hooks): Add third argument to print_error_function.
2971 * diagnostic.h (diagnostic_info): Add abstract_origin field.
2972 (diagnostic_last_function_changed, diagnostic_set_last_function): Add
2974 (diagnostic_report_current_function): Likewise.
2975 * toplev.c (announce_function): Pass NULL as second argument to
2976 diagnostic_set_last_function.
2977 * diagnostic.c (diagnostic_report_current_function): Add second
2978 argument, pass it as third argument to lang_hooks.print_error_function.
2979 (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
2980 to diagnostic_report_current_function.
2981 (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
2982 and message.abstract_origin.
2983 (verbatim): Initialize abstract_origin.
2984 * pretty-print.h (text_info): Add abstract_origin field.
2985 * pretty-print.c (pp_base_format): Handle %K.
2986 * langhooks.c (lhd_print_error_function): Add third argument. If
2987 diagnostic->abstract_origin, print virtual backtrace.
2988 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2989 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
2990 (init_dynamic_diag_info): Likewise.
2992 2007-09-26 David Daney <ddaney@avtrex.com>
2995 * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
2996 sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
2997 sync_old_nand<mode>, sync_new_nand<mode>,
2998 sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
2999 Update length attributes.
3000 (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
3001 sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
3003 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
3004 MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
3005 MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
3008 2007-09-26 Richard Guenther <rguenther@suse.de>
3010 PR tree-optimization/33563
3011 * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
3012 (get_kill_of_stmt_lhs): ... this. Re-structure. Handle
3014 (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
3015 get_use_of_stmt_lhs.
3017 2007-09-26 Joseph Myers <joseph@codesourcery.com>
3020 * c-common.c (complete_array_type): Diagnose too-large arrays and
3021 set type to error_mark_node.
3023 2007-09-26 Richard Guenther <rguenther@suse.de>
3025 PR tree-optimization/30375
3026 PR tree-optimization/33560
3027 * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
3031 2006-05-22 Aldy Hernandez <aldyh@redhat.com>
3033 * tree-ssa-dse.c (aggregate_vardecl_d): New.
3034 (dse_global_data): Add aggregate_vardecl field.
3035 (dse_possible_dead_store_p): New.
3036 Add prev_defvar variable.
3037 Allow immediate uses and previous immediate uses to differ
3038 if they are setting different parts of the whole.
3039 (get_aggregate_vardecl): New.
3040 (dse_record_partial_aggregate_store): New.
3041 (dse_whole_aggregate_clobbered_p): New.
3042 (dse_partial_kill_p): New.
3043 Call dse_maybe_record_aggregate_store().
3044 When checking whether a STMT and its USE_STMT refer to the
3045 same memory address, check also for partial kills that clobber
3047 Move some variable definitions to the block where they are used.
3048 (aggregate_vardecl_hash): New.
3049 (aggregate_vardecl_eq): New.
3050 (aggregate_vardecl_free): New.
3051 (aggregate_whole_store_p): New.
3052 (tree_ssa_dse): Initialize and free aggregate_vardecl.
3053 Mark which aggregate stores we care about.
3055 2007-09-25 DJ Delorie <dj@redhat.com>
3058 * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
3061 2007-09-25 Michael Meissner <michael.meissner@amd.com>
3064 * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
3065 gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
3066 for vector int32 -> int64 conversions. Don't write beyond the end
3067 of the allocated vector for int32 -> int64 conversions.
3069 2007-09-25 Revital Eres <eres@il.ibm.com>
3071 * config/rs6000/paired.h (paired_sel): New.
3072 * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
3073 (rs6000_expand_ternop_builtin): Pass zero const_double operand
3074 when expanding selv2sf.
3075 * config/rs6000/rs6000.h (rs6000_builtins): Add
3076 PAIRED_BUILTIN_SELV2SF4.
3078 2007-09-25 Joseph Myers <joseph@codesourcery.com>
3081 * c-typeck.c (default_conversion): Call require_complete_type
3082 before perform_integral_promotions.
3083 (build_unary_op): Call require_complete_type except for ADDR_EXPR.
3084 (build_c_cast): Call require_complete_type except for casts to
3086 (convert_for_assignment): Call require_complete_type.
3088 2007-09-25 Revital Eres <eres@il.ibm.com>
3090 * config/spu/spu.md: Fix doloop pattern.
3092 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com>
3094 * config/bfin/bfin.c (expand_prologue_reg_save,
3095 expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
3096 and ASTAT moved here...
3097 (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3098 ... from here. New argument ALL; callers changed.
3099 (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
3100 (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
3101 have the "saveall" attribute.
3103 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com>
3105 * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
3107 (INCOMING_REGNO, OUTGOING_REGNO): Define.
3108 * config/mmix/mmix.c (mmix_opposite_regno): New function.
3109 * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
3111 * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
3112 with REG_P tests before REGNO access.
3114 2007-09-24 DJ Delorie <dj@redhat.com>
3117 * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
3119 (movqicc_<code>_<mode>): Likewise.
3120 (movhicc_<code>_<mode>): Likewise.
3122 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk>
3125 * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
3126 register for reload.
3128 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
3131 * config/i386/i386.c (ix86_comp_type_attributes): Check
3134 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3136 * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
3137 "move.l %a4,%a4" to produce nops.
3138 * config/m68k/m68k.c (override_options): Reset align options,
3139 if neccessary align macro isn't avaible.
3141 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3143 config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
3145 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3147 * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
3149 * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
3150 reload is completed.
3151 (peephole pattern): Convert most of them to RTL peephole pattern.
3153 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3155 * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
3156 (moved from fp compare patterns).
3157 * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
3158 Cleanup predicates to relieve reload.
3159 (conditional_trap): Reject conditional trap with fp condition.
3160 * gcc/config/m68k/predicates.md (fp_src_operand): New, reject
3161 certain constants early.
3163 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3165 * gcc/final.c (final_scan_insn): Remove accidentally duplicated code.
3167 2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
3169 * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
3170 Allow --with-tune=cell and --with-cpu=cell.
3172 2007-09-24 David Edelsohn <edelsohn@gnu.org>
3174 * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
3175 * config/rs6000/rs6000.opt (swdiv): Change option to ...
3177 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
3179 (TARGET_BUILTIN_RECIPROCAL): Use it.
3180 (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
3181 (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
3182 (rs6000_emit_swrsqrtsf): New.
3183 * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
3185 * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
3186 (divsf3): Remove swdiv support.
3189 (rsqrt_internal1): New.
3190 (divdf3): Remove swdiv support.
3193 2007-09-24 Jakub Jelinek <jakub@redhat.com>
3196 * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
3198 * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
3199 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
3200 * tree.c (type_hash_eq): For FUNCTION_TYPE use
3201 lang_hooks.type.type_hash_eq in addition to generic tests.
3203 2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
3204 Ramana Radhakrishnan <ramana@hercules.pun.celunite.com>
3206 * tree-inline.h (eni_weights): Add field target_builtin_cost to
3207 reflect the cost per call to a target specific builtin.
3208 * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
3209 call to a target specific builtin, then use target_builtin_call_cost.
3210 (init_inline_once): Initialize target_builtin_call_cost field.
3212 2007-09-24 Kai Tietz <kai.tietz@onevision.com>
3215 * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
3218 2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
3220 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
3221 * configure: Regenerated.
3223 2007-09-23 Ollie Wild <aaw@google.com>
3225 * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
3227 (get_pointer_modulus_and_residue): New function.
3229 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3231 * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
3232 combine an SC return value into a single register.
3234 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3236 * opth-gen.awk (target_flags_explicit): Declare.
3237 * toplev.h (target_flags_explicit): Delete declaration.
3238 * toplev.c (target_flags): Likewise.
3239 * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
3240 (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
3241 Never return true for TARGET_MIPS16.
3242 * config/mips/mips.c (mips_llsc): Delete.
3243 (mips_handle_option): Remove -mllsc handling.
3244 (mips_strip_unspec_address): Tweak comment.
3245 * config/mips/mips.opt (mllsc): Use a target mask.
3247 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3249 * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
3250 word_mode as well as Pmode.
3252 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3254 * function.c (assign_parm_setup_block): Explicitly convert BLKmode
3255 parameters from word_mode to the subword type if such a truncation
3258 2007-09-23 Jakub Jelinek <jakub@redhat.com>
3260 * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
3261 * configure: Regenerated.
3263 2007-09-23 Jan Hubicka <jh@suse.cz>
3265 * params.def (INLINE_CALL_COST): Set to 12.
3266 * invoke.texi (inline-call-cost): Update default value.
3268 2007-09-23 Eric Botcazou <ebotcazou@adacore.com>
3270 * config/alpha/alpha.md (movti): Use operand_subword for the split.
3272 2007-09-23 Ayal Zaks <zaks@il.ibm.com>
3273 Revital Eres <eres@il.ibm.com>
3275 * modulo-sched.c (doloop_register_get): Rewrite the loop which
3276 checks whether the count_reg is found outside the control part.
3278 2007-09-23 Jakub Jelinek <jakub@redhat.com>
3280 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
3281 instead of checking CALL_EXPR_FN directly to test for builtins.
3282 If error or warning attributes are present, print
3283 error resp. warning.
3284 * c-common.c (handle_error_attribute): New function.
3285 (c_common_attribute_table): Add error and warning
3287 * doc/extend.texi: Document error and warning attributes.
3289 * tree.h (block_nonartificial_location): New prototype.
3290 * tree.c (block_nonartificial_location): New function.
3291 * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
3292 if artificial attribute is present on abstract inline decl.
3293 * c-common.c (handle_artificial_attribute): New function.
3294 (c_common_attribute_table): Add artificial attribute.
3295 * final.c (override_filename, override_linenum): New variables.
3296 (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
3297 and override_linenum if inside of a block inlined from
3298 __attribute__((__artificial__)) function.
3299 (notice_source_line): Honor override_filename and override_linenum.
3300 * doc/extend.texi: Document __attribute__((__artificial__)).
3301 * config/i386/emmintrin.h: Add __artificial__ attribute to
3302 all __always_inline__ functions.
3303 * config/i386/mmintrin.h: Likewise.
3304 * config/i386/tmmintrin.h: Likewise.
3305 * config/i386/mm3dnow.h: Likewise.
3306 * config/i386/pmmintrin.h: Likewise.
3307 * config/i386/ammintrin.h: Likewise.
3308 * config/i386/xmmintrin.h: Likewise.
3309 * config/i386/smmintrin.h: Likewise.
3310 * config/i386/bmmintrin.h: Likewise.
3311 * config/i386/mmintrin-common.h: Likewise.
3314 * expr.c (expand_constructor): New function.
3315 (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
3316 (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
3319 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3321 * config/mips/mips.c (dump_constants_1): Generalize to include
3322 fractional and accumulator modes.
3324 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
3326 * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
3327 * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
3329 (override_options): Check TARGET_HARD_FLOAT_ABI instead of
3330 TARGET_HARD_FLOAT when testing whether -mpaired-single is
3332 (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
3334 * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
3336 * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
3337 (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
3339 (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
3340 ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
3341 * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
3343 * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
3345 * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
3346 instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
3347 * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
3349 2007-09-22 Jason Merrill <jason@redhat.com>
3352 * attribs.c (lookup_attribute_spec): Split out...
3353 (decl_attributes): From here.
3354 * tree.h: Declare it.
3356 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
3358 * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
3360 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3362 * tree-inline.c (remap_type_1): Correctly chain variants.
3364 2007-09-22 Richard Guenther <rguenther@suse.de>
3366 PR tree-optimization/33146
3367 * fold-const.c (fold_binary): Use the original tree
3369 * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
3370 also changes "sign".
3372 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3375 * except.c (finish_eh_generation): Call commit_edge_insertions if
3376 there are insns queued on the entry edge.
3377 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
3380 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
3382 * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
3384 2007-09-19 Michael Meissner <michael.meissner@amd.com>
3386 * gcc/config/i386/i386.c: Delete trailing whitespace.
3387 * gcc/config/i386/i386.h: Ditto.
3388 * gcc/config/i386/bmmintrin.h: Ditto.
3389 * gcc/config/i386/sync.md: Ditto.
3390 * gcc/config/i386/ppro.md: Ditto.
3391 * gcc/config/i386/mmx.md: Ditto.
3392 * gcc/config/i386/constraints.md: Ditto.
3393 * gcc/config/i386/sse.md: Ditto.
3394 * gcc/config/i386/athlon.md: Ditto.
3395 * gcc/config/i386/i386.md: Ditto.
3397 2007-09-21 Richard Guenther <rguenther@suse.de>
3399 PR tree-optimization/33508
3400 * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
3401 quadratic loop by keeping a bitmap of variables we have
3402 to clobber all subvariables for.
3403 (set_initial_properties): Likewise.
3405 2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk>
3407 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
3409 2007-09-20 Nigel Stephens <nigel@mips.com>
3410 Chao-ying Fu <fu@mips.com>
3412 * c-decl.c (finish_declspecs): When _Sat is used without
3413 _Fract or _Accum, set the default type to cts_fract.
3414 This avoids a warning of "type defaults to int".
3416 2007-09-20 Joseph Myers <joseph@codesourcery.com>
3418 * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
3419 bit-fields wider than one bit.
3421 2007-09-20 Jakub Jelinek <jakub@redhat.com>
3424 * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL