OSDN Git Service

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