OSDN Git Service

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