OSDN Git Service

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