OSDN Git Service

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