OSDN Git Service

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