OSDN Git Service

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