OSDN Git Service

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