OSDN Git Service

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