OSDN Git Service

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