OSDN Git Service

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