OSDN Git Service

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