OSDN Git Service

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