OSDN Git Service

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