OSDN Git Service

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