OSDN Git Service

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