OSDN Git Service

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