OSDN Git Service

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