OSDN Git Service

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