OSDN Git Service

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