OSDN Git Service

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