OSDN Git Service

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