OSDN Git Service

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