OSDN Git Service

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