1 2007-11-13 Michael Meissner <michael.meissner@amd.com>
3 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate
6 2007-11-13 Sterling Augustine <sterling@tensilica.com>
7 Bob Wilson <bob.wilson@acm.org>
9 * config/xtensa/unwind-dw2-xtensa.c: New.
10 * config/xtensa/unwind-dw2-xtensa.h: New.
11 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12 (DWARF2_UNWIND_INFO): Remove.
13 (DWARF_FRAME_REGISTERS): Define.
14 (EH_RETURN_DATA_REGNO): Define.
15 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
17 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
19 2007-11-13 Jakub Jelinek <jakub@redhat.com>
21 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
22 -fsched-stalled-insns.
24 PR tree-optimization/34063
25 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
26 as first chrec_fold_plus operand rather than second.
28 2007-11-13 Diego Novillo <dnovillo@google.com>
30 PR tree-optimization/33870
31 * tree.h (strcut tree_memory_tag): add field unpartitionable.
32 remove field in_nested_struct.
33 (struct tree_struct_field_tag): add field nesting_level.
34 (sft_in_nested_struct): remove.
35 (sft_nesting_level): define.
36 (sft_unpartitionable_p): define.
37 * tree-ssa-alias.c (mem_sym_score): if mp->var is not
38 partitionable, return long_max.
39 (compute_memory_partitions): do not partition sfts marked
41 (create_sft): add argument nesting_level. set
42 sft_nesting_level with it. update all users.
43 (create_overlap_variables_for): show nesting level.
44 * tree-dfa.c (dump_subvars_for): likewise.
45 (dump_variable): likewise.
46 show whether the sft is partitionable or not.
47 * tree-flow.h (struct fieldoff): remove field
49 add field nesting_level.
50 * tree-ssa-structalias.c (struct variable_info): remove
51 field in_nested_struct.
52 (push_fields_onto_fieldstack): add argument
53 nesting_level. update all users.
55 update pair->nesting_level with nesting_level.
56 make recursive calls with nesting_level + 1.
57 (set_uids_in_ptset): if an sft is added to the points-to
58 set, mark it as unpartitionable.
59 * tree-ssa-operands.c (ref_nesting_level): new.
60 (add_vars_for_offset): call it.
61 add argument full_ref. update
63 if var is inside a nested structure and the nesting level
64 of full_ref is lower than the nesting level of var,
65 adjust offset by the offset of var.
67 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
69 PR tree-optimization/32582
70 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
72 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
74 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
75 functions can be used as constant.
77 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
79 PR rtl-optimization/34035
80 * cse.c (cse_cfg_altered): New global variable.
81 (cse_jumps_altered): Make boolean.
82 (recorded_label_ref): Likewise.
83 (cse_insn): Adjust for above changes.
84 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
85 if dead edges have been purged.
86 (cse_main): Change return value specification and adjust code.
87 (rest_of_handle_cse): Adjust for above change.
88 (rest_of_handle_cse2): Likewise.
89 * gcse.c (rest_of_handle_gcse): Likewise.
91 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
92 Michael Meissner <michael.meissner@amd.com>
94 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
95 get the appropriate suffix for the coms* instruction.
96 (sse5_pcmov_<mode>): Restrict operands of pcmov
97 for scalar case to be only xmm registers and not memory.
99 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
100 constraints to follow the mnemonics for the pcmov instruction
102 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
105 * config/mips/mips.c (mips_return_fpr_single): New function.
106 (mips_function_value): Use it when returning single-field
108 (mips_expand_call): Handle the PARALLELs created by
109 mips_return_fpr_single.
111 2007-11-12 Richard Guenther <rguenther@suse.de>
114 * fold-const.c (fold_binary): If testing for non-negative
115 operands with tree_expr_nonnegative_warnv_p make sure to
116 use op0 which has all (sign) conversions retained.
118 2007-11-12 Richard Guenther <rguenther@suse.de>
121 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
122 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
124 2007-11-12 Ira Rosen <irar@il.ibm.com>
126 PR tree-optimization/33953
127 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
128 allocate vec_oprnds1 according to the number of created vector
129 statements. In case of shift with scalar argument, store scalar operand
130 for every vector statement to be created for the SLP node. Fix a
133 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
135 * gcse.c (CUID_INSN): Remove.
137 (alloc_gcse_mem): Don't allocate cuid_insn.
138 (free_gcse_mem): Don't free cuid_insn.
140 2007-11-10 Jakub Jelinek <jakub@redhat.com>
143 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
147 * tree-inline.h (copy_body_data): Add regimplify field.
148 * tree-inline.c (copy_body_r): Set id->regimplify to true
149 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
151 (copy_bb): Clear id->regimplify before walk_tree, if it is
152 set afterwards, regimplify the whole statement.
154 PR tree-optimization/33680
155 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
156 if the added cast involves variable length types.
158 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
159 Maxim Kuvyrkov <maxim@codesourcery.com>
161 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
162 instead of TRUE_BARRIER for jumps. Add register dependencies
163 even when reg_pending_barrier is set.
165 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
167 * haifa-sched.c (haifa_classify_insn): Rename to ...
168 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
169 handle PARALLELs by recursing. Use it ...
170 (haifa_classify_insn): ... here. Reimplement.
172 2007-11-09 Richard Guenther <rguenther@suse.de>
174 * bitmap.h (bitmap_single_bit_set_p): Declare.
175 * bitmap.c (bitmap_single_bit_set_p): New function.
176 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
177 (maybe_create_global_var): Use bitmap_empty_p.
179 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
180 Jakub Jelinek <jakub@redhat.com>
182 PR rtl-optimization/34012
183 * fwprop.c (try_fwprop_subst): Do not replace if the new
184 SET_SRC has a higher cost than the old one.
186 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
188 PR rtl-optimization/33732
189 * reload.c (push_reload): Check that the REG_DEAD note was referring
190 to a hardreg or to a pseudo that has been assigned exactly one hardreg
191 before considering it in order to select the reload register.
192 (combine_reloads): Likewise.
193 (find_dummy_reload): Likewise.
195 2007-11-09 Richard Guenther <rguenther@suse.de>
197 * tree-flow.h (struct ptr_info_def): Make escape_mask a
199 (struct ptr_info_def): Likewise.
200 (enum escape_type): Also use bit zero.
202 2007-11-09 Richard Guenther <rguenther@suse.de>
204 PR tree-optimization/33604
205 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
206 Disregard changes in CV qualifiers of pointed to types for
207 forward propagating ADDR_EXPRs.
208 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
211 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
213 * dse.c (find_shift_sequence): Always choose an integer mode for
215 (replace_read): Require both the read and store mode to be
216 integer ones. Remove a then-redundant FLOAT_P check.
218 2007-11-08 Richard Guenther <rguenther@suse.de>
220 * tree-dfa.c (remove_referenced_var): If removing a
221 variable which has subvars, also remove those from
222 the referenced vars. Do not create a variable annotation.
224 2007-11-08 Bob Wilson <bob.wilson@acm.org>
226 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
227 argument for gen_entry calls.
228 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
229 (entry): Use the new attribute value. Remove unused first operand.
231 2007-11-08 Tom Tromey <tromey@redhat.com>
233 * c-parser.c (c_parser_translation_unit): Use location in error.
234 (c_parser_external_declaration): Likewise.
235 (c_parser_declaration_or_fndef): Likewise.
236 (c_parser_enum_specifier): Likewise.
237 (c_parser_struct_or_union_specifier): Likewise.
238 (c_parser_struct_declaration): Likewise.
239 (c_parser_typeof_specifier): Likewise.
240 (c_parser_parms_list_declarator): Likewise.
241 (c_parser_asm_string_literal): Likewise.
242 (c_parser_braced_init): Likewise.
243 (c_parser_initelt): Likewise.
244 (c_parser_compound_statement_nostart): Likewise.
245 (c_parser_statement_after_labels): Likewise.
246 (c_parser_do_statement): Likewise.
247 (c_parser_asm_statement): Likewise.
248 (c_parser_conditional_expression): Likewise.
249 (c_parser_unary_expression): Likewise.
250 (c_parser_sizeof_expression): Likewise.
251 (c_parser_postfix_expression): Likewise.
252 (c_parser_postfix_expression_after_paren_type): Likewise.
253 (c_parser_objc_class_instance_variables): Likewise.
254 (c_parser_objc_method_definition): Likewise.
255 (c_parser_objc_methodprotolist): Likewise.
256 (c_parser_pragma): Likewise.
257 (c_parser_omp_clause_num_threads): Likewise.
258 (c_parser_omp_clause_schedule): Likewise.
259 (c_parser_omp_all_clauses): Likewise.
260 (c_parser_omp_sections_scope): Likewise.
261 (c_parser_label): Use location of label, not colon.
263 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
266 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
269 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
272 * ipa-pure-const.c (static_execute): Added code to keep recursive
273 functions from being marked as pure or const.
274 * ipa-utils.c (searchc): Fixed comment.
276 2007-11-08 Tom Tromey <tromey@redhat.com>
278 * common.opt (fshow-column): Default to 0.
279 * configure: Rebuilt.
280 * configure.ac (--enable-mapped-location): Default to 'yes'.
282 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
284 * common.opt: Add pointer to doc/options.texi.
285 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
286 -fipa-reference): Add or correct doc. Sorted options list for -Os
289 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
292 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
293 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
294 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
295 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
296 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
297 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
298 to TARGET_BIG_ENDIAN_DEFAULT.
299 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
300 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
301 to TARGET_BIG_ENDIAN_DEFAULT.
303 2007-11-07 Diego Novillo <dnovillo@google.com>
305 * tree.h (struct tree_struct_field_tag): Move field
307 (struct tree_memory_tag): ... here.
309 2007-11-07 Diego Novillo <dnovillo@google.com>
312 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
313 (SFT_IN_NESTED_STRUCT): Define.
314 * tree-dfa.c (dump_subvars_for): Show offset of each
316 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
317 * tree-ssa-structalias.c (struct variable_info): Likewise.
318 (push_fields_onto_fieldstack): If OFFSET is positive,
319 set in_nested_struct.
320 (create_variable_info_for): Copy setting of
321 in_nested_struct from the field offset object.
322 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
323 variable info object.
324 * tree-ssa-operands.c (add_vars_for_offset): If VAR
325 belongs to a nested structure, adjust OFFSET by
328 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
330 PR rtl-optimization/33737
331 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
332 target block after computing the probabilities of outgoing edges.
333 Cap the frequency to BB_FREQ_MAX.
334 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
335 frequency of the basic block if it has been reused.
337 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
339 PR rtl-optimization/33822
340 * rtl.h (REG_OFFSET): Fix comment.
341 * var-tracking.c (INT_MEM_OFFSET): New macro.
342 (var_mem_set): Use it.
343 (var_mem_delete_and_set): Likewise.
344 (var_mem_delete): Likewise.
345 (same_variable_part_p): Likewise.
346 (vt_get_decl_and_offset): Likewise.
347 (offset_valid_for_tracked_p): New predicate.
348 (count_uses): Do not track locations with invalid offsets.
349 (add_uses): Likewise.
350 (add_stores): Likewise.
352 2007-11-07 Tom Tromey <tromey@redhat.com>
354 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
355 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
357 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
358 Andrey Belevantsev <abel@ispras.ru>
360 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
361 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
362 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
363 Save calculated max_asap in it.
364 (sms_schedule): Calculate maxii using max_asap.
366 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
368 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
369 with -mhard-dfp/-mno-hard-dfp.
371 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
372 Jakub Jelinek <jakub@redhat.com>
375 * haifa-sched.c (check_sched_flags): Remove.
376 (sched_init): Don't call it.
378 2007-11-06 Diego Novillo <dnovillo@google.com>
380 * tree-flow.h (struct fieldoff): Reformat comment.
382 * tree-ssa-operands.c: Tidy top-level comments.
384 (add_vars_for_offset): Tidy parameter formatting..
385 (get_addr_dereference_operands): Likewise.
386 (get_indirect_ref_operands): Likewise.
387 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
388 <OMP_ATOMIC_STORE>: Likewise.
390 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
393 * config/i386/driver-i386.c: Test for __GNUC__ instead of
394 GCC_VERSION which is always defined.
396 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
399 * reload1.c (find_reloads): Also check in_reg when handling a
400 simple move with an input reload and a destination of a hard
403 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
405 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
406 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
407 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
408 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
409 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
410 (m68k_sched_attr_type2): New function.
411 (sched_adjust_cost_state): New static variable.
412 (m68k_sched_adjust_cost): New static function implementing
414 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
415 New static variables.
416 (m68k_sched_variable_issue): New static function implementing
418 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
419 (sched_dump_split_class): New static function.
420 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
422 (sched_dump_dfa_class, m68k_sched_dump): New static function.
423 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
424 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
425 m68k_sched_dfa_post_advance_cycle): New static functions implementing
428 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
429 (CPU_UNITS_QUERY): Define.
431 * config/m68k/cf.md: New file.
432 * config/m68k/m68.md (cf.md): New include.
434 2007-11-06 Tom Tromey <tromey@redhat.com>
436 PR c++/32256, PR c++/32368:
437 * function.c (saved_in_system_header): New global.
438 (push_cfun): Save in_system_header.
439 (pop_cfun): Restore in_system_header.
440 (push_struct_function): Save in_system_header.
442 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
446 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
447 (complete_array_type): Set canonical type appropriately.
448 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
449 C and C++ front ends now have different versions of this function,
450 because the C++ version needs to maintain canonical types here.
452 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
454 * tree-parloops.c (reduction_info): Remove reduction_init field.
455 (initialize_reductions): Remove creation of the reduction_init variable.
456 (struct data_arg): Remove.
457 (add_field_for_reduction, create_stores_for_reduction): New functions.
458 (add_field_for_name): Remove reduction handling.
459 (separate_decls_in_loop): Call add_field_for_reduction,
460 create_stores_for_reduction.
462 2007-11-06 Jakub Jelinek <jakub@redhat.com>
464 PR tree-optimization/33458
465 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
466 !is_gimple_val PHI argument, gimplify it and insert it on edge.
468 PR tree-optimization/33993
469 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
470 rather than build_constructor_from_list if all list values are
472 (get_initial_def_for_induction): Use build_vector instead of
473 build_constructor_from_list.
475 2007-11-05 Mark Mitchell <mark@codesourcery.com>
478 * tree.h (DECL_INIT_PRIORITY): Do not require
479 DECL_HAS_INIT_PRIORITY_P.
480 (DECL_FINI_PRIORITY): Likewise.
481 * tree.c (decl_init_priority_lookup): Remove assert.
482 (decl_fini_priority_insert): Likewise.
483 * cgraphunit.c (static_ctors): Make it a VEC.
484 (static_dtors): Likewise.
485 (record_cdtor_fn): Adjust accordingly.
486 (build_cdtor): Generate multiple functions for each initialization
488 (compare_ctor): New function.
489 (compare_dtor): Likewise.
490 (cgraph_build_cdtor_fns): Sort the functions by priority before
492 (cgraph_build_static_cdtor): Put the priority in the function's
495 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
498 * common.opt: Add shared and pie.
500 2007-11-05 Bob Wilson <bob.wilson@acm.org>
502 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
503 replace references to virtual_stack_vars_rtx in goto_handler.
505 2007-11-05 Paul Brook <paul@codesourcery.com>
507 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
508 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
509 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
510 arm_lang_output_object_attributes_hook.
511 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
512 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
513 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
515 * config/arm/t-arm.c (arm.o): New rule.
516 * config/arm/arm-c.c: New file.
518 2007-11-05 Nick Clifton <nickc@redhat.com>
519 Sebastian Pop <sebastian.pop@amd.com>
521 PR tree-optimization/32540
522 PR tree-optimization/33922
523 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
524 * tree-ssa-pre.c: Include params.h.
525 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
526 to limit the maximum length of the PA set for a given block.
527 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
528 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
530 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
532 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
533 __fixunssfDI): Make return type unsigned.
534 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
535 __fixunssfDI): Make return type unsigned.
537 2007-11-05 Jakub Jelinek <jakub@redhat.com>
539 PR tree-optimization/33856
540 * tree-data-ref.c (get_references_in_stmt): Don't add
541 REFERENCE_CLASS_P trees to references vector if get_base_address
542 returns NULL on them.
544 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
546 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
548 2007-11-04 Andrew Pinski <pinskia@gmail.com>
551 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
552 for TRUTH_NOT_EXPR to type.
554 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
556 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
558 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
561 * dwarf2out.c (add_calling_convention_attribute): Change
562 second argument. Set calling convention to DW_CC_program for
563 Fortran main program.
564 (gen_subprogram_die): Adjust to new prototype for
565 add_calling_convention_attribute.
567 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
569 PR tree-optimization/33987
570 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
572 (vectorizable_reduction): Add type check.
574 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
577 * c-parser.c (c_parser_statement_after_labels): Error if a
578 declaration is parsed after a label.
580 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
583 * reorg.c (emit_delay_sequence): Do not clear the locator on
584 the jump instruction.
586 2007-11-03 Jakub Jelinek <jakub@redhat.com>
589 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
590 current sched region.
592 2007-11-02 Jakub Jelinek <jakub@redhat.com>
594 * config/ia64/ia64.c (struct reg_write_state): Change into
595 unsigned short bitfields rather than unsigned int, decrease
596 first_pred to just 10 bits.
597 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
599 (rws_insn_set, rws_insn_test): New functions.
600 (in_safe_group_barrier): New variable.
601 (rws_update): Remove first argument, always set rws_sum array.
602 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
603 or update rws_sum if !in_safe_group_barrier, adjust rws_update
605 (rtx_needs_barrier): Use rws_insn_test macro.
606 (safe_group_barrier_needed): Don't save/restore rws_sum array,
607 instead set/clear in_safe_group_barrier flag.
609 2007-11-02 Bob Wilson <bob.wilson@acm.org>
611 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
612 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
613 pointer or frame pointer.
614 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
615 (MUST_USE_SJLJ_EXCEPTIONS): Define.
616 (DWARF2_UNWIND_INFO): Define.
617 (INCOMING_RETURN_ADDR_RTX): Define.
618 (DWARF_FRAME_RETURN_COLUMN): Define.
620 2007-11-02 Tom Tromey <tromey@redhat.com>
622 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
625 2007-11-02 Diego Novillo <dnovillo@google.com>
627 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
628 argument from function pointer ANALYZE_EXPR. Update all
630 * cgraph.c (debug_cgraph_node): New.
633 2007-11-02 Jakub Jelinek <jakub@redhat.com>
635 PR rtl-optimization/33648
636 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
637 the newly created basic block.
639 2007-11-01 Richard Guenther <rguenther@suse.de>
641 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
643 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
645 PR rtl-optimization/33828
646 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
649 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
651 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
652 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
653 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
655 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
657 * gcc.c (getenv_spec_function): Escape the environment variable's
660 2007-11-01 Janis Johnson <janis187@us.ibm.com>
662 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
663 show that CSE means common subexpression elimination. Change wording
664 for -fsee and define LCM. Remove capitalization of optimizations
665 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
667 2007-11-01 Janis Johnson <janis187@us.ibm.com>
670 * doc/sourcebuild.texi (Test Directives): Document that xfail
671 has no effect for dg-do except when dg-do-what is "run".
673 2007-11-01 Tom Tromey <tromey@redhat.com>
675 * c-decl.c (grokdeclarator): Set decl source locations.
676 * c-parser.c (c_parser_enum_specifier): Set location.
677 (c_parser_struct_or_union_specifier): Likewise.
679 2007-11-01 Tom Tromey <tromey@redhat.com>
681 * print-tree.c (print_node): Print column number.
683 2007-11-01 Jakub Jelinek <jakub@redhat.com>
686 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
687 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
688 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
690 PR rtl-optimization/33673
691 * gcse.c (cprop_jump): If a conditional jump has been optimized
692 into unconditional jump, make the remaining normal edge fallthru
693 and delete the jump insn.
695 2007-11-01 Ben Elliston <bje@au.ibm.com>
697 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
698 (set_mem_attrs_from_reg): Likewise.
700 2007-11-01 Michael Matz <matz@suse.de>
702 PR tree-optimization/33961
703 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
704 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
705 (add_or_mark_expr): New argument 'store', using it to search
707 (nt_init_block): Adjust calls to add_or_mark_expr.
709 2007-10-31 Jakub Jelinek <jakub@redhat.com>
712 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
713 for the first push_operand.
715 2007-10-31 Revital Eres <eres@il.ibm.com>
717 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
718 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
719 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
720 movmisalignv2sf, vcondv2sf): New.
721 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
722 UNSPEC_EXTODD_V2SF): Define new constants.
723 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
724 paired_emit_vector_cond_expr): New.
725 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
726 * config/rs6000/rs6000.c (paired_expand_vector_move,
727 paired_emit_vector_cond_expr, paired_emit_vector_compare):
729 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
731 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
733 PR tree-optimization/32377
734 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
735 work also for unknown number of iterations.
736 (analyze_subscript_affine_affine): Clean up. Don't fail when the
737 number of iterations is not known.
739 2007-10-31 Richard Guenther <rguenther@suse.de>
742 * fold-const.c (extract_muldiv_1): Make sure to not introduce
743 new undefined integer overflow.
744 (fold_binary): Avoid useless conversion.
746 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
749 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
752 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
754 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
756 * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
757 with -mhard-dfp/-mno-hard-dfp.
758 * config/s390/s390.opt: Likewise.
759 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
762 2007-10-30 Janis Johnson <janis187@us.ibm.com>
764 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
766 2007-10-30 Janis Johnson <janis187@us.ibm.com>
768 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
769 optimization options.
770 (Optimize Options): Add -fdce and -fdse to the list of optimizations
771 enabled by -O. Document -fdce and -fdse.
773 2007-10-30 Jakub Jelinek <jakub@redhat.com>
776 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
777 convert second operand of COMPOUND_EXPR to the original type of
780 2007-10-30 Richard Guenther <rguenther@suse.de>
782 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
783 of loop adding SFTs as virtual operands.
785 2007-10-30 Richard Guenther <rguenther@suse.de>
787 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
789 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
791 PR tree-optimization/32893
792 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
793 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
795 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
797 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
799 (sub_ddmmss): Likewise.
800 (umul_ppmm): Likewise.
801 (udiv_qrnnd): Likewise.
803 2007-10-29 Janis Johnson <janis187@us.ibm.com>
806 * doc/sourcebuild.texi (Test Directives): Document that dg-require
807 directives must come before dg-additional-sources.
809 2007-10-29 Jakub Jelinek <jakub@redhat.com>
811 PR tree-optimization/33723
812 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
813 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
815 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
817 PR tree-optimization/33614
818 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
819 if they can't be reduced to VECTOR_CSTs and aren't legitimate
820 initializer constants.
822 2007-10-29 Richard Guenther <rguenther@suse.de>
824 PR tree-optimization/33870
825 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
826 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
829 2007-10-29 Richard Guenther <rguenther@suse.de>
831 * passes.c (init_optimization_passes): Exchange store_copy_prop
833 * tree-pass.h (pass_store_copy_prop): Remove.
834 * tree-ssa-copy.c (do_store_copy_prop): Remove.
835 (stmt_may_generate-copy): Do not handle store_copy_prop.
836 (get_copy_of_val): Likewise.
837 (set_copy_of_val): Likewise.
838 (copy_prop_visit_assignment): Likewise.
839 (copy_prop_visit_stmt): Likewise.
840 (copy_prop_visit_phi_node): Likewise.
841 (init_copy_prop): Likewise.
842 (execute_copy_prop): Likewise.
843 (do_copy_prop): Remove.
844 (gate_store_copy_prop): Likewise.
845 (store_copy_prop): Likewise.
846 (pass_store_copy_prop): Likewise.
847 (pass_copy_prop): Call execute_copy_prop.
848 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
849 * common.opt (ftree-store-copy-prop): Mark obsolete.
850 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
852 2007-10-29 Ian Lance Taylor <iant@google.com>
854 * ifcvt.c (noce_can_store_speculate_p): New static function.
855 (noce_process_if_block): Call it.
856 (if_convert): Remove recompute_dominance parameter. Change all
859 2007-10-29 Richard Guenther <rguenther@suse.de>
861 * tree-flow-inline.h (get_subvar_at): Use binary search.
862 (get_first_overlapping_subvar): New function to binary search
863 for the first overlapping subvar.
864 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
865 just handle adding subvars for a pointed-to subvar. Optimize
866 and use get_first_overlapping_subvar.
867 (add_vars_for_bitmap): Fold into single caller.
868 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
869 and non pointed-to bits of add_vars_for_offset.
871 2007-10-29 Revital Eres <eres@il.ibm.com>
873 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
875 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
876 Zdenek Dvorak <ook@ucw.cz>
879 reduction support for automatic parallelization.
881 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
883 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
884 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
885 and OMP_ATOMIC_STORE.
886 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
887 * gimple-low.c (lower_stmt): Same.
888 * gimplify.c (gimplify_expr): Same.
889 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
890 gimplify_omp_atomic_mutex): Remove.
891 (gimplify_omp_atomic): Change it to simply gimplify the
892 statement instead of expanding it.
893 * omp-low.c: Add includes to optabs.h, cfgloop.h.
894 (expand_omp_atomic, expand_omp_atomic_pipeline,
895 goa_stabilize_expr, expand_omp_atomic_mutex,
896 expand_omp_atomic_fetch_op): New functions to implement
897 expansion of OMP_ATOMIC.
898 (expand_omp, build_omp_regions_1): Add support for
899 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
900 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
902 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
904 * tree-parloops.c: add include to tree-vectorizer.h.
905 (reduction_info): New structure for reduction.
906 (reduction_list): New list to represent list of reductions per loop.
907 (struct data_arg): New helper structure for reduction.
908 (reduction_info_hash, reduction_info_eq, reduction_phi,
909 initialize_reductions, create_call_for_reduction,
910 create_phi_for_local_result, create_call_for_reduction_1,
911 create_loads_for_reductions, create_final_loads_for_reduction):
913 (loop_parallel_p): Identify reductions, add reduction_list parameter.
914 (separate_decls_in_loop_name): Support reduction variables.
915 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
916 call create_loads_for_reduction for each reduction.
917 (canonicalize_loop_ivs): Identify reductions, add reduction_list
919 (transform_to_exit_first_loop): Add reduction support, add
920 reduction_list parameter.
921 (gen_parallel_loop): Add reduction_list parameter. Add call
922 separate_decls_in_loop with
923 the new argument. Traverse reductions and call
924 initialize_reductions, create_call_for_reduction.
925 (parallelize_loops): Create and delete the reduction list.
926 (add_field_for_name): Change use of data parameter. Add fields for
928 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
929 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
930 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
931 * tree-inline.c (estimate_num_insns_1): add cases for
932 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
933 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
934 * tree-ssa-operands.c (get_addr_dereference_operands):
935 New function. Subroutine of get_indirect_ref_operands.
936 (get_indirect_ref_operands): Call get_addr_dereference_operands.
937 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
940 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
942 * config/cris/cris.c: Include df.h.
943 (cris_address_cost): Add gcc_assert for canonicalization
944 assumptions. For PLUS with MULT or register, correct
945 test for register in other arm. Tweak comments.
947 2007-10-28 Richard Guenther <rguenther@suse.de>
949 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
950 telling if the var is to be treated as points-to location.
951 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
952 (add_virtual_operand): Only recurse into MPTs if aliases
955 2007-10-28 Richard Guenther <rguenther@suse.de>
957 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
958 (add_vars_for_bitmap): Do not recurse further. Only add vars
960 (add_virtual_operand): Re-instantiate loop to add operands for
961 aliases. Recurse into MPTs.
962 (get_indirect_ref_operands): If we fall back to use a pointers
963 SMT, make sure to not prune based on the access offset and size.
965 2007-10-28 Andrew Pinski <pinskia@gmail.com>
968 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
969 the eh information on the statement.
971 2007-10-28 Richard Guenther <rguenther@suse.de>
973 * tree-flow.h (subvar_t): Make it a VEC.
974 (struct subvar): Remove.
975 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
976 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
978 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
979 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
980 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
981 (set_initial_properties): Likewise.
982 (setup_pointers_and_addressables): Likewise.
983 (new_type_alias): Likewise.
984 (create_overlap_variables_for): Likewise.
985 * tree-dfa.c (dump_subvars_for): Likewise.
986 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
987 (get_expr_operands): Likewise.
988 (add_to_addressable_set): Likewise.
989 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
991 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
993 PR tree-optimization/33920
994 * tree-if-conv.c (tree_if_conversion): Force predicate of single
995 successor bb to true when predecessor bb has NULL predicate.
996 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
998 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
1000 * config/mips/mips.md: Add combiner patterns for DImode extensions
1001 of HImode and QImode truncations. Reformat HImode <- QImode pattern
1004 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
1007 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
1009 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
1011 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
1012 LIBCALL notes if they are about to be moved to the same insn.
1014 2007-10-27 Richard Guenther <rguenther@suse.de>
1016 PR tree-optimization/33870
1017 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
1018 duplication. Remove redundant call to access_can_touch_variable.
1019 (add_vars_for_bitmap): New helper for recursing over MPT contents.
1020 (add_virtual_operand): Use it.
1022 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1025 * pa.h (ASM_PN_FORMAT): Delete define.
1027 2007-10-26 Janis Johnson <janis187@us.ibm.com>
1029 * doc/invoke.texi (Option Summary, optimizations): Remove
1030 -fbounds-check. Add -fassociative-math, -freciprocal-math,
1031 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
1032 -fsplit-wide-types to match later entry. Break up a long line.
1033 (Option Summary, code gen options) Add -fno-stack-limit. Add
1034 missing @gol to the end of a line.
1035 (Optimization Options): Remove -fbounds-check, which is also
1036 documented under Code Generation Options. Remove =n from
1037 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
1038 to -fcprop-registers to match other options, and say when it is
1039 enabled rather than disabled. Remove extra index entry for
1040 -fno-cx-limited-range. Add index entries for -fstack-protector
1041 and -fstack-protector-all.
1042 (Code Gen Options): Add index entry for -ftls-model.
1044 2007-10-26 Anatoly Sokolov <aesok@post.ru>
1046 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
1047 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
1048 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
1049 expand_epilogue, output_movhi): Don't handle 'main' function.
1050 (avr_attribute_table): Add 'OS_task' function attribute.
1051 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
1053 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
1054 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
1056 * config/avr/avr.opt (minit-stack): Remove.
1058 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
1060 * tree-nested.c (get_trampoline_type): Fix thinko.
1062 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
1065 * tree.c (build_offset_type): Build canonical type based on the
1066 TYPE_MAIN_VARIANT of the base type.
1068 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
1070 * reorg.c (emit_delay_sequence): Move insn locator from the
1071 first insn to the sequence.
1073 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
1075 * ipa-pure-const.c (check_decl): Return immediately when
1076 pure_const_state has been set to IPA_NEITHER.
1078 2007-10-25 Ira Rosen <irar@il.ibm.com>
1080 PR tree-optimization/33833
1081 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
1082 and convert init to sizetype in inner_base construction.
1084 2007-10-25 Richard Guenther <rguenther@suse.de>
1086 * tree-flow.h (mem_sym_stats): Remove.
1087 (dump_mem_sym_stats_for_var): Declare.
1088 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
1089 (mem_sym_stats): Move ...
1090 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
1091 (mem_sym_score): Rename from ...
1092 (pscore): ... this. Remove.
1093 (dump_mem_sym_stats_for_var): New function. Dump the score, but
1094 not the frequencies.
1095 (compare_mp_info_entries): Make sort stable by disambiguating
1098 2007-10-25 Ira Rosen <irar@il.ibm.com>
1100 PR tree-optimization/33866
1101 * tree-vect-transform.c (vectorizable_store): Check operands of all
1102 the stmts in the group of strided accesses. Get def stmt type for each
1103 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
1105 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
1107 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
1108 (Yt): Rename register constraint to Y2.
1109 * config/i386/sse.md: Use renamed register constraints.
1110 * config/i386/mmx.md: Ditto.
1111 * config/i386/i386.md: Ditto.
1113 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
1115 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
1117 2007-10-24 Chao-ying Fu <fu@mips.com>
1119 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
1120 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
1122 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
1123 Olga Golovanevsky <olga@il.ibm.com>
1125 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
1126 the compiler that wr.wrap and wr.domain are initialized in
1129 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
1131 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
1132 to print gcov_type values.
1134 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
1136 * config/avr/avr.h: Do not include progmem_section definition when
1137 building with IN_TARGET_LIBS.
1139 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
1142 * config/mips/mips.c (mips_lo_sum_offset): New structure.
1143 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
1144 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
1145 (mips_orphaned_high_part_p: New functions.
1146 (mips_avoid_hazard): Don't check INSN_P here.
1147 (mips_avoid_hazards): Rename to...
1148 (mips_reorg_process_insns): ...this. Cope with
1149 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
1150 or turn them into nops.
1151 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
1152 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
1153 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
1154 (mips_override_options): Set flag_delayed_branch to 0.
1156 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
1158 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
1159 MIPS-specific implementation details.
1160 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
1161 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
1162 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
1163 for targets with movmemsi.
1164 (MOVE_BY_PIECES_P): Define.
1165 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
1166 (mips_block_move_loop): Add a bytes_per_iter argument.
1167 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
1168 Update call to mips_block_move_loop.
1170 2007-10-24 Michael Matz <matz@suse.de>
1173 * var-tracking.c (variable_union): Don't break after one loop
1174 iteration but only when a difference is found.
1175 (dump_variable): Also print DECL_UID.
1177 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
1179 * ipa-type-escape.h: Expose function
1180 is_array_access_through_pointer_and_index.
1182 (is_array_access_through_pointer_and_index):
1183 Add three new parameters. Add support of
1184 POINTER_PLUS_EXPR tree code.
1186 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
1188 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
1189 * tree-pass.h: Add pass_ipa_struct_reorg.
1190 * common.opt: Add ipa-struct-reorg flag.
1191 * Makefile.in: Add ipa-strcut-reorg.o compilation.
1192 * passes.c: Add pass pass_ipa_struct_reorg.
1193 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
1194 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
1196 2007-10-24 Ira Rosen <irar@il.ibm.com>
1198 PR tree-optimization/33804
1199 * tree-vect-transform.c (vectorizable_operation): Remove the
1200 checks that the vectorization is worthwhile from the transformation
1203 2007-10-24 Ira Rosen <irar@il.ibm.com>
1205 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
1206 vectype cannot be determined for the scalar type.
1207 (vect_analyze_slp_instance): Likewise.
1208 * tree-vect-transform.c (vect_model_reduction_cost): Change the
1209 return type to bool. Return false if vectype cannot be determined
1210 for the scalar type.
1211 (vect_get_constant_vectors): Return false if vectype cannot be
1212 determined for the scalar type.
1213 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
1214 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
1215 vectorizable_reduction): Likewise.
1217 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
1219 * config.gcc: For a FreeBSD target, parse the value of ${target}
1220 to determine the value of FBSD_MAJOR, instead of adding an
1221 explicit check for every possible FreeBSD major version.
1223 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
1225 PR rtl-optimization/33846
1226 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
1228 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
1230 PR tree-optimization/33860
1231 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
1232 interleaved accesses in case the dr is inside the inner-loop during
1233 outer-loop vectorization.
1235 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
1237 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
1238 Document MEM_POINTER. Replace mentions of "integrated"
1239 field with "return_val". Delete outdated stuff.
1241 2007-10-23 David Edelsohn <edelsohn@gnu.org>
1243 * config/rs6000/rs6000.c (rs6000_override_options): Set
1244 rs6000_altivec_abi on AIX.
1245 (conditional_register_usage): Set VR20:31 fixed on AIX.
1247 2007-10-23 Richard Guenther <rguenther@suse.de>
1249 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
1252 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
1253 David S. Miller <davem@davemloft.net>
1255 * df-scan.c (df_get_call_refs): Mark global registers as both a
1256 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
1258 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
1260 PR tree-optimization/33834
1261 PR tree-optimization/33835
1262 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
1263 stmts need to be checked for success seperately.
1264 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
1265 Remove the check that stmt is not LIVE.
1266 (vectorizable_assignment, vectorizable_induction): Likewise.
1267 (vectorizable_operation, vectorizable_type_demotion): Likewise.
1268 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
1270 (vectorizable_live_operation): Check that op is not NULL.
1272 2007-10-22 Janis Johnson <janis187@us.ibm.com>
1274 * doc/invoke.texi (Optimization Options): In the summary, show
1275 that the value for options -falign-jumps, -falign-labels,
1276 -falign-loops, -falign-functions, -fsched-stalled-insns, and
1277 -fsched-stalled-insns-dep is optional. In the summary, show that
1278 -fsched-stalled-insns takes an optional argument and that
1279 -fparallelize-loops takes an argument. Add opindex for several
1280 optimization options, and fix typos in the opindex commands for
1281 several others. In the descriptions for -fsched-stalled-insns
1282 and -fsched-stalled-insns-dep, show the options with and without
1285 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
1287 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
1289 * config/avr/avr.h (LINK_SPEC): Likewise.
1290 (CRT_BINUTILS_SPECS): Likewsie.
1291 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1293 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1295 PR rtl-optimization/33644
1296 * cfgcleanup.c: Do not include dce.h.
1297 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
1298 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
1299 * dce.c (something_changed): Delete.
1300 (libcall_dead_p): New predicate.
1301 (delete_unmarked_insns): Use it to delete dead libcalls.
1302 Deal with REG_LIBCALL and REG_RETVAL notes.
1303 (prescan_libcall_for_dce): New function.
1304 (prescan_insns_for_dce): Use it to deal with libcalls.
1305 (mark_reg_dependencies): Do nothing special for libcalls.
1306 (dce_process_block): Likewise.
1307 (fast_dce): Delete unused local variable.
1308 (run_fast_dce): Do not return a value.
1309 * dce.h (struct df): Delete.
1310 (run_fast_dce): Adjust prototype.
1311 * optabs.c (libcall_id): Delete.
1312 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
1313 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
1314 * reload1.c (reload): Delete REG_LIBCALL_ID case.
1315 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
1316 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
1317 notes instead of REG_LIBCALL_ID notes.
1318 * reg-notes.def (LIBCALL_ID): Delete.
1319 * Makefile.in (see.o): Add dce.h dependency.
1320 (cfgcleanup.o): Remove dce.h dependency.
1322 2007-10-22 Michael Matz <matz@suse.de>
1324 PR tree-optimization/33855
1325 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
1328 2007-10-22 Ira Rosen <irar@il.ibm.com>
1330 PR tree-optimization/33854
1331 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
1332 FLOAT_EXPR to the list of promotion operations.
1334 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
1338 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
1339 (print_reg): Print register prefix only with AT&T asm syntax.
1340 Support pc_rtx for RIP register.
1341 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
1342 relative addressing. Always print segment register prefix with AT&T
1343 asm syntax and never with Intel asm syntax.
1344 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
1345 Fix prefix for 16-byte XFmode operands.
1346 (output_addr_const_extra): Support Intel asm syntax.
1347 (x86_file_start): Don't use register prefix with Intel asm syntax.
1348 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
1349 ("return_internal_long"): Fix Intel asm syntax output.
1350 ("set_got_rex64"): Support Intel asm syntax.
1351 ("set_rip_rex64"): Likewise.
1352 ("set_got_offset_rex64"): Likewise.
1353 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
1355 ("*tls_global_dynamic_64"): Likewise.
1356 ("*tls_local_dynamic_base_64"): Likewise.
1357 ("*load_tp_si")("*load_tp_di"): Likewise.
1358 ("*add_tp_si")("*add_tp_di"): Likewise.
1359 ("*tls_dynamic_lea_64"): Likewise.
1360 ("*sibcall_value_1_rex64_v"): Likewise.
1361 ("stack_tls_protect_set_si"): Likewise.
1362 ("stack_tls_protect_set_di"): Likewise.
1363 ("stack_tls_protect_test_si"): Likewise.
1364 ("stack_tls_protect_test_di"): Likewise.
1365 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
1367 ("*movv2sf_internal_rex64"): Likewise.
1368 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
1369 (__get_cpuid_max): Likewise.
1371 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1373 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
1374 the STRICT_P argument type "bool" rather than "int".
1375 (mips_legitimate_address_p): Likewise.
1376 (fp_register_operand, lo_operand): Delete.
1377 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1378 (mips_emit_scc): Rename to...
1379 (mips_expand_scc): ...this.
1380 (gen_conditional_branch): Rename to...
1381 (mips_expand_conditional_branch): ...this.
1382 (gen_conditional_move): Rename to...
1383 (mips_expand_conditional_move): ...this.
1384 (mips_gen_conditional_trap): Rename to...
1385 (mips_expand_conditional_trap): ...this and take an rtx code instead
1386 of an operands array.
1387 (mips_expand_call): Give the SIBCALL_P argument type "bool"
1389 (mips_emit_fcc_reload): Rename to...
1390 (mips_expand_fcc_reload): ...this.
1391 (init_cumulative_args): Rename to...
1392 (mips_init_cumulative_args): ...this and remove the libname argument.
1393 (function_arg_advance): Rename to...
1394 (mips_function_arg_advance): ...this.
1395 (function_arg): Rename to...
1396 (mips_function_arg): ...this and use "rtx" instead of
1398 (function_arg_boundary): Rename to...
1399 (mips_function_arg_boundary): ...this.
1400 (mips_expand_unaligned_load): Rename to...
1401 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1402 and BITPOS arguments type "HOST_WIDE_INT".
1403 (mips_expand_unaligned_store): Rename to...
1404 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1405 and BITPOS arguments type "HOST_WIDE_INT".
1406 (override_options): Rename to...
1407 (mips_override_options): ...this.
1408 (print_operand): Rename to...
1409 (mips_print_operand): ...this.
1410 (print_operand_address): Rename to...
1411 (mips_print_operand_address): ...this.
1412 (mips_output_ascii): Remove the PREFIX argument.
1413 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1415 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1416 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
1417 of "struct rtx_def *".
1418 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1420 (build_mips16_call_stub): Delete.
1421 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1422 (mips_use_ins_ext_p): Give the second and third arguments type
1423 "HOST_WIDE_INT" rather than "rtx".
1424 * config/mips/mips.h: Update after the above changes. Tweak comments
1426 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
1427 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1428 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1429 element type from "char" to "bool".
1430 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
1431 (mips_cpu_info_table): Delete.
1432 * config/mips/mips.md: Update after the above changes. Tweak some
1434 * config/mips/mips-ps-3d.md: Likewise.
1435 * config/mips/mips.c: Tweak comments and formatting.
1436 Use NULL-like macros rather than 0 in various places.
1437 (mips_section_threshold): Rename to...
1438 (mips_small_data_threshold): ...this and give it an unsigned type.
1439 (num_source_filenames): Remove explicit initialization.
1440 (sdb_label_count): Likewise.
1441 (sym_lineno): Delete.
1442 (set_noat): Make static.
1443 (mips_branch_likely): Likewise, and give it type "bool".
1444 (mips_isa_info): Rename to...
1445 (mips_isa_option_info): ...this.
1446 (mips_flag_delayed_branch): Rename to...
1447 (mips_base_delayed_branch): ...this.
1448 (mips_split_addresses): Delete.
1449 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1450 element type from "char" to "bool".
1451 (mips_regno_to_class): Add an explicit array size.
1452 (mips16_flipper): Change from type "int" to type "bool".
1453 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
1454 (mips_tls_operand_p): Rename to...
1455 (mips_tls_symbol_p): ...this.
1456 (mips_global_symbol_p): Remove redundant "const".
1457 (mips_offset_within_alignment_p): Simplify.
1458 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
1459 to STRICT_P and give it type bool.
1460 (mips_valid_base_register_p): Likewise.
1461 (mips_classify_address): Likewise.
1462 (mips_legitimate_address_p): Likewise.
1463 (mips16_unextended_reference_p): Take the offset as an
1464 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
1465 (mips_const_insns): Use IN_RANGE.
1466 (mips_force_temporary): Remove an unnecessary copy_rtx.
1467 (mips16_gp_pseudo_reg): Simplify.
1468 (mips_split_symbol): Remove an unnecessary copy_rtx.
1469 (mips_legitimize_tls_address): Only create registers if we need them.
1470 (mips_legitimize_address): Use mips_split_plus.
1471 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
1472 variable COST to NUM_OPS.
1473 (mips_legitimize_move): Use gen_lowpart.
1474 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
1475 (m16_check_op): Use IN_RANGE.
1476 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1477 (mips_split_doubleword_move): Pass booleans to mips_subword.
1478 (mips_output_move): Store the mode in a local variable.
1479 Explicitly assert that this function does not deal with
1480 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
1481 cases more consistent.
1482 (mips_relational_operand_ok_p): Rename to...
1483 (mips_int_order_operand_ok_p): ...this.
1484 (mips_canonicalize_comparison): Rename to...
1485 (mips_canonicalize_int_order_test): ...this.
1486 (mips_emit_int_relational): Rename to...
1487 (mips_emit_int_order_test): ...this. Store the mode in a local
1489 (mips_reverse_fp_cond_p): Rename to...
1490 (mips_reversed_fp_cond): ...this.
1491 (mips_emit_compare): Make the order of the statements more consistent.
1492 (mips_emit_scc): Rename to...
1493 (mips_expand_scc): ...this.
1494 (gen_conditional_branch): Rename to...
1495 (mips_expand_conditional_branch): ...this.
1496 (gen_conditional_move): Rename to...
1497 (mips_expand_conditional_move): ...this. Build the condition
1498 separately from the main pattern.
1499 (mips_gen_conditional_trap): Rename to...
1500 (mips_expand_conditional_trap): ...this and take an rtx code instead
1501 of an operands array. Simplify.
1502 (init_cumulative_args): Rename to...
1503 (mips_init_cumulative_args): ...this. Use memset rather than a
1504 copy from a zeroed static. Use prototype_p and stdarg_p.
1505 (mips_arg_info): Rename to...
1506 (mips_get_arg_info): ...this and put the INFO argument first.
1507 (function_arg): Rename to...
1508 (mips_function_arg): ...this and use "rtx" instead of
1509 "struct rtx_def *". Only split structures into chunks if
1510 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
1511 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
1512 comparison with REAL_TYPE. Rename local variable REG to REGNO
1513 and make it unsigned.
1514 (function_arg_advance): Rename to...
1515 (mips_function_arg_advance): ...this.
1516 (function_arg_boundary): Rename to...
1517 (mips_function_arg_boundary): ...this.
1518 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
1520 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
1521 comparison with REAL_TYPE.
1522 (mips_function_value): Remove the FUNC argument. Rename local
1523 variable UNSIGNEDP to UNSIGNED_P.
1524 (mips_return_in_memory): Use IN_RANGE.
1525 (mips_setup_incoming_varargs): Pass a boolean rather than an int
1526 to FUNCTION_ARG_ADVANCE.
1527 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
1528 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
1529 SIZE and RSIZE if needed.
1530 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
1532 (build_mips16_function_stub): Rename to...
1533 (mips16_build_function_stub): ...this.
1534 (build_mips16_call_stub): Rename to...
1535 (mips16_build_call_stub): ...this. Make static, and return a
1536 "bool" rather than an "int". Rename the ARG_SIZE argument to
1537 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
1538 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
1539 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
1541 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
1542 are not sibling ones.
1543 (mips_emit_fcc_reload): Rename to...
1544 (mips_expand_fcc_reload): ...this.
1545 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
1547 (mips_expand_unaligned_load): Rename to...
1548 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1549 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
1551 (mips_expand_unaligned_store): Rename to...
1552 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1553 and BITPOS arguments type "HOST_WIDE_INT".
1554 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
1555 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
1557 (mips_init_split_addresses): Replace with...
1558 (mips_split_addresses_p): ...this new function.
1559 (mips_init_relocs): Check mips_split_addresses_p () rather than
1560 mips_split_addresses. Always initialize mips_split_p with booleans.
1561 (print_operand_reloc): Rename to...
1562 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
1564 (print_operand): Rename to...
1565 (mips_print_operand): ...this.
1566 (print_operand_address): Rename to...
1567 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
1568 (mips_in_small_data_p): Simplify.
1569 (mips_output_ascii): Remove the PREFIX argument and "register"
1570 keywords. Use the STRING parameter directly and cast to
1572 (mips16e_collect_argument_save_p): Use IN_RANGE.
1573 (mips_function_has_gp_insn): Simplify.
1574 (mips_set_return_address): Use BITSET_P.
1575 (mips_restore_gp): Use a separate statement to pick the base
1577 (mips_output_function_prologue): Use a local FRAME variable.
1578 (mips_save_reg): Pass booleans to mips_subword.
1579 (mips_expand_prologue): Use a local FRAME variable. Use
1580 cprestore_size to detect when .cprestore is needed.
1581 (mips_restore_reg): Use GP_REG_FIRST.
1582 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1583 rather than "int". Use local FRAME and REGNO variables.
1584 (mips_can_use_return_insn): Return a "bool" rather than an "int".
1585 (mips_secondary_reload_class): Give the IN_P argument type "bool"
1587 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
1588 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1589 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
1590 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
1591 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
1592 (builtin_description): Rename to...
1593 (mips_builtin_description): ...this.
1594 (mips_bdesc): Rename to...
1595 (mips_ps_bdesc): ...this.
1596 (sb1_bdesc): Rename to...
1597 (mips_sb1_bdesc): ...this.
1598 (dsp_bdesc): Rename to...
1599 (mips_dsp_bdesc): ...this.
1600 (dsp_32only_bdesc): Rename to...
1601 (mips_dsp_32only_bdesc): ...this.
1602 (bdesc_map): Rename to...
1603 (mips_bdesc_map): ...this.
1604 (bdesc_arrays): Rename to...
1605 (mips_bdesc_arrays): ...this.
1606 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
1607 Tweak error message.
1608 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
1609 Rename local variables I and J to OPNO and ARGNO respectively.
1610 Assert that the number of arguments is no more than the number of
1612 (mips_expand_builtin_compare): Use an array of arguments rather
1613 than an array of operands. Assert that the number of operands is
1615 (add_constant): Rename to...
1616 (mips16_add_constant): ...this. Use XNEW.
1617 (dump_constants_1): Rename to...
1618 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
1619 (dump_constants): Rename to...
1620 (mips16_emit_constants): ...this.
1621 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
1622 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
1623 Assign mips16_p to was_mips16_p.
1624 (mips_parse_cpu): Tweak warning message.
1625 (override_options): Rename to...
1626 (mips_override_options): ...this. Move the mips_cost initialization
1627 out of the "shared with GAS" block. Quote option names in error
1629 (mips_conditional_register_usage): Make local variable REGNO unsigned.
1630 (mips_order_regs_for_local_alloc): Remove register keyword.
1632 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1634 * system.h (IN_RANGE): Cast each argument individually.
1636 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1638 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
1639 MIPS16 code unless using o32 or o64.
1641 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1643 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
1644 for modes smaller than 4 bytes.
1645 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
1648 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1650 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
1651 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
1652 (ASM_OUTPUT_ALIGNED_BSS): Delete.
1653 * config/mips/mips.c (mips_output_aligned_bss): Delete.
1655 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1657 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
1658 sibling calls to "mips16" functions if the function satisfies
1659 const_call_insn_operand.
1661 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1663 * config/mips/mips.c (mips_va_start): Fix types in calls
1666 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1668 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
1671 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1673 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
1674 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
1675 instead of checking mips_isa.
1677 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
1679 * doc/invoke.texi (-mpaired-single): Don't say that the option
1680 requires 64-bit code.
1681 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
1682 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
1683 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
1684 V2SF if ISA_MIPS32R2.
1685 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
1686 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
1687 to ISA_HAS_NMADD_NMSUB.
1688 (mips_split_doubleword_move): Handle V2SF.
1689 (mips_modes_tieable_p): New function.
1690 (override_options): Report a warning rather than an error when
1691 -mpaired-single is used on ISAs that don't support it; use
1692 ISA_HAS_PAIRED_SINGLE to check that case.
1693 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
1694 and DF move splitters with a single MOVE64 splitter, thereby adding
1695 a V2SF splitter too.
1696 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
1697 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
1698 (HALFMODE): Add V2SF.
1699 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
1700 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
1701 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
1702 (movv2sf_hardfloat_32bit): New pattern.
1703 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
1704 TARGET_DOUBLE_FLOAT conditions.
1706 2007-10-20 Jakub Jelinek <jakub@redhat.com>
1708 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
1709 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
1710 64-bit register in 64-bit libgcc.
1712 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
1714 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
1715 * config/avr/avr.h (LINK_SPEC): Likewise.
1716 (CRT_BINUTILS_SPECS): Likewsie.
1717 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1719 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1721 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
1722 and -Wfatal-errors together.
1724 2007-10-20 Alan Modra <amodra@bigpond.net.au>
1727 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
1728 change for vrsave, ie restore after frame pop.
1730 2007-10-19 David S. Miller <davem@davemloft.net>
1732 * config/sparc/niagara2.md: Fix copyright notice.
1734 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
1736 PR tree-optimization/23820
1737 PR tree-optimization/24309
1738 PR tree-optimization/33766
1739 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
1740 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
1741 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
1742 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
1743 * tree-loop-linear.c (perfect_loop_nest_depth): New.
1744 (linear_transform_loops): Use perfect_loop_nest_depth.
1745 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
1746 should have a single condition: their exit.
1748 2007-10-19 Richard Guenther <rguenther@suse.de>
1752 * stor-layout.c (layout_type): Assert that aggregates do not
1753 have their alias sets set.
1754 * alias.c (get_alias_set): Return alias set zero for incomplete
1755 types, return the alias set of the element for incomplete array
1756 types, but do not remember these.
1758 2007-10-19 Richard Guenther <rguenther@suse.de>
1761 2007-10-19 Richard Guenther <rguenther@suse.de>
1764 * tree.c (build_array_type): Do not re-layout unbound array
1767 2007-10-19 Richard Guenther <rguenther@suse.de>
1770 * tree.c (build_array_type): Do not re-layout unbound array
1773 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1775 * config/mips/mips.c (mips_canonicalize_comparison): Check
1776 mips_relational_operand_ok_p before trying to rewrite the test.
1777 Only calculate PLUS_ONE if needed.
1778 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
1781 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1783 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
1786 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1788 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
1789 the call uses the incoming value of $2.
1791 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1793 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
1794 rather then gen_rtx_MEM.
1795 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
1797 (mips_set_return_address): Likewise.
1798 (mips_restore_gp): Likewise.
1800 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1802 * config/mips/mips.c (gpr_mode): Delete.
1803 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
1804 instead of gpr_mode.
1805 (mips_for_each_saved_reg): Likewise.
1806 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1807 (override_options): Don't initialize gpr_mode.
1808 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
1810 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1812 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
1814 (mips_class_max_nregs): Calculate the smallest consituent register
1815 size and use that to determine an upper bound on the number of
1818 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1820 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
1822 (mips_expand_epilogue): ...here.
1823 (mips_mdebug_abi_name): New function, split out from...
1824 (mips_file_start): ...here.
1825 (mips_hard_regno_mode_ok_p): New function, split out from...
1826 (override_options): ...here.
1827 (mips_expand_builtin_1): New function, split out from...
1828 (mips_expand_buitin): ...here. Abort if we don't recognize
1831 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1833 * config/mips/mips.c (build_mips16_function_stub): Load the
1834 target address into $1 before transfering the arguments.
1835 Don't use ".set noreorder".
1836 (build_mips16_call_stub): Likewise.
1838 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1840 * config/mips/mips.c (mips_output_32bit_xfer): New function.
1841 (mips_output_64bit_xfer): Likewise.
1842 (mips16_fp_args): Rename to...
1843 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
1844 with a DIRECTION argument. Use mips_output_32bit_xfer and
1845 mips_output_64bit_xfer.
1846 (build_mips16_function_stub): Update accordingly.
1847 (mips16_fpret_double): Delete.
1848 (build_mips16_call_stub): Update after above changes.
1849 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
1850 of mips16_fpret_double. Use GP_REG_RETURN.
1852 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
1854 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
1855 use asm_out_file instead.
1856 (build_mips16_function_stub): Likewise.
1857 (build_mips16_call_stub, mips_output_function_prologue): Update
1860 2007-10-18 David S. Miller <davem@davemloft.net>
1862 Add Niagara-2 support.
1863 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
1864 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
1865 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
1866 (include): Add inclusion of niagara2.md
1867 * config/sparc/sparc.c (niagara2_costs): New.
1868 (sparc_override_options): Add niagara2 entry to cpu_default[]
1869 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
1870 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
1871 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
1872 (sparc_initialize_trampoline): Handle niagara2 like niagara.
1873 (sparc64_initialize_trampoline): Likewise.
1874 (sparc_use_sched_lookahead): Likewise.
1875 (sparc_issue_rate): Likewise.
1876 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
1878 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
1879 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
1880 TARGET_CPU_niagara2.
1881 (PROCESSOR_NIAGARA2): New.
1882 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
1883 (BRANCH_COST): Likewise.
1884 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
1885 * config/sparc/sol2.h: Likewise.
1886 * config/sparc/niagara2.md: New file.
1888 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1890 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
1892 (mips_compute_frame_info): Remove associated code.
1893 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
1895 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1897 * config/mips/mips-protos.h (compute_frame_size): Delete.
1898 * config/mips/mips.h: Update comments.
1899 * config/mips/mips.c (mips_frame_info): Remove initialized.
1900 (compute_frame_size): Rename to...
1901 (mips_compute_frame_info): ...this and make static. Remove the
1902 SIZE argument and return no value. Remove the setting of initialized.
1903 Update rest of file accordingly.
1904 (mips_set_return_address): Don't call compute_frame_size.
1905 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
1906 Don't call compute_frame_size.
1908 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1910 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
1911 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
1912 mips_hard_frame_pointer_required.
1913 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
1914 large MIPS16 frames.
1915 * config/mips/mips.c (mips_frame_pointer_required): New function.
1917 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1919 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
1920 and hard_frame_pointer_offset.
1921 (mips_debugger_offset): Use hard_frame_pointer_offset.
1922 (mips16e_collect_argument_save_p): Likewise.
1923 (compute_frame_size): Initialize arg_pointer_offset and
1924 hard_frame_pointer_offset.
1925 (mips_initial_elimination_offset): Use them.
1926 (mips_output_function_prologue): Use hard_frame_pointer_offset.
1927 (mips_expand_prologue, mips_expand_epilogue): Likewise.
1929 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1931 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
1933 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
1934 "unsigned int" rather than "int" and put them with the other
1935 register-related fields. Put expanded comments above fields
1936 rather than to their right.
1937 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
1938 with a NUM_REGS_PTR argument.
1939 (mips16e_save_restore_pattern_p): Update accordingly.
1940 (compute_frame_size): Clarify frame diagram. Rewrite.
1942 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1944 * config/mips/mips-ftypes.def: New file.
1945 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
1946 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
1947 (mips_function_type): Redefine using mips-ftypes.def.
1948 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
1949 (mips_builtin_vector_type): New function.
1950 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
1951 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
1952 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
1953 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
1955 (mips_build_function_type): New function.
1956 (mips_init_builtins): Use it to create types lazily.
1958 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1960 * config/mips/mips.h (set_volatile): Delete.
1961 * config/mips/mips.c (set_volatile): Delete.
1962 (mips_print_operand_punctuation): New function, split out from
1963 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
1964 Use the same character ordering in the code and the comments.
1965 Use a recursive call to handle '*'. Abort on unknown characters.
1966 (mips_init_print_operand_punct): New function, split out from
1968 (mips_print_int_branch_condition): New function, split out from
1969 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
1970 to report unexpected codes.
1971 (mips_print_float_branch_condition): New function, split out from
1972 print_operand. Use output_operand_lossage to report unexpected codes.
1973 (print_operand): Rework to use a case statement. Use the
1974 same letter ordering in the code and the comments. Use
1975 output_operand_lossage to report unexpected codes and
1976 reverse_condition to handle inverted branch conditions.
1977 (override_options): Use mips_init_print_operand_punct.
1979 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1981 * config/mips/mips.h: Move variable declarations to end of file and
1982 enclose them all in #ifndef USED_FOR_TARGET.
1983 * config/mips/mips.c: Reorder functions into more logical groups,
1984 and so that callees appear before callers. Put the targetm
1985 initializer at the end of the file. Remove forward static
1986 declarations where possible.
1987 (mips_init_builtins): Add "static" to definition.
1988 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
1990 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
1992 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
1993 (TARGET_MAX_ANCHOR_OFFSET): Delete.
1994 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
1995 (mips_set_mips16_mode): Initialize min_anchor_offset and
1996 max_anchor_offset directly to constants.
1998 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2000 * config/mips/mips.c: Delete trailing whitespace.
2002 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
2004 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
2005 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
2007 * config/mips/mips.md (load_call<mode>): Don't make the unspec
2008 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
2010 2007-10-18 David Daney <ddaney@avtrex.com>
2012 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
2013 reg_offset variable to calculate register locations.
2015 2007-10-18 Richard Guenther <rguenther@suse.de>
2017 * tree-ssa.c (uid_ssaname_map_eq): New function.
2018 (uid_ssaname_map_has): Likewise.
2019 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
2020 * tree-flow.h (struct gimple_df): Make default_defs a
2022 * tree-dfa.c (gimple_default_def): Deal with it.
2023 (set_default_def): Likewise.
2025 2007-10-18 Richard Guenther <rguenther@suse.de>
2027 * tree-flow.h (struct gimple_df): Make referenced_vars
2029 (uid_decl_map_eq): Declare.
2030 (uid_decl_map_hash): Likewise.
2031 * tree-ssa.c (uid_decl_map_eq): New function.
2032 (uid_decl_map_hash): Likewise.
2033 (init_tree_ssa): Make referenced_vars a uid_decl_map.
2034 * tree-flow-inline.h (first_referenced_var): Deal with
2035 the referenced_vars representation change.
2036 (next_referenced_var): Likewise.
2037 * tree-dfa.c (referenced_var_lookup): Likewise.
2038 (referenced_var_check_and_insert): Likewise.
2039 (remove_referenced_var): Likewise.
2041 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
2043 * config/mips/mips.c (mips_dwarf_register_span): New.
2044 (TARGET_DWARF_REGISTER_SPAN): Define.
2046 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
2048 * config.gcc : update score-*-elf(extra_objs).
2049 * config/score/mac.md : Remove.
2050 * config/score/misc.md : Remove.
2051 * config/score/score7.md : Remove.
2052 * config/score/score-mdaux.h : Remove.
2053 * config/score/score-mdaux.c : Remove.
2054 * config/score/score-version.h : Remove.
2055 * config/score/score-generic.md : New.
2056 * config/score/score3.h : New.
2057 * config/score/score3.c : New.
2058 * config/score/score7.h : New.
2059 * config/score/score7.c : New.
2060 * config/score/mul-div.S : add flush_cache score3 support.
2061 * config/score/elf.h : Fix some typos.
2062 * config/score/score.md : merge score3 and score7 pattern.
2063 * config/score/score.c : use to seperate which target it used.
2064 * config/score/score.h : use to seperate the target macro.
2065 * config/score/score.opt : remove -mmac option , add -mscore3,
2066 -mscore3d and -march OPTION support.
2068 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2070 * cfgexpand.c (expand_stack_vars): Add checking to make sure
2071 that the offset of a variable is not greater than the size
2074 2007-10-17 Anatoly Sokolov <aesok@post.ru>
2076 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
2077 atmega88p, atmega168p and atmega328p devices.
2078 * config/avr/avr.h (LINK_SPEC): (Ditto.).
2079 (CRT_BINUTILS_SPECS): (Ditto.).
2080 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2082 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2084 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
2086 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
2087 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
2088 (print_insn): Move declaration to ...
2089 * rtl.h (print_insn): ... here.
2091 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2093 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
2094 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
2095 m68k_sched_branch_type): Move declarations to ...
2096 * config/m68/m68k-protos.h: ... here.
2098 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
2100 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
2102 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
2104 * config/avr/avr.c (avr_mcu_types): Add attiny48.
2105 * config/avr/avr.h (LINK_SPEC): Likewise.
2106 (CRT_BINUTILS_SPECS): Likewsie.
2107 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2109 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
2111 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
2112 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
2113 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2115 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
2118 * reg-stack.c (move_for_stack_reg): Swap input argument of
2119 UNSPEC_TAN insn to the top of the stack.
2121 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
2124 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
2125 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
2126 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
2127 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
2128 immediate shift value.
2129 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
2130 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
2131 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
2132 Remove macros for !__OPTIMIZE__ case.
2134 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
2136 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
2138 (perform_var_substitution): Only DFS from real nodes. Don't test
2140 (unite_pointer_equivalences): Fix broken test.
2142 2007-10-17 Alan Modra <amodra@bigpond.net.au>
2144 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
2145 altivec sp_offset. Rearrange sp_offset assignments to
2146 correspond to stack adjustments. Use frame_reg_rtx for
2147 SPE register restores. Correct SPE stack adjustment.
2149 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2151 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
2152 * toplev.c (check_global_declaration_1): Use appropriate warning
2153 option instead of unnamed warning.
2154 * stor-layout.c (layout_decl): Likewise.
2155 * c-typeck.c (build_conditional_expr): Likewise.
2156 (build_compound_expr): Fix wrong comment.
2157 (build_binary_op): Use appropriate warning option instead of
2159 * cfgexpand.c (tree_expand_cfg): Likewise.
2160 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2161 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
2162 (execute_warn_function_return): Likewise.
2163 * stmt.c (warn_if_unused_value): Likewise.
2165 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
2167 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
2168 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
2170 (CRT_BINUTILS_SPECS): Likewsie.
2171 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2173 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
2176 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
2178 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
2180 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
2181 (fini_dce): Only release them for the fast pass.
2182 (end_ud_dce): Delete.
2183 (rest_of_handle_ud_dce): Do not modify df_in_progress.
2184 Call fini_dce instead of end_ud_dce.
2185 (rest_of_handle_fast_dce): Do not modify df_in_progress.
2186 (run_fast_df_dce): Reset df_in_progress to false on exit.
2188 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
2189 Maxim Kuvyrkov <maxim@codesourcery.com>
2191 * target.h (unspec_may_trap_p): New target hook.
2192 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
2193 * targhooks.c (default_unspec_may_trap_p): Default implementation of
2195 * targhooks.h (default_unspec_may_trap_p): Declare it.
2196 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
2197 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
2198 * rtl.h (may_trap_p_1): Declare.
2200 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
2201 override default hook implementation.
2202 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
2205 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2207 * doc/invoke.texi (Wextra): Move it just after Wall, list the
2208 options enabled by Wextra and mention Wuninitialized.
2210 2007-10-15 Nigel Stephens <nigel@mips.com>
2212 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
2214 2007-10-15 Jakub Jelinek <jakub@redhat.com>
2216 PR tree-optimization/33136
2217 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
2219 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
2221 PR tree-optimization/33735
2222 PR tree-optimization/33572
2223 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
2224 2007-10-09's change.
2225 * except.c (duplicate_eh_regions): Don't look for prev_try
2226 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
2228 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
2231 * tree-inline.c (copy_bb): Use bsi_replace to replace a
2232 __builtin_va_arg_pack-containing call stmt.
2234 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
2236 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
2239 2007-10-15 Jakub Jelinek <jakub@redhat.com>
2241 PR tree-optimization/33619
2242 * tree-ssa-ter.c (is_replaceable_p): Return false for all
2245 2007-10-15 David Edelsohn <edelsohn@gnu.org>
2247 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
2249 2007-10-15 Richard Guenther <rguenther@suse.de>
2251 * fold-const.c (extract_array_ref): Remove.
2252 (fold_comparison): Handle POINTER_PLUS_EXPR with the
2253 generic address expression comparison folding. Remove
2254 the folding that used extract_array_ref.
2256 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2259 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
2260 speculation type of insn can be changed before trying to do that.
2262 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2264 * dse.c (struct insn_info): Add 'frame_read' field.
2265 (scan_insn): For the call to a const function, set frame_read if
2266 reload has been run.
2267 If the insn reads the frame, kill the frame related stores.
2268 (scan_reads_nospill): Likewise.
2270 2007-10-14 Jason Merrill <jason@redhat.com>
2272 * tree-eh.c (optimize_double_finally): Don't assume that the
2273 cleanup we're duplicating is only one statement.
2275 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
2277 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
2278 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
2279 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
2280 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
2281 tree-vect-transform.c: Fix comment typos.
2282 * doc/extend.texi: Fix a typo.
2284 * c-common.h: Remove the prototype for c_expand_body.
2285 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
2286 * tree.h: Remove the prototype for fold_build_call_expr.
2288 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
2290 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
2292 2007-10-13 David Edelsohn <edelsohn@gnu.org>
2294 * config/rs6000/aix53.h: New file.
2295 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
2296 (TARGET_ALTIVEC_ABI): Same.
2297 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
2298 (TARGET_ALTIVEC_ABI): Delete.
2299 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
2300 stanza defaulting to aix5.3.
2302 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2304 * config/i386/i386.md (SI_REG, DI_REG): New constants.
2305 (strmov): Use defined constants.
2306 (cmpstrnsi): Likewise.
2307 * config/i386/i386.c (decide_alg): Use defined constants.
2308 (ix86_expand_strlen): Likewise.
2310 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
2312 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
2313 * var-tracking.c (micro_operation_def): Update comment on u.loc.
2314 (mode_for_reg_attrs, var_lowpart): New functions.
2315 (add_uses): Consider recording a lowpart of LOC for MO_USE.
2316 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
2317 or copy is known, set LOC to the SET that performs the set, instead
2319 (find_src_status, find_src_set_src): Remove LOC parameter.
2320 Replace INSN with the source value.
2321 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
2322 handling MO_SET and MO_COPY. Update the calls to find_src_status
2323 and find_src_set_src.
2325 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
2328 * config/i386/i386.md (strmov): Check for esi and edi usage.
2329 * config/i386/i386.c (decide_alg): Check whether we can use a
2330 rep prefix and adjust algorithm choice accordingly.
2331 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
2333 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2335 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
2337 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
2339 * global.c (build_insn_chain): Formatting fixes.
2341 2007-10-12 Richard Guenther <rguenther@suse.de>
2343 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
2344 combining both operands require either both have single uses
2345 or combining to a constant.
2347 2007-10-12 Richard Guenther <rguenther@suse.de>
2350 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
2351 a rhs with side-effects or which is a load.
2352 (forward_propagate_into_cond): Also try combining both operands.
2354 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
2356 PR tree-optimization/33742
2357 * tree-vect-transform.c (vectorizable_operation): Return false
2358 if get_vectype_for_scalar_type for scalar_dest can't be determined.
2359 (vectorizable_call): Same for rhs_type and lhs_type.
2361 2007-10-12 Jakub Jelinek <jakub@redhat.com>
2363 PR tree-optimization/33645
2364 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
2365 pass it to walk_tree.
2366 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
2367 When calling set_is_used on a VAR_DECL, if data is not NULL and
2368 its DECL_UID is in the bitmap, call mark_all_vars_used on its
2369 DECL_INITIAL after clearing the bit in bitmap.
2370 (remove_unused_locals): Adjust mark_all_vars_used callers.
2371 Instead of removing unused global vars from unexpanded_var_list
2372 immediately record them in bitmap, call mark_all_vars_used on
2373 all used global vars from unexpanded_var_list and only purge
2374 global vars that weren't found used even during that step.
2376 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2378 * gthr-posix.h (__gthread_active_init): Create detached instead of
2379 joinable thread when testing whether threads are active on hppa-hpux.
2380 * gthr-posix95.h (__gthread_active_init): Likewise.
2382 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2385 * global.c (build_insn_chain): Include insn that occur between
2388 2007-10-11 Tom Tromey <tromey@redhat.com>
2390 * gengtype-yacc.y: Delete.
2392 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
2394 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
2395 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
2396 function_value_32, function_value_64, function_value_ms_64,
2397 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
2398 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
2401 2007-10-11 Richard Guenther <rguenther@suse.de>
2403 * gcse.c (hash_scan_set): If the next nonnote insn is in
2404 a different basic block insert the set.
2406 2007-10-11 Richard Guenther <rguenther@suse.de>
2409 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
2410 (verify_gimple_expr): Use it to verify pointer-to types for
2413 2007-10-11 Richard Guenther <rguenther@suse.de>
2416 * c-typeck.c (build_array_ref): Do not strip qualifiers from
2417 the array element type.
2419 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2421 PR rtl-optimization/33638
2422 * dse.c (struct insn_info): Remove 'stack_read' field,
2423 add 'stack_pointer_based' field.
2424 (record_store): For a store with non-constant base, record
2425 whether it is stack pointer based.
2426 (scan_insn): For the call to a const function, remove stack
2427 pointer based stores from the list of local active stores.
2428 (scan_reads_nospill): Delete code dealing with const functions.
2430 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
2432 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
2434 (conflict_p, set_conflict, set_conflicts): Likewise.
2435 * global.c (global_alloc): Likewise.
2436 * ra.h: Update prototypes.
2438 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
2440 * opth-gen.awk: Fixed generation of comment stating the origin
2443 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
2446 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2447 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2448 and '%}', respectively.
2451 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2452 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2453 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2455 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2459 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2460 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2461 syntax for ASSEMBLER_DIALECT.
2462 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2464 2007-10-10 Revital Eres <eres@il.ibm.com>
2466 * modulo-sched.c (check_nodes_order): Dump the final order of
2468 (get_sched_window): Add dump info.
2469 (calculate_order_params): Dump order params of the nodes.
2471 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2474 * ra-conflict.c (record_one_conflict_between_regnos,
2475 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
2476 (global_conflicts): Enhanced incorrect check.
2478 2007-10-09 Geoffrey Keating <geoffk@apple.com>
2480 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
2481 if flag_exceptions is not set.
2482 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
2483 assemble_name rather than incorrectly emulating it.
2485 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
2486 friends are removed from G++.
2488 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2490 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
2491 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
2492 enabling them is redundant. Don't check two times for
2495 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
2497 * ra-conflict.c (record_one_conflict_between_regnos): Revert
2499 (set_conflicts_for_earlyclobber): Likewise.
2500 (global_conflicts): Likewise.
2502 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2504 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2505 and '%}', respectively.
2507 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
2509 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2510 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2512 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2515 2007-10-09 Richard Guenther <rguenther@suse.de>
2518 * gimplify.c (canonicalize_component_ref): Honor qualifiers
2519 of referenced structure and component.
2521 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2524 * ra-conflict.c (record_one_conflict_between_regnos,
2525 set_conflicts_for_earlyclobber, global_conflicts): Improved
2527 (global_conflicts): Removed incorrect check.
2529 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
2531 PR tree-optimization/33615
2532 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
2533 if the statement might throw. Fix formatting.
2535 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
2537 PR tree-optimization/33615
2538 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
2539 if the rhs might throw.
2541 2007-10-09 Jan Hubicka <jh@suse.cz>
2543 * invoke.texi (align-threshold, align-loop-iterations): Document.
2544 * final.c: Include cfgloop.h, params.h
2545 (compute_alignments): Dump decisions and compare them with loop
2546 structure; honor given parameters.
2547 (pass_compute_alignments): New dump file.
2548 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
2549 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
2551 2007-10-09 James E. Wilson <wilson@specifix.com>
2553 PR tree-optimization/33655
2555 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
2556 convert it to bitsizetype before size_binop call.
2558 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2560 PR tree-optimization/33572
2561 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
2562 the absence of a corresponding edge from the exit block.
2564 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
2567 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
2569 (sra_build_assignment): Likewise. Set up mask depending on
2570 precision, not type.
2571 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
2572 computing bit masks.
2573 (sra_build_elt_assignment): Don't view-convert from signed to
2575 (sra_explode_bitfield_assignment): Use bit-field type if
2576 possible. Use BYTES_BIG_ENDIAN.
2578 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
2581 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
2582 the original stmt can throw.
2583 (sra_build_bf_assignment): Fix type mismatch when applying negated
2586 2007-10-08 Geoffrey Keating <geoffk@apple.com>
2588 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
2589 '#pragma mark' to be executed at preprocessing time.
2591 2007-10-08 Ollie Wild <aaw@google.com>
2593 * varasm.c (compare_constant): Removed call to
2594 lang_hooks.expand_constant.
2595 (copy_constants): Removed call to lang_hooks.expand_constant.
2596 (compute_reloc_for_constant): Removed call to
2597 lang_hooks.expand_constant.
2598 (output_addressed_constants): Removed call to
2599 lang_hooks.expand_constant.
2600 (constructor_static_from_elts_p): Removed call to
2601 lang_hooks.expand_constant.
2602 (output_constant): Removed calls to lang_hooks.expand_constant.
2603 * langhooks.h (struct lang_hooks): Removed field expand_constant.
2604 * langhooks-def.h (lhd_return_tree): Removed.
2605 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2606 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2607 * langhooks.c (lhd_return_tree): Removed.
2609 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
2611 * combine.c (setup_incoming_promotions): Ensure that
2612 arguments that have not undergone mode promotions do not
2613 incorrectly get marked as being sign- or zero-extended.
2615 2007-10-08 Richard Guenther <rguenther@suse.de>
2620 * fold-const.c (fold_binary): Use correct types in folding
2621 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
2622 and building of RROTATE_EXPR.
2624 2007-10-08 Richard Guenther <rguenther@suse.de>
2629 * fold-const.c (fold_binary): Use the correct types when
2630 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
2631 (fold_binary): Use the correct types when folding
2632 (-A) - B to (-B) - A.
2633 (fold_unary): Use the correct types when folding ~(X).
2635 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2637 * doc/invoke.texi (Wall): fix formatting issues.
2639 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
2641 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
2642 truncated shift counts.
2644 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
2646 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2647 syntax for ASSEMBLER_DIALECT.
2648 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2650 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2651 Nathan Froyd <froydnj@codesourcery.com>
2653 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
2654 when determining whether to record INCOMING_RETURN_ADDR_RTX.
2656 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
2659 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
2661 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
2662 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
2663 the function, temporarily point the debug interface to the null one.
2665 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2667 PR tree-optimization/33655
2669 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
2672 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
2674 PR tree-optimization/33572
2675 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
2676 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
2677 (update_ssa_across_abnormal_edges): ... this. Set slots in the
2679 (copy_edges_for_bb): Handle nonlocal label edges.
2680 (make_nonlocal_label_edges): Deleted.
2681 (optimize_inline_calls): Don't call it.
2683 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
2685 * gthr-single.h: Revert last change.
2687 2007-10-05 Michael Matz <matz@suse.de>
2690 * lower-subreg.c (decompose_multiword_subregs): Use
2691 validate_unshare_change().
2693 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
2695 * ra-conflict.c: Include "sparseset.h".
2696 (conflicts): Change to HOST_WIDEST_FAST_INT.
2697 (allocnos_live): Redefine variable as a sparseset.
2698 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
2700 (allocno_row_words): Removed global variable.
2701 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
2702 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
2703 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
2704 (record_one_conflict_between_regnos): Cache allocno values and reuse.
2706 (record_one_conflict): Update uses of allocnos_live to use
2707 the sparseset routines. Use set_conflicts_p.
2708 (mark_reg_store): Likewise.
2709 (set_reg_in_live): Likewise.
2710 (global_conflicts): Update uses of allocnos_live.
2711 Use the new adjacency list to visit an allocno's neighbors
2712 rather than iterating over all possible allocnos.
2713 Call set_conflicts_p to setup conflicts rather than adding
2715 * global.c: Comments updated.
2716 (CONFLICTP): Delete define.
2717 (regno_compare): New function. Add prototype.
2718 (global_alloc): Sort the allocno to regno mapping according to
2719 which basic blocks the regnos are referenced in. Modify the
2720 conflict bit matrix to a compressed triangular bitmatrix.
2721 Only allocate the conflict bit matrix and adjacency lists if
2722 we are actually going to allocate something.
2723 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
2724 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
2725 allocno's neighbors rather than iterating over all possible allocnos.
2726 (mirror_conflicts): Removed function.
2727 (dump_conflicts): Iterate over regnos rather than allocnos so
2728 that all dump output will be sorted by regno number.
2729 Use the FOR_EACH_CONFLICT macro.
2730 * ra.h: Comments updated.
2731 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
2732 (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
2734 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
2735 (adjacency_list_d, adjacency_iterator_d): New types.
2736 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
2737 adjacency_iter_next, regno_basic_block): New static inline functions.
2738 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
2739 (conflict_p): Add function prototype.
2740 * sparseset.h, sparseset.c: New files.
2741 * Makefile.in (OBJS-common): Add sparseset.o.
2742 (sparseset.o): New rule.
2744 2007-10-05 Richard Guenther <rguenther@suse.de>
2747 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
2750 2007-10-05 Michael Matz <matz@suse.de>
2753 * function.c (match_asm_constraints_1): Check for input
2754 being used in the outputs.
2756 2007-10-05 Richard Guenther <rguenther@suse.de>
2758 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
2760 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
2763 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
2764 subset checks. Make the cost of FPR -> FPR moves depend on
2765 mips_mode_ok_for_mov_fmt_p.
2767 2007-10-04 Doug Kwan <dougkwan@google.com>
2769 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
2770 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2771 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2772 support of conditional variables.
2773 * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
2774 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2775 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2776 support of conditional variables.
2777 * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
2778 __gthread_cond_wait_recursive): Add to extend interface for POSIX
2779 conditional variables.
2780 * gthr.h: Update comments to document new interface.
2782 2007-10-04 Geoffrey Keating <geoffk@apple.com>
2784 * cgraphunit.c (cgraph_build_static_cdtor): Don't set
2787 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2789 * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
2791 2007-10-04 Richard Guenther <rguenther@suse.de>
2794 * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
2795 does not need to be of INTEGER_TYPE.
2796 (verify_gimple_2): New function split out from ...
2797 (verify_gimple_1): ... here. ICE if there was an error during
2800 2007-10-04 Michael Matz <matz@suse.de>
2802 PR rtl-optimization/33653
2803 * dce.c (deletable_insn_p_1): Use volatile_refs_p().
2804 * dse.c (scan_insn): Same.
2806 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2808 * config.gcc: Remove USE_GAS for m68k targets.
2810 2007-10-04 Richard Guenther <rguenther@suse.de>
2812 PR tree-optimization/33627
2813 * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
2814 * tree-gimple.c (canonicalize_cond_expr_cond): New function,
2816 * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
2817 * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
2819 2007-10-04 Anatoly Sokolov <aesok@post.ru>
2821 * config/avr/avr.c (commands_in_file, commands_in_prologues,
2822 commands_in_epilogues): Remove variables.
2823 (avr_file_start): Remove unneded initializations of commands_in_file,
2824 commands_in_prologues and commands_in_epilogues variables.
2825 (avr_file_end): Remove dead code.
2827 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
2829 * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
2830 MOTOROLA is to true.
2832 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk>
2835 * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
2836 (mips_split_doubleword_move): ...this.
2837 * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
2838 use natural endianness for multi-format FPR values.
2839 (mips_split_64bit_move): Rename to...
2840 (mips_split_doubleword_move): ...this and extend to 64-bit words.
2841 Use move_doubleword_fpr* patterns for moves involving FPRs.
2842 (mips_save_reg): Update the call to mips_split_64bit_move.
2843 (mips_secondary_reload_class): Return NO_REGS for any reload of a
2844 nonzero constant into an FPR if the constant can be forced to memory.
2845 * config/mips/mips.md: Update the splitter calls to
2846 mips_split_64bit_move.
2847 (UNSPEC_LOAD_DF_LOW): Rename to...
2848 (UNSPEC_LOAD_LOW): ...this.
2849 (UNSPEC_LOAD_DF_HIGH): Rename to...
2850 (UNSPEC_LOAD_HIGH): ...this.
2851 (UNSPEC_STORE_DF_HIGH): Rename to...
2852 (UNSPEC_STORE_WORD): ...this.
2853 (SPLITF): New mode iterator.
2854 (HALFMODE): New mode attribute.
2855 (movtf): New expander.
2856 (*movtf_internal): New define_insn_and_split.
2857 (move_doubleword_fpr<mode>): New expander.
2858 (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
2860 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2861 (mfhc1<mode>): ...these more general patterns.
2863 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2865 * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
2867 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2869 * gcse.c (hash_scan_set): Insert set in insn before note at
2870 the end of basic block.
2872 2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
2874 PR tree-optimization/33576
2875 * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
2876 * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
2877 * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
2878 (remove_iv): Declared.
2879 * lambda-code.c (remove_iv): Not static.
2880 (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
2881 Don't remove ivs there, save ivs in the buffer.
2883 2007-10-03 Jason Merrill <jason@redhat.com>
2886 * tree-eh.c (same_handler_p): New fn.
2887 (optimize_double_finally): New fn.
2888 (refactor_eh_r): New fn.
2889 (refactor_eh): New fn.
2890 (pass_refactor_eh): New pass.
2891 * tree-pass.h: Declare it.
2892 * passes.c (init_optimization_passes): Add it.
2894 2007-10-03 Doug Kwan <dougkwan@google.com>
2895 Richard Guenther <rguenther@suse.de>
2898 * dwarf2out.c (reference_to_unused): Disable sanity checking,
2899 be conservative instead.
2901 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2904 * doc/invoke.texi (-fwhole-program): Document that Fortran
2905 doesn't support this option.
2907 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk>
2910 * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
2913 2007-10-02 David Daney <ddaney@avtrex.com>
2915 * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
2916 against constant zero.
2917 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero
2920 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2922 * ra-conflict.c: New file.
2924 * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
2925 usage to DF_LIVE usage.
2926 (reload): Remove reference to df_get_live_top.
2927 * rtlanal.c (subreg_nregs_with_regno): New function.
2928 * df-scan.c (df_def_record_1, df_uses_record): Add code to set
2929 DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
2930 (df_has_eh_preds): Removed.
2931 (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
2932 df_exit_block_uses_collect): Changed call from df_has_eh_preds to
2934 * global.c (allocno, max_allocno, conflicts, allocno_row_words,
2935 reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
2936 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
2937 (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
2938 mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
2939 (global_alloc): Turn off rescanning insns after call to
2940 global_conflicts and added call to set_preferences.
2941 (global_conflicts): Moved to ra-alloc.c.
2942 (set_preferences_1, set_preferences): New function.
2943 (mirror_conflicts): Changed types for various variables.
2944 (mark_elimination): Change DF_RA_LIVE
2945 usage to DF_LIVE usage.
2946 (build_insn_chain): Rewritten from scratch and made local.
2947 (print_insn_chain, print_insn_chains): New functions.
2948 (dump_conflicts): Do not print conflicts for fixed_regs.
2949 (rest_of_handle_global_alloc): Turn off insn rescanning.
2950 * hard-reg-set.h: Fixed comment.
2951 * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
2952 usage to DF_LIVE usage and delete refs to TOP sets.
2953 (block_alloc): Mark regs as live if they are in the artificial
2954 defs at top of block.
2955 (find_stack_regs): New function.
2956 (rest_of_handle_local_alloc): Changed urec problem to live
2957 problem and do not turn off df rescanning.
2958 * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
2959 DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
2960 df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
2961 (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
2962 (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
2963 fields in df_ref_flags. The rest have been renumbered.
2964 * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
2966 * rtl.h (subreg_nregs_with_regno): New function.
2967 * df-problems.c: (df_get_live_out, df_get_live_in,
2968 df_get_live_top): Removed reference to DF_RA_LIVE.
2969 (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
2970 df_live_alloc, df_live_reset, df_live_local_finalize,
2971 df_live_free): Make top set only if different from in set.
2972 (df_lr_top_dump, df_live_top_dump): Only print top set if
2973 different from in set.
2974 (df_lr_bb_local_compute): Removed unnecessary check.
2975 (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
2976 df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
2977 df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
2978 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
2979 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
2980 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
2981 df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
2982 df_urec_add_problem): Removed.
2983 (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
2985 * Makefile.in (ra-conflict.o, ra.h): New dependencies.
2986 * basic_block.h (bb_has_abnormal_pred): New function.
2987 * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
2988 usage to DF_LIVE usage.
2990 2007-10-02 Revital Eres <eres@il.ibm.com>
2992 * config/rs6000/predicates.md (easy_vector_constant): Return false
2993 for 750CL paired vectors.
2994 * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
2996 (vec_initv2sf): Add new description.
2997 (vconcatsf): Likewise.
2998 * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
2999 * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
3001 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
3003 * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
3004 sinking the last stmt in a BB.
3006 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
3009 * tree-sra.c (struct sra_elt): Add in_bitfld_block.
3010 (sra_hash_tree): Handle BIT_FIELD_REFs.
3011 (sra_elt_hash): Don't hash bitfld blocks.
3012 (sra_elt_eq): Skip them in parent compares as well. Handle
3014 (build_element_name_1): Handle BIT_FIELD_REFs.
3015 (instantiate_element): Propagate nowarn from parents. Create
3016 BIT_FIELD_REF for variables that are widened by scalarization.
3017 Gimple-zero-initialize all bit-field variables that are not
3018 part of parameters that are going to be scalarized on entry.
3019 (instantiate_missing_elements_1): Return the sra_elt.
3020 (canon_type_for_field): New.
3021 (try_instantiate_multiple_fields): New. Infer widest possible
3022 access mode from decl or member type, but clip it at word
3023 size, and only widen it if a field crosses an alignment
3025 (instantiate_missing_elements): Use them.
3026 (generate_one_element_ref): Handle BIT_FIELD_REFs.
3027 (scalar_bitfield_p): New.
3028 (sra_build_assignment): Optimize assignments from scalarizable
3029 BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift
3032 (sra_build_bf_assignment): New. Optimize assignments to
3033 scalarizable BIT_FIELD_REFs.
3034 (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF
3035 assignments to full variables.
3036 (generate_copy_inout): Use the new macros and functions.
3037 (generate_element_copy): Likewise. Handle bitfld differences.
3038 (generate_element_zero): Don't recurse for blocks. Use
3039 sra_build_elt_assignment.
3040 (generate_one_element_init): Take elt instead of var. Use
3041 sra_build_elt_assignment.
3042 (generate_element_init_1): Adjust.
3043 (bitfield_overlap_info): New struct.
3044 (bitfield_overlaps_p): New.
3045 (sra_explode_bitfield_assignment): New. Adjust widened
3046 variables to account for endianness.
3047 (sra_sync_for_bitfield_assignment): New.
3048 (scalarize_use): Re-expand assignment to/from scalarized
3049 BIT_FIELD_REFs. Explode or sync needed members for
3050 BIT_FIELD_REFs accesses or assignments. Use REPLDUP.
3051 (scalarize_copy): Use REPLDUP.
3052 (scalarize_ldst): Move assert before dereference. Adjust EH
3054 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
3056 2007-10-01 Paolo Bonzini <bonzini@gnu.org>
3058 * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
3059 Rename CR_* constants to CMP_*. Fix spacing.
3061 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3064 * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
3065 to be processed with the special script doc/install.texi2html.
3067 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3069 * doc/invoke.texi (Wall): List the options enabled by Wall.
3070 (Wstrict-aliasing): Add missing @option.
3072 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk>
3074 * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
3075 rather than gen_lowpart to change a register from DImode to DFmode.
3076 (mips_cannot_change_mode_class): Only allow FPRs to change mode if
3077 both FROM and TO are integer modes that are no bigger than 4 bytes.
3078 (mips_mode_ok_for_mov_fmt_p): New function.
3079 (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
3080 (mips_secondary_reload_class): Tweak formatting and comments.
3081 Use reg_class_subset_p instead of direct comparisons with
3082 classes. Only allow direct FPR<->FPR moves for modes that
3083 satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores
3084 for 4- and 8-byte types. Handle reloads in which X is an FPR.
3085 * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
3086 (*movdi_64bit): Likewise.
3087 (*movsi_internal): Likewise.
3088 (*movhi_internal): Likewise.
3089 (*movqi_internal): Likewise.
3091 2007-09-30 Diego Novillo <dnovillo@google.com>
3094 * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
3097 2007-09-30 Uros Bizjak <ubizjak@gmail.com>
3099 PR tree-optimization/33597
3100 * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
3101 for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
3103 2007-09-28 Uros Bizjak <ubizjak@gmail.com>
3105 * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
3106 instead of variants of (!reload_in_progress && !reload_completed).
3107 (x86_expand_vector_move): Ditto.
3109 2007-09-28 Ollie Wild <aaw@google.com>
3112 2007-09-27 Ollie Wild <aaw@google.com>
3114 * varasm.c (compare_constant): Removed call to
3115 lang_hooks.expand_constant.
3116 (copy_constants): Removed call to lang_hooks.expand_constant.
3117 (compute_reloc_for_constant): Removed call to
3118 lang_hooks.expand_constant.
3119 (output_addressed_constants): Removed call to
3120 lang_hooks.expand_constant.
3121 (constructor_static_from_elts_p): Removed call to
3122 lang_hooks.expand_constant.
3123 (output_constant): Removed calls to lang_hooks.expand_constant.
3124 * langhooks.h (struct lang_hooks): Removed field expand_constant.
3125 * langhooks-def.h (lhd_return_tree): Removed.
3126 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
3127 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
3128 * langhooks.c (lhd_return_tree): Removed.
3130 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3133 * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
3134 argument to gen_selb.
3136 2007-09-28 Chao-ying Fu <fu@mips.com>
3138 * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
3139 * doc/libgcc.texi (Fixed-point fractional library routines):
3140 Fix typos for neg and cmp functions.
3142 2007-09-28 Michael Matz <matz@suse.de>
3144 PR rtl-optimization/33552
3145 * function.c (match_asm_constraints_1): Check for overlap in
3146 inputs and replace all occurences.
3148 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk>
3150 * config/mips/mips.c (override_options): Fix comment typo.
3152 2007-09-28 Jie Zhang <jie.zhang@analog.com>
3154 * config.gcc (bfin*-linux-uclibc*): Set extra_parts
3155 to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
3156 * config/bfin/t-bfin-linux (crti.o): Don't build.
3158 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
3159 * config/bfin/t-bfin-uclinux (crti.o): Don't build.
3161 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
3163 2007-09-27 Ollie Wild <aaw@google.com>
3165 * varasm.c (compare_constant): Removed call to
3166 lang_hooks.expand_constant.
3167 (copy_constants): Removed call to lang_hooks.expand_constant.
3168 (compute_reloc_for_constant): Removed call to
3169 lang_hooks.expand_constant.
3170 (output_addressed_constants): Removed call to
3171 lang_hooks.expand_constant.
3172 (constructor_static_from_elts_p): Removed call to
3173 lang_hooks.expand_constant.
3174 (output_constant): Removed calls to lang_hooks.expand_constant.
3175 * langhooks.h (struct lang_hooks): Removed field expand_constant.
3176 * langhooks-def.h (lhd_return_tree): Removed.
3177 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
3178 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
3179 * langhooks.c (lhd_return_tree): Removed.
3181 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3184 * expr.c (emit_group_load_1): Split constant double when destination
3185 length is half source length.
3187 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk>
3189 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
3190 (mips_cpu_info): Add tune_flags.
3191 (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
3192 * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
3194 (override_options): Remove deprecation code. Use branch-likely
3195 instructions for optimize_size or if the tuning flags do not
3196 suggest otherwise. Tweak warning.
3197 (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
3199 2007-09-27 Matthias Klose <doko@ubuntu.com>
3201 * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3202 multilib osdirname if it exists.
3203 * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3205 2007-09-27 Ian Lance Taylor <iant@google.com>
3207 PR tree-optimization/33565
3208 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
3209 assignments of comparisons.
3210 * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
3211 parameter. Change caller. Defer overflow warnings around call to
3213 * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
3214 TREE_NO_WARNING is set on the statement.
3215 * tree-ssa-forwprop.c
3216 (tree_ssa_forward_propagate_single_use_vars): Don't test
3217 TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
3218 * tree-cfg.c (fold_cond_expr_cond): Likewise.
3220 2007-09-27 Joseph Myers <joseph@codesourcery.com>
3222 * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
3223 reduce offset by units of 0x10000 for SPE vector modes or modes
3224 used with E500 double instructions.
3226 2007-09-04 Paolo Bonzini <bonzini@gnu.org>
3228 * simplify-rtx.c (comparison_result): New.
3229 (simplify_const_relational_operation): Use it instead of the five
3230 "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
3231 Improve bounds-checking optimizations; remove subsumed POPCOUNT
3232 optimizations. Extract nonzero_address_p optimizations into a
3233 separate "if" together with optimizations where op1 is const0_rtx.
3234 Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for
3235 floating-point arguments too when appropriate. Hoist test for ABS
3236 outside the final switch statement.
3237 * cse.c (fold_rtx): Don't look for an IOR equivalent of
3238 folded_arg0 if we found a constant equivalent. Remove
3239 transformations done in simplify-rtx.c for "op0 RELOP op0".
3241 2007-09-27 Jakub Jelinek <jakub@redhat.com>
3243 * builtins.c (expand_builtin, expand_builtin_object_size,
3244 expand_builtin_memory_chk, maybe_emit_chk_warning,
3245 maybe_emit_sprintf_chk_warning): Use new %K format string specifier
3247 * expr.c (expand_expr_real_1): Likewise.
3248 * langhooks-def.h (struct diagnostic_info): Add forward decl.
3249 (lhd_print_error_function): Add third argument.
3250 * langhooks.h (struct diagnostic_info): Add forward decl.
3251 (struct lang_hooks): Add third argument to print_error_function.
3252 * diagnostic.h (diagnostic_info): Add abstract_origin field.
3253 (diagnostic_last_function_changed, diagnostic_set_last_function): Add
3255 (diagnostic_report_current_function): Likewise.
3256 * toplev.c (announce_function): Pass NULL as second argument to
3257 diagnostic_set_last_function.
3258 * diagnostic.c (diagnostic_report_current_function): Add second
3259 argument, pass it as third argument to lang_hooks.print_error_function.
3260 (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
3261 to diagnostic_report_current_function.
3262 (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
3263 and message.abstract_origin.
3264 (verbatim): Initialize abstract_origin.
3265 * pretty-print.h (text_info): Add abstract_origin field.
3266 * pretty-print.c (pp_base_format): Handle %K.
3267 * langhooks.c (lhd_print_error_function): Add third argument. If
3268 diagnostic->abstract_origin, print virtual backtrace.
3269 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
3270 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
3271 (init_dynamic_diag_info): Likewise.
3273 2007-09-26 David Daney <ddaney@avtrex.com>
3276 * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
3277 sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
3278 sync_old_nand<mode>, sync_new_nand<mode>,
3279 sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
3280 Update length attributes.
3281 (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
3282 sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
3284 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
3285 MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
3286 MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
3289 2007-09-26 Richard Guenther <rguenther@suse.de>
3291 PR tree-optimization/33563
3292 * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
3293 (get_kill_of_stmt_lhs): ... this. Re-structure. Handle
3295 (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
3296 get_use_of_stmt_lhs.
3298 2007-09-26 Joseph Myers <joseph@codesourcery.com>
3301 * c-common.c (complete_array_type): Diagnose too-large arrays and
3302 set type to error_mark_node.
3304 2007-09-26 Richard Guenther <rguenther@suse.de>
3306 PR tree-optimization/30375
3307 PR tree-optimization/33560
3308 * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
3312 2006-05-22 Aldy Hernandez <aldyh@redhat.com>
3314 * tree-ssa-dse.c (aggregate_vardecl_d): New.
3315 (dse_global_data): Add aggregate_vardecl field.
3316 (dse_possible_dead_store_p): New.
3317 Add prev_defvar variable.
3318 Allow immediate uses and previous immediate uses to differ
3319 if they are setting different parts of the whole.
3320 (get_aggregate_vardecl): New.
3321 (dse_record_partial_aggregate_store): New.
3322 (dse_whole_aggregate_clobbered_p): New.
3323 (dse_partial_kill_p): New.
3324 Call dse_maybe_record_aggregate_store().
3325 When checking whether a STMT and its USE_STMT refer to the
3326 same memory address, check also for partial kills that clobber
3328 Move some variable definitions to the block where they are used.
3329 (aggregate_vardecl_hash): New.
3330 (aggregate_vardecl_eq): New.
3331 (aggregate_vardecl_free): New.
3332 (aggregate_whole_store_p): New.
3333 (tree_ssa_dse): Initialize and free aggregate_vardecl.
3334 Mark which aggregate stores we care about.
3336 2007-09-25 DJ Delorie <dj@redhat.com>
3339 * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
3342 2007-09-25 Michael Meissner <michael.meissner@amd.com>
3345 * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
3346 gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
3347 for vector int32 -> int64 conversions. Don't write beyond the end
3348 of the allocated vector for int32 -> int64 conversions.
3350 2007-09-25 Revital Eres <eres@il.ibm.com>
3352 * config/rs6000/paired.h (paired_sel): New.
3353 * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
3354 (rs6000_expand_ternop_builtin): Pass zero const_double operand
3355 when expanding selv2sf.
3356 * config/rs6000/rs6000.h (rs6000_builtins): Add
3357 PAIRED_BUILTIN_SELV2SF4.
3359 2007-09-25 Joseph Myers <joseph@codesourcery.com>
3362 * c-typeck.c (default_conversion): Call require_complete_type
3363 before perform_integral_promotions.
3364 (build_unary_op): Call require_complete_type except for ADDR_EXPR.
3365 (build_c_cast): Call require_complete_type except for casts to
3367 (convert_for_assignment): Call require_complete_type.
3369 2007-09-25 Revital Eres <eres@il.ibm.com>
3371 * config/spu/spu.md: Fix doloop pattern.
3373 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com>
3375 * config/bfin/bfin.c (expand_prologue_reg_save,
3376 expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
3377 and ASTAT moved here...
3378 (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3379 ... from here. New argument ALL; callers changed.
3380 (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
3381 (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
3382 have the "saveall" attribute.
3384 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com>
3386 * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
3388 (INCOMING_REGNO, OUTGOING_REGNO): Define.
3389 * config/mmix/mmix.c (mmix_opposite_regno): New function.
3390 * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
3392 * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
3393 with REG_P tests before REGNO access.
3395 2007-09-24 DJ Delorie <dj@redhat.com>
3398 * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
3400 (movqicc_<code>_<mode>): Likewise.
3401 (movhicc_<code>_<mode>): Likewise.
3403 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk>
3406 * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
3407 register for reload.
3409 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
3412 * config/i386/i386.c (ix86_comp_type_attributes): Check
3415 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
3417 * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
3418 "move.l %a4,%a4" to produce nops.
3419 * config/m68k/m68k.c (override_options): Reset align options,
3420 if neccessary align macro isn't avaible.