OSDN Git Service

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