OSDN Git Service

PR 33593
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-09-30  Diego Novillo  <dnovillo@google.com>
2
3         PR 33593
4         * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
5         throw an exception.
6
7 2007-09-30  Uros Bizjak  <ubizjak@gmail.com>
8
9         PR tree-optimization/33597
10         * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
11         for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
12
13 2007-09-28  Uros Bizjak  <ubizjak@gmail.com>
14
15         * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
16         instead of variants of (!reload_in_progress && !reload_completed).
17         (x86_expand_vector_move): Ditto.
18
19 2007-09-28  Ollie Wild  <aaw@google.com>
20
21         Revert
22         2007-09-27  Ollie Wild  <aaw@google.com>
23
24         * varasm.c (compare_constant): Removed call to
25         lang_hooks.expand_constant.
26         (copy_constants): Removed call to lang_hooks.expand_constant.
27         (compute_reloc_for_constant): Removed call to
28         lang_hooks.expand_constant.
29         (output_addressed_constants): Removed call to
30         lang_hooks.expand_constant.
31         (constructor_static_from_elts_p): Removed call to
32         lang_hooks.expand_constant.
33         (output_constant): Removed calls to lang_hooks.expand_constant.
34         * langhooks.h (struct lang_hooks): Removed field expand_constant.
35         * langhooks-def.h (lhd_return_tree): Removed.
36         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
37         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
38         * langhooks.c (lhd_return_tree): Removed.
39
40 2007-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
41
42         PR target/33347
43         * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
44         argument to gen_selb.
45
46 2007-09-28  Chao-ying Fu  <fu@mips.com>
47
48         * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
49         * doc/libgcc.texi (Fixed-point fractional library routines):
50         Fix typos for neg and cmp functions.
51
52 2007-09-28  Michael Matz  <matz@suse.de>
53
54         PR rtl-optimization/33552
55         * function.c (match_asm_constraints_1): Check for overlap in
56         inputs and replace all occurences.
57
58 2007-09-28  Richard Sandiford  <rsandifo@nildram.co.uk>
59
60         * config/mips/mips.c (override_options): Fix comment typo.
61
62 2007-09-28  Jie Zhang  <jie.zhang@analog.com>
63
64         * config.gcc (bfin*-linux-uclibc*): Set extra_parts
65         to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
66         * config/bfin/t-bfin-linux (crti.o): Don't build.
67         (crtn.o): Likewise.
68         (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
69         * config/bfin/t-bfin-uclinux (crti.o): Don't build.
70         (crtn.o): Likewise.
71         (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
72
73 2007-09-27  Ollie Wild  <aaw@google.com>
74
75         * varasm.c (compare_constant): Removed call to
76         lang_hooks.expand_constant.
77         (copy_constants): Removed call to lang_hooks.expand_constant.
78         (compute_reloc_for_constant): Removed call to
79         lang_hooks.expand_constant.
80         (output_addressed_constants): Removed call to
81         lang_hooks.expand_constant.
82         (constructor_static_from_elts_p): Removed call to
83         lang_hooks.expand_constant.
84         (output_constant): Removed calls to lang_hooks.expand_constant.
85         * langhooks.h (struct lang_hooks): Removed field expand_constant.
86         * langhooks-def.h (lhd_return_tree): Removed.
87         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
88         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
89         * langhooks.c (lhd_return_tree): Removed.
90
91 2007-09-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
92
93         PR middle-end/33436
94         * expr.c (emit_group_load_1): Split constant double when destination
95         length is half source length.
96
97 2007-09-27  Richard Sandiford  <rsandifo@nildram.co.uk>
98
99         * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
100         (mips_cpu_info): Add tune_flags.
101         (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
102         * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
103         Remove end marker.
104         (override_options): Remove deprecation code.  Use branch-likely
105         instructions for optimize_size or if the tuning flags do not
106         suggest otherwise.  Tweak warning.
107         (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
108
109 2007-09-27  Matthias Klose  <doko@ubuntu.com>
110
111         * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
112         multilib osdirname if it exists.
113         * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
114
115 2007-09-27  Ian Lance Taylor  <iant@google.com>
116
117         PR tree-optimization/33565
118         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
119         assignments of comparisons.
120         * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
121         parameter.  Change caller.  Defer overflow warnings around call to
122         fold_binary.
123         * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
124         TREE_NO_WARNING is set on the statement.
125         * tree-ssa-forwprop.c
126         (tree_ssa_forward_propagate_single_use_vars): Don't test
127         TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
128         * tree-cfg.c (fold_cond_expr_cond): Likewise.
129
130 2007-09-27  Joseph Myers  <joseph@codesourcery.com>
131
132         * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
133         reduce offset by units of 0x10000 for SPE vector modes or modes
134         used with E500 double instructions.
135
136 2007-09-04  Paolo Bonzini  <bonzini@gnu.org>
137
138         * simplify-rtx.c (comparison_result): New.
139         (simplify_const_relational_operation): Use it instead of the five
140         "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
141         Improve bounds-checking optimizations; remove subsumed POPCOUNT
142         optimizations.  Extract nonzero_address_p optimizations into a
143         separate "if" together with optimizations where op1 is const0_rtx.
144         Optimize comparing an IOR with zero.  Simplify op0 RELOP op0 for
145         floating-point arguments too when appropriate.  Hoist test for ABS
146         outside the final switch statement.
147         * cse.c (fold_rtx): Don't look for an IOR equivalent of
148         folded_arg0 if we found a constant equivalent.  Remove
149         transformations done in simplify-rtx.c for "op0 RELOP op0".
150
151 2007-09-27  Jakub Jelinek  <jakub@redhat.com>
152
153         * builtins.c (expand_builtin, expand_builtin_object_size,
154         expand_builtin_memory_chk, maybe_emit_chk_warning,
155         maybe_emit_sprintf_chk_warning): Use new %K format string specifier
156         for diagnostics.
157         * expr.c (expand_expr_real_1): Likewise.
158         * langhooks-def.h (struct diagnostic_info): Add forward decl.
159         (lhd_print_error_function): Add third argument.
160         * langhooks.h (struct diagnostic_info): Add forward decl.
161         (struct lang_hooks): Add third argument to print_error_function.
162         * diagnostic.h (diagnostic_info): Add abstract_origin field.
163         (diagnostic_last_function_changed, diagnostic_set_last_function): Add
164         second argument.
165         (diagnostic_report_current_function): Likewise.
166         * toplev.c (announce_function): Pass NULL as second argument to
167         diagnostic_set_last_function.
168         * diagnostic.c (diagnostic_report_current_function): Add second
169         argument, pass it as third argument to lang_hooks.print_error_function.
170         (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
171         to diagnostic_report_current_function.
172         (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
173         and message.abstract_origin.
174         (verbatim): Initialize abstract_origin.
175         * pretty-print.h (text_info): Add abstract_origin field.
176         * pretty-print.c (pp_base_format): Handle %K.
177         * langhooks.c (lhd_print_error_function): Add third argument.  If
178         diagnostic->abstract_origin, print virtual backtrace.
179         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
180         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
181         (init_dynamic_diag_info): Likewise.
182
183 2007-09-26  David Daney  <ddaney@avtrex.com>
184
185         PR target/33479
186         * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
187         sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
188         sync_old_nand<mode>, sync_new_nand<mode>,
189         sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
190         Update length attributes.
191         (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
192         sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
193         length attributes.
194         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
195         MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
196         MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
197         post-loop sync.
198
199 2007-09-26  Richard Guenther  <rguenther@suse.de>
200
201         PR tree-optimization/33563
202         * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
203         (get_kill_of_stmt_lhs): ... this.  Re-structure.  Handle
204         aggregate stores.
205         (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
206         get_use_of_stmt_lhs.
207
208 2007-09-26  Joseph Myers  <joseph@codesourcery.com>
209
210         PR c/25309
211         * c-common.c (complete_array_type): Diagnose too-large arrays and
212         set type to error_mark_node.
213
214 2007-09-26  Richard Guenther  <rguenther@suse.de>
215
216         PR tree-optimization/30375
217         PR tree-optimization/33560
218         * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
219         with calls.
220
221         Revert
222         2006-05-22  Aldy Hernandez  <aldyh@redhat.com>
223
224         * tree-ssa-dse.c (aggregate_vardecl_d): New.
225         (dse_global_data): Add aggregate_vardecl field.
226         (dse_possible_dead_store_p): New.
227         Add prev_defvar variable.
228         Allow immediate uses and previous immediate uses to differ
229         if they are setting different parts of the whole.
230         (get_aggregate_vardecl): New.
231         (dse_record_partial_aggregate_store): New.
232         (dse_whole_aggregate_clobbered_p): New.
233         (dse_partial_kill_p): New.
234         Call dse_maybe_record_aggregate_store().
235         When checking whether a STMT and its USE_STMT refer to the
236         same memory address, check also for partial kills that clobber
237         the whole.
238         Move some variable definitions to the block where they are used.
239         (aggregate_vardecl_hash): New.
240         (aggregate_vardecl_eq): New.
241         (aggregate_vardecl_free): New.
242         (aggregate_whole_store_p): New.
243         (tree_ssa_dse): Initialize and free aggregate_vardecl.
244         Mark which aggregate stores we care about.
245
246 2007-09-25  DJ Delorie  <dj@redhat.com>
247
248         PR target/33551
249         * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
250         XINT.
251
252 2007-09-25  Michael Meissner  <michael.meissner@amd.com>
253
254         PR target/33524
255         * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
256         gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
257         for vector int32 -> int64 conversions.  Don't write beyond the end
258         of the allocated vector for int32 -> int64 conversions.
259
260 2007-09-25  Revital Eres  <eres@il.ibm.com>
261
262         * config/rs6000/paired.h (paired_sel): New.
263         * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
264         (rs6000_expand_ternop_builtin): Pass zero const_double operand
265         when expanding selv2sf.
266         * config/rs6000/rs6000.h (rs6000_builtins): Add
267         PAIRED_BUILTIN_SELV2SF4.
268
269 2007-09-25  Joseph Myers  <joseph@codesourcery.com>
270
271         PR c/32295
272         * c-typeck.c (default_conversion): Call require_complete_type
273         before perform_integral_promotions.
274         (build_unary_op): Call require_complete_type except for ADDR_EXPR.
275         (build_c_cast): Call require_complete_type except for casts to
276         void types.
277         (convert_for_assignment): Call require_complete_type.
278
279 2007-09-25  Revital Eres  <eres@il.ibm.com>
280
281         * config/spu/spu.md: Fix doloop pattern.
282
283 2007-09-25  Bernd Schmidt  <bernd.schmidt@analog.com>
284
285         * config/bfin/bfin.c (expand_prologue_reg_save,
286         expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs and
287         ASTAT moved here...
288         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
289         ... from here.  New argument ALL; callers changed.
290         (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
291         (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
292         have the "saveall" attribute.
293
294 2007-09-25  Hans-Peter Nilsson  <hp@bitrange.com>
295
296         * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
297         bogus target macro.
298         (INCOMING_REGNO, OUTGOING_REGNO): Define.
299         * config/mmix/mmix.c (mmix_opposite_regno): New function.
300         * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
301
302         * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
303         with REG_P tests before REGNO access.
304
305 2007-09-24  DJ Delorie  <dj@redhat.com>
306
307         PR target/31482
308         * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
309         constraint.
310         (movqicc_<code>_<mode>): Likewise.
311         (movhicc_<code>_<mode>): Likewise.
312
313 2007-09-24  Rask Ingemann Lambertsen  <rask@sygehus.dk>
314
315         PR target/33184
316         * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
317         register for reload.
318
319 2007-09-24  Danny Smith  <dannysmith@user.sourceforge.net>
320
321         PR c++/14688
322         * config/i386/i386.c (ix86_comp_type_attributes): Check
323         METHOD_TYPE too.
324
325 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
326
327         * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
328         "move.l %a4,%a4" to produce nops.
329         * config/m68k/m68k.c (override_options): Reset align options,
330         if neccessary align macro isn't avaible.
331
332 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
333
334         config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
335
336 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
337
338         * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
339         the basic block.
340         * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
341         reload is completed.
342         (peephole pattern): Convert most of them to RTL peephole pattern.
343
344 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
345
346         * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
347         (moved from fp compare patterns).
348         * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
349         Cleanup predicates to relieve reload.
350         (conditional_trap): Reject conditional trap with fp condition.
351         * gcc/config/m68k/predicates.md (fp_src_operand): New, reject
352         certain constants early.
353
354 2007-09-24  Roman Zippel <zippel@linux-m68k.org>
355
356         * gcc/final.c (final_scan_insn): Remove accidentally duplicated code.
357
358 2007-09-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
359
360         * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
361         Allow --with-tune=cell and --with-cpu=cell.
362
363 2007-09-24  David Edelsohn  <edelsohn@gnu.org>
364
365         * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
366         * config/rs6000/rs6000.opt (swdiv): Change option to ...
367         (recip): this.
368         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
369         function.
370         (TARGET_BUILTIN_RECIPROCAL): Use it.
371         (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
372         (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
373         (rs6000_emit_swrsqrtsf): New.
374         * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
375         rsqrtf. 
376         * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
377         (divsf3): Remove swdiv support.
378         (recipsf3): New.
379         (rsqrtsf2): New.
380         (rsqrt_internal1): New.
381         (divdf3): Remove swdiv support.
382         (reciptdf3): New.
383
384 2007-09-24  Jakub Jelinek  <jakub@redhat.com>
385
386         PR c++/33506
387         * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
388         field.
389         * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
390         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
391         * tree.c (type_hash_eq): For FUNCTION_TYPE use
392         lang_hooks.type.type_hash_eq in addition to generic tests.
393
394 2007-09-24  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
395         Ramana Radhakrishnan  <ramana@hercules.pun.celunite.com>
396
397         * tree-inline.h (eni_weights): Add field target_builtin_cost to
398         reflect the cost per call to a target specific builtin.
399         * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
400         call to a target specific builtin, then use target_builtin_call_cost.
401         (init_inline_once): Initialize target_builtin_call_cost field.
402
403 2007-09-24  Kai Tietz  <kai.tietz@onevision.com>
404
405         PR middle-end/33472
406         * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
407         complex types.
408
409 2007-09-23  H.J. Lu  <hongjiu.lu@intel.com>
410
411         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
412         * configure: Regenerated.
413
414 2007-09-23  Ollie Wild  <aaw@google.com>
415
416         * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
417         operand.
418         (get_pointer_modulus_and_residue): New function.
419
420 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
421
422         * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
423         combine an SC return value into a single register.
424
425 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
426
427         * opth-gen.awk (target_flags_explicit): Declare.
428         * toplev.h (target_flags_explicit): Delete declaration.
429         * toplev.c (target_flags): Likewise.
430         * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
431         (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
432         Never return true for TARGET_MIPS16.
433         * config/mips/mips.c (mips_llsc): Delete.
434         (mips_handle_option): Remove -mllsc handling.
435         (mips_strip_unspec_address): Tweak comment.
436         * config/mips/mips.opt (mllsc): Use a target mask.
437
438 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
439
440         * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
441         word_mode as well as Pmode.
442
443 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
444
445         * function.c (assign_parm_setup_block): Explicitly convert BLKmode
446         parameters from word_mode to the subword type if such a truncation
447         is not a no-op.
448
449 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
450
451         * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
452         * configure: Regenerated.
453
454 2007-09-23  Jan Hubicka  <jh@suse.cz>
455
456         * params.def (INLINE_CALL_COST): Set to 12.
457         * invoke.texi (inline-call-cost): Update default value.
458
459 2007-09-23  Eric Botcazou  <ebotcazou@adacore.com>
460
461         * config/alpha/alpha.md (movti): Use operand_subword for the split.
462
463 2007-09-23  Ayal Zaks  <zaks@il.ibm.com>
464             Revital Eres  <eres@il.ibm.com>
465
466         * modulo-sched.c (doloop_register_get): Rewrite the loop which
467         checks whether the count_reg is found outside the control part.
468
469 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
470
471         * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
472         instead of checking CALL_EXPR_FN directly to test for builtins.
473         If error or warning attributes are present, print
474         error resp. warning.
475         * c-common.c (handle_error_attribute): New function.
476         (c_common_attribute_table): Add error and warning
477         attributes.
478         * doc/extend.texi: Document error and warning attributes.
479
480         * tree.h (block_nonartificial_location): New prototype.
481         * tree.c (block_nonartificial_location): New function.
482         * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
483         if artificial attribute is present on abstract inline decl.
484         * c-common.c (handle_artificial_attribute): New function.
485         (c_common_attribute_table): Add artificial attribute.
486         * final.c (override_filename, override_linenum): New variables.
487         (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
488         and override_linenum if inside of a block inlined from
489         __attribute__((__artificial__)) function.
490         (notice_source_line): Honor override_filename and override_linenum.
491         * doc/extend.texi: Document __attribute__((__artificial__)).
492         * config/i386/emmintrin.h: Add __artificial__ attribute to
493         all __always_inline__ functions.
494         * config/i386/mmintrin.h: Likewise.
495         * config/i386/tmmintrin.h: Likewise.
496         * config/i386/mm3dnow.h: Likewise.
497         * config/i386/pmmintrin.h: Likewise.
498         * config/i386/ammintrin.h: Likewise.
499         * config/i386/xmmintrin.h: Likewise.
500         * config/i386/smmintrin.h: Likewise.
501         * config/i386/bmmintrin.h: Likewise.
502         * config/i386/mmintrin-common.h: Likewise.
503
504         PR middle-end/28755
505         * expr.c (expand_constructor): New function.
506         (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
507         (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
508         CONSTRUCTOR.
509
510 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
511
512         * config/mips/mips.c (dump_constants_1): Generalize to include
513         fractional and accumulator modes.
514
515 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
516
517         * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
518         * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
519         flags for MIPS16.
520         (override_options): Check TARGET_HARD_FLOAT_ABI instead of
521         TARGET_HARD_FLOAT when testing whether -mpaired-single is
522         supported.
523         (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
524         TARGET_DSP.
525         * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
526         TARGET_DSPR2.
527         * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
528         (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
529         TARGET_HARD_FLOAT.
530         (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
531         ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
532         * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
533         throughout.
534         * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
535         TARGET_HAS_DSPR2.
536         * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
537         instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
538         * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
539
540 2007-09-22  Jason Merrill  <jason@redhat.com>
541
542         PR c++/19407
543         * attribs.c (lookup_attribute_spec): Split out...
544         (decl_attributes): From here.
545         * tree.h: Declare it.
546
547 2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>
548
549         * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
550
551 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
552
553         * tree-inline.c (remap_type_1): Correctly chain variants.
554
555 2007-09-22  Richard Guenther  <rguenther@suse.de>
556
557         PR tree-optimization/33146
558         * fold-const.c (fold_binary): Use the original tree
559         for negating.
560         * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
561         also changes "sign".
562
563 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
564
565         PR target/32325
566         * except.c (finish_eh_generation): Call commit_edge_insertions if
567         there are insns queued on the entry edge.
568         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
569         the entry edge.
570
571 2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>
572
573         * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
574
575 2007-09-19  Michael Meissner  <michael.meissner@amd.com>
576
577         * gcc/config/i386/i386.c: Delete trailing whitespace.
578         * gcc/config/i386/i386.h: Ditto.
579         * gcc/config/i386/bmmintrin.h: Ditto.
580         * gcc/config/i386/sync.md: Ditto.
581         * gcc/config/i386/ppro.md: Ditto.
582         * gcc/config/i386/mmx.md: Ditto.
583         * gcc/config/i386/constraints.md: Ditto.
584         * gcc/config/i386/sse.md: Ditto.
585         * gcc/config/i386/athlon.md: Ditto.
586         * gcc/config/i386/i386.md: Ditto.
587
588 2007-09-21  Richard Guenther  <rguenther@suse.de>
589
590         PR tree-optimization/33508
591         * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
592         quadratic loop by keeping a bitmap of variables we have
593         to clobber all subvariables for.
594         (set_initial_properties): Likewise.
595
596 2007-09-21  Richard Sandiford  <rsandifo@nildram.co.uk>
597
598         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
599
600 2007-09-20  Nigel Stephens  <nigel@mips.com>
601             Chao-ying Fu  <fu@mips.com>
602
603         * c-decl.c (finish_declspecs): When _Sat is used without
604         _Fract or _Accum, set the default type to cts_fract.
605         This avoids a warning of "type defaults to int".
606
607 2007-09-20  Joseph Myers  <joseph@codesourcery.com>
608
609         * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
610         bit-fields wider than one bit.
611
612 2007-09-20  Jakub Jelinek  <jakub@redhat.com>
613
614         PR debug/33316
615         * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
616         DECL_NAME.
617         * dbxout.c (dbxout_type): Likewise.
618
619         PR c/33238
620         PR c/27301
621         * gimplify.c (gimplify_vla_decl): New function.
622         (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
623         Call it.
624         (gimplify_target_expr): Handle variable length TARGET_EXPRs.
625
626 2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>
627
628         * doc/invoke.texi (-minterlink-mips16): Document.
629         * config/mips/mips.opt (minterlink-mips16): New option.
630         * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
631         -minterlink-mips16
632
633 2007-09-20  Joseph Myers  <joseph@codesourcery.com>
634
635         * doc/extend.texi (Attribute Syntax): Remove old speculative
636         future direction.
637
638 2007-09-20  Mark Shinwell  <shinwell@codesourcery.com>
639
640         * combine.c: Include cgraph.h.
641         (setup_incoming_promotions): Rework to allow more aggressive
642         elimination of sign extensions when all call sites of the
643         current function are known to lie within the current unit.
644
645 2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>
646
647         * dse.c (find_shift_sequence): No-op rework of control flow.
648
649 2007-09-19  Richard Sandiford  <rsandifo@nildram.co.uk>
650
651         * config/mips/mips.c (build_mips16_call_stub): Tidy.  Fix second
652         GPR for DCmode on 64-bit targets.  Remove redundant fallback.
653
654 2007-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
655
656         * cfgexpand.c (dump_stack_var_partition): Use the correct
657         index for the offset.
658
659 2007-09-19  Joseph Myers  <joseph@codesourcery.com>
660
661         * config/mips/sde.h: Switch to GPLv3.
662
663 2007-09-19  Eric Botcazou  <ebotcazou@adacore.com>
664
665         * tree-sra.c (decide_block_copy): Decide if there are groups.
666
667 2007-09-19  Roman Zippel <zippel@linux-m68k.org>
668
669         * config/m68k/m68k.c (output_move_himode): Remove jump table
670         recognition.
671         config/m68k/m68k.md (lea): Likewise.
672         * config/m68k/m68k.c (print_operand_address): Use simple pc
673         relative addressing.
674
675 2007-09-19  Bernd Schmidt  <bernd.schmidt@analog.com>
676
677         * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.
678         * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument
679         default definition.
680         (asm_insn_count): Pass template as second argument to it.
681         * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
682         * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
683         * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
684         * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
685         * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
686         (sh_insn_length_adjustment): Pass template as second argument to it.
687         * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro.
688
689         * config/bfin/bfin.md (define_asm_attributes): New.
690
691 2007-09-19  Jie Zhang  <jie.zhang@analog.com>
692
693         * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h
694         to tm_file.
695         * config/bfin/print-sysroot-suffix.sh: New.
696         * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove.
697         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
698         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
699         * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove.
700         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
701         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
702         * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove.
703         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
704         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
705         (linux-sysroot-suffix.h): New target.
706         * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask.
707         (mspecld-anomaly): Likewise.
708         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from
709         (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525,
710         BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542,
711         BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549.
712         (bfin_si_revision): Declare.
713         (bfin_workarounds): Declare.
714         (WA_SPECULATIVE_LOADS): Define.
715         (ENABLE_WA_SPECULATIVE_LOADS): Define.
716         (WA_SPECULATIVE_SYNCS): Define.
717         (ENABLE_WA_SPECULATIVE_SYNCS): Define.
718         * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o.
719         (LIB_SPEC): Add %s to the linker scripts.
720         Use proper linker script for bf522, bf525, bf527,
721         bf538, bf539, bf542, bf544, bf548, and bf549.
722         * config/bfin/bfin.c (bfin_si_revision): Define.
723         (bfin_workarounds): Define.
724         (struct bfin_cpu): New.
725         (bfin_cpus): New.
726         (bfin_handle_option): Handle silicon revision part of -mcpu option.
727         (override_options): Set bfin_workarounds.
728         (length_for_loop): Replace TARGET_CSYNC_ANOMALY with
729         ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with
730         ENABLE_WA_SPECULATIVE_LOADS.
731         (bfin_reorg): Likewise.
732         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
733         macros for bf522, bf525, bf527, bf538, bf539,
734         bf542, bf544, bf548, and bf549.
735         Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed.
736         Don't define __ID_SHARED_LIB__ when -msep-data.
737         (TARGET_DEFAULT): Define as 0.
738         (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option.
739         * doc/invoke.texi (Blackfin Options): Document silicon
740         revision part of -mcpu option and it now accepts bf522, bf525,
741         bf527, bf538, bf539, bf542, bf544, bf548, and bf549.
742
743 2007-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
744
745         * alias.c (memory_modified_1): Deconstify.
746         (memory_modified_in_insn_p): Don't use const_note_stores.
747         * rtl.h (const_note_stores): Delete.
748         * rtlanal.c (const_note_stores): Likewise.
749
750 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
751
752         * dse.c (find_shift_sequence): Temporarily revert to forbidding
753         word shifts.
754
755 2007-09-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
756
757         PR target/33388
758         PR target/33397
759         * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO().
760         (addsi_small_int): Likewise.
761         (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison.
762         (one_cmplsi2): Likewise.
763         (negsi2): Delete.
764         (enter_func): Expand insn using hard_frame_pointer_rtx and
765         stack_pointer_rtx.
766         (*enter_func): New.
767         * config/fr30/fr30.c (fr30_expand_prologue): Check for
768         hard_frame_pointer_rtx instead of using REGNO() check.
769         Properly sign extend GEN_INT() argument.
770
771 2007-09-18  Roman Zippel <zippel@linux-m68k.org>
772
773         * config/m68k/m68k.c (override_options): Remove USE_GAS,
774         use %. syntax.
775         (output_dbcc_and_branch, output_scc_di): Replace all jbcc
776         alternatives with just jcc.
777         * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di,
778         bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev,
779         bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si,
780         dbge_hi, dbge_si): Likewise.
781
782 2007-09-18  Roman Zippel <zippel@linux-m68k.org>
783
784         * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered,
785         bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev,
786         bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev,
787         bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev,
788         bunlt_rev, bltgt_rev): Replace all fbcc with fjcc.
789
790 2007-09-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
791
792         * config/m68k/m68k-devices.def (51qe): New device.
793         * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit.  Add it
794         to all uses of FL_FOR_isa_c for compatibility.
795         (all_microarchs): Add cfv1 microarchitecture.
796         (m68k_handle_option): Handle m51qe option.
797         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE.
798         (TUNE_CFV1): New macro.
799         (enum uarch_type): Add ucfv1.
800         * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture.
801         
802 2007-09-18  Richard Guenther  <rguenther@suse.de>
803
804         PR tree-optimization/31863
805         * tree-ssa-structalias.c (create_variable_info_for): Always
806         free the fieldstack.
807
808 2007-09-18  Dorit Nuzman  <dorit@il.ibm.com>
809
810         * opts.c (decode_options): Enable vectorization under -O3.
811
812 2007-09-18  Richard Guenther  <rguenther@suse.de>
813
814         PR tree-optimization/33340
815         * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to
816         SSA_NAMEs that occur in abnormal PHI nodes.
817
818 2007-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
819
820         * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p):
821         Don't use const_get_call_expr_in.
822         * tree-gimple.c (const_get_call_expr_in): Delete.
823         * tree-gimple.h (const_get_call_expr_in): Likewise.
824
825 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
826
827         * df-scan.c (df_notes_rescan): Do nothing if the instruction does
828         not yet have a basic block.
829         * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
830
831 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
832
833         * config/mips/mips.c (mips_file_start): Add ".previous" directives
834         to both ".section"s.
835
836 2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>
837
838         * config/mips/mips.c (mips_output_mi_thunk): Use
839         mips_function_ok_for_sibcall and const_call_insn_operand
840         to determine if a direct sibcall is allowed.  Use
841         mips_classify_symbol to determine a global pointer is needed.
842
843 2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>
844
845         * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand.
846
847 2007-09-17  Chao-ying Fu  <fu@mips.com>
848             Nigel Stephens  <nigel@mips.com>
849
850         * config/fixed-bit.h: New file.
851         * config/fixed-bit.c: New file.
852         * doc/libgcc.texi (Fixed-point fractional library routines): New node.
853
854 2007-09-18  Jakub Jelinek  <jakub@redhat.com>
855
856         * c-format.h (format_kind_info): Add alloc_char field.
857         * c-format.c (scanf_flag_specs): Add 'm'.
858         (scanf_flag_pairs): Add 'a', 'm' pair.
859         (scan_char_table): Allow 'm' modifier for c, s, [, C and S.
860         (format_types_orig): Add alloc_char fields.
861         (check_format_info_main): Rename aflag to alloc_flag.
862         Handle fki->alloc_char. modifier after width and before length
863         modifiers.  Move FMT_FLAG_SCANF_A_KLUDGE handling before
864         length modifiers as well.
865         * config/sol2-c.c (solaris_format_types): Add alloc_char field.
866
867         PR middle-end/33423
868         * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs
869         returned by build_call_expr.
870
871 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
872
873         * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return
874         NULL for variable-sized records too.
875         (sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too.
876
877 2007-09-17  Tom Tromey  <tromey@redhat.com>
878
879         * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC.
880         (c_builtin_function): Likewise.
881         (grokdeclarator): Likewise.
882
883 2007-09-17  Zdenek Dvorak  <ook@ucw.cz>
884
885         PR rtl-optimization/26449
886         * loop-invariant.c (move_invariant_reg): Do not use force_operand.
887         (seq_insns_valid_p): Removed.
888
889 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
890
891         * tree-nomudflap.c (gate_mudflap): New static function.
892         (pass_mudflap_1): Use it as gate function.
893         (pass_mudflap_2): Likewise.
894
895 2007-09-17  Jan Hubicka  <jh@suse.cz>
896
897         PR middle-end/33348
898         PR target/33406
899         * loop-invariant.c (move_invariant_reg): Unshare sequence.
900
901 2007-09-17  Victor Kaplansky  <victork@il.ibm.com>
902
903         PR tree-optimization/33319
904         * tree-vect-analyze.c (vect_same_range_drs): New.
905         (vect_vfa_range_equal): New.
906         (vect_is_duplicate_ddr): Removed.
907         (vect_mark_for_runtime_alias_test): Do not perform marking when
908         optimizing for size or max_param for alias checking is zero.
909         Move the function before vect_analyze_data_ref_dependence.
910         (vect_analyze_data_ref_dependence): Add call to
911         vect_mark_for_runtime_alias_test in two cases when dependence
912         is not clear.
913         (vect_analyze_data_ref_dependences): Do not call to
914         vect_mark_for_runtime_alias_test.
915         (vect_prune_runtime_alias_test_list): New.
916         (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list.
917         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
918         Update vec_outside_cost.
919         (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT.
920         (vect_create_cond_for_alias_checks): Build the base address of data
921         reference from DR_GROUP_FIRST_DR.
922         (vect_loop_versioning): New.
923         (vect_transform_loop): Add a call to vect_loop_versioning.
924         Remove factored out code.
925
926 2007-09-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
927
928         PR middle-end/33273
929         * expr.c (store_expr): Call adjust_address to change mode of dest_mem
930         to BLKmode.
931
932 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
933
934         * dse.c (find_shift_sequence): Allow word as well as subword shifts.
935         Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set.
936         Fix the call to insn_rtx_cost.  Skip access sizes that require a
937         real truncation of the store register.  Use convert_move instead
938         of gen_lowpart when narrowing the result.
939         (replace_read): Use convert_move instead of gen_lowpart when
940         narrowing the store rhs.
941
942 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
943
944         * config/mips/mips.md (SHORT): Fix long line.
945         (SUBDI): New mode iterator.  Extend the shift-and-truncate insns
946         to QImode and HImode.
947
948 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
949
950         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define.
951
952 2007-09-15  Zdenek Dvorak  <ook@ucw.cz>
953
954         * tree-parloops.c: New file.
955         * tree-ssa-operands.h (free_stmt_operands): Declare.
956         * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic
957         block.
958         * tree-pass.h (pass_parallelize_loops): Declare.
959         * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for
960         virtual operands.
961         (build_omp_regions_1): Allow analysing just a single OMP region and
962         its subregions.
963         ( build_omp_regions_root, omp_expand_local): New functions.
964         (build_omp_regions): Add argument to build_omp_regions_1 call.
965         * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when
966         autoparallelization is run.
967         * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New.
968         * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops,
969         pass_parallelize_loops): New.
970         * common.opt (ftree-parallelize-loops): New.
971         * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail,
972         parallelize_loops): Declare.
973         (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed.
974         * Makefile.in (tree-parloops.o): Added.
975         * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail):
976         New functions.
977         (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge.
978         (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for
979         one extra edge as well.
980         (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy.
981         Use VEC_free to free doms vector.
982         (move_block_to_fn): Update loop info. Remove phi nodes for virtual
983         operands.  Recompute operand caches in the new function.
984         (move_sese_region_to_fn): Update loop info.
985         * passes.c (init_optimization_passes): Add pass_parallelize_loops.
986         * tree-ssa-operands.c (free_stmt_operands): New function.
987
988         * doc/passes.texi: Document autoparallelization.
989         * doc/invoke.texi (-ftree-parallelize-loops): New option.
990
991 2007-09-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
992
993         PR target/33062
994         * pa.c (function_value): Use GET_MODE_BITSIZE instead of
995         TYPE_PRECISION.
996
997 2007-09-15  Dorit Nuzman  <dorit@il.ibm.com>
998
999         * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if 
1000         the VEC is not NULL.
1001         (vectorizable_type_demotion, vectorizable_type_promotion): Check that 
1002         get_vectype_for_scalar_type succeeded.
1003         (vectorizable_conversion): Likewise.
1004
1005 2007-09-14  Jan Hubicka  <jh@suse.cz>
1006
1007         * config/i386/i386.md (*floatdi<mode>2_i387): Guard against
1008         TARGET_64BIT.
1009
1010 2007-09-14  Uros Bizjak  <ubizjak@gmail.com>
1011
1012         PR target/33438
1013         * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary
1014         register when operands[2] equals operands[1].
1015         (remainderxf3): Ditto.
1016
1017 2007-09-14  Sandra Loosemore  <sandra@codesourcery.com>
1018             Nigel Stephens  <nigel@mips.com>
1019
1020         * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
1021         * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
1022         (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to
1023         declaration.
1024         (_Unwind_ForcedUnwind): Likewise.
1025         (_Unwind_Resume): Likewise.
1026         (_Unwind_Resume_or_Rethrow): Likewise.
1027         (_Unwind_Backtrace): Likewise.
1028         (_Unwind_SjLj_RaiseException): Likewise.
1029         (_Unwind_SjLj_ForcedUnwind): Likewise.
1030         (_Unwind_SjLj_Resume): Likewise.
1031         (_Unwind_SjLj_Resume_or_Rethrow): Likewise.
1032         * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
1033         to definition.
1034         (_Unwind_ForcedUnwind): Likewise.
1035         (_Unwind_Resume): Likewise.
1036         (_Unwind_Resume_or_Rethrow): Likewise.
1037         (_Unwind_Backtrace): Likewise.
1038         * unwind-compat.c (_Unwind_Backtrace): Likewise.
1039         (_Unwind_ForcedUnwind): Likewise.
1040         (_Unwind_RaiseException): Likewise.
1041         (_Unwind_Resume): Likewise.
1042         (_Unwind_Resume_or_Rethrow): Likewise.
1043
1044         * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
1045         nomips16 mode when IN_LIBGCC2 with hard float.
1046
1047 2007-09-14  Richard Sandiford  <rsandifo@nildram.co.uk>
1048
1049         * config/mips/sdemtk.opt: Update to GPLv3.
1050         * config/mips/sdemtk.h: Likewise.
1051
1052 2007-09-14  Nigel Stephens  <nigel@mips.com>
1053
1054         * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set
1055         MIPS_ISA_DEFAULT appropriately.  Don't make soft-float the default
1056         for mipsisa32-*-linux*.
1057
1058 2007-09-14  Nigel Stephens  <nigel@mips.com>
1059             David Ung  <davidu@mips.com>
1060             Thiemo Seufer  <ths@mips.com>
1061             Richard Sandiford  <richard@codesourcery.com>
1062
1063         * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries.
1064         * configure.ac: Add a mipssde threading type.
1065         * configure: Regenerate.
1066         * config/mips/sdemtk.h: New file.
1067         * config/mips/t-sdemtk: Likewise.
1068         * config/mips/sdemtk.opt: Likewise.
1069         * gthr-mipssde.h: Likewise.
1070         * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h.
1071         * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro.
1072         (MIPS_ICACHE_SYNC): New macro, split from ...
1073         * config/mips/mips.md (clear_cache): ...here.
1074         * config/mips/mips.c (mips_save_reg_p): Check
1075         MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions.
1076         (build_mips16_function_stub): Use targetm.strip_name_encoding.
1077         (build_mips16_call_stub): Likewise.
1078
1079 2007-09-14  Richard Sandiford  <richard@codesourcery.com>
1080
1081         * Makefile.in (stmp-int-hdrs): Depend on fixinc_list.
1082
1083 2007-09-14  Jakub Jelinek  <jakub@redhat.com>
1084
1085         PR target/32337
1086         * config/ia64/ia64.c (find_gr_spill): Don't decrement
1087         current_frame_info.n_local_regs.  Don't return emitted local
1088         regs.
1089         (ia64_compute_frame_size): Improve unwind hack to put
1090         RP, PFS, FP in that order by allowing some of the registers
1091         been already emitted, as long as they are emitted to the
1092         desired register.
1093
1094 2007-09-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1095
1096         * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx,
1097         vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats,
1098         vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics.
1099
1100 2007-09-13  Eric Christopher  <echristo@apple.com>
1101             Kenneth Zadeck <zadeck@naturalbridge.com>
1102
1103         * dse.c (find_shift_sequence): New function.
1104         (replace_read): Add case to remove read if it requires shift.
1105         * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment.
1106         
1107 2007-09-13  Tom Tromey  <tromey@redhat.com>
1108
1109         * c-common.c (fname_as_string): Update.
1110         * c-parser.c (c_parser) <lex_untranslated_string>: New field.
1111         (c_lex_one_token): Update.  Add 'parser' argument.
1112         (c_parser_simple_asm_expr): Update.
1113         (c_parser_attributes): Update.
1114         (c_parser_asm_statement): Update.
1115         (c_parser_asm_operands): Update.
1116         (c_parser_peek_token): Update.
1117         (c_parser_peek_2nd_token): Update.
1118         * c-lex.c (c_lex_string_translate): Remove.
1119         (c_lex_return_raw_strings): Likewise.
1120         (c_lex_with_flags): Added 'lex_flags' argument.
1121         (lex_string): Added 'translate' argument.
1122         * c-pragma.h (c_lex_with_flags): Update.
1123         (c_lex_string_translate, c_lex_return_raw_strings): Remove.
1124         (C_LEX_STRING_NO_TRANSLATE): New define.
1125         (C_LEX_RAW_STRINGS): Likewise.
1126
1127 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1128
1129         From Jie Zhang:
1130         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES,
1131         BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40,
1132         BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU.
1133         (bfin_init_builtins): Initialize __builtin_bfin_ones,
1134         __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16,
1135         __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32,
1136         __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub,
1137         __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40,
1138         __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16.
1139         (bdesc_1arg): Add __builtin_bfin_ones.
1140         (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40,
1141         __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40,
1142         and __builtin_bfin_csqu_fr16.
1143         * config/bfin/bfin.md (UNSPEC_ONES): New constant.
1144         (ones): New define_insn.
1145         (ssaddhi3_parts): New define_insn.
1146         (sssubhi3_parts): New define_insn.
1147         (flag_mulhi_parts): New define_insn.
1148
1149 2007-09-13  Seongbae Park <seongbae.park@gmail.com>
1150
1151         * common.opt (femit-class-debug-always): Turn off by default.
1152
1153 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1154
1155         * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns.
1156         * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them.
1157
1158 2007-09-13  James E. Wilson  <wilson@specifix.com>
1159
1160         PR tree-optimization/33389
1161         * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true,
1162         then set build_loads before returning.
1163
1164 2007-09-13  Sandra Loosemore  <sandra@codesourcery.com>
1165             David Ung  <davidu@mips.com>
1166
1167         * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with
1168         {d}addiu and a negative immediate such that it works with MIPS16
1169         instructions.
1170         
1171 2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>
1172
1173         PR bootstrap/33418
1174         * configure.ac (ld_vers): Support Linux linker.
1175         * configure: Regenerated.
1176
1177 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
1178             Sandra Loosemore <sandra@codesourcery.com>
1179
1180         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete.
1181         (SYMBOL_REF_MIPS16_FUNC_P): Delete.
1182         * config/mips/mips.c (mips_attribute_table): Turn mips16 and
1183         nomips16 into decl attributes.
1184         (TARGET_INSERT_ATTRIBUTES): Override.
1185         (TARGET_MERGE_DECL_ATTRIBUTES): Likewise.
1186         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true.
1187         (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of...
1188         (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions.
1189         (mips_comp_type_attributes): Remove mips16 and nomips16 handling.
1190         (mips_use_mips16_mode_p): Reimplement as a function that takes
1191         a decl and considers only decl attributes.  If the decl is nested
1192         function, use its parent attributes.
1193         (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p
1194         instead of SYMBOL_REF_MIPS16_FUNC_P.
1195         (mips_set_mips16_mode): Move call to sorry here from old
1196         mips_use_mips16_mode_p.
1197         (mflip_mips16_entry): New structure.
1198         (mflip_mips16_htab): New variable.
1199         (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions.
1200         (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise.
1201         (mips_merge_decl_attributes): New function.
1202         (mips_set_current_function): Reinstate call to mips_set_mips16_mode.
1203         Use mips_use_mips16_mode_p.
1204         (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of
1205         SYMBOL_REF_MIPS16_FUNC_P.
1206         (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC.
1207
1208 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
1209
1210         * c-parser.c (c_parser_struct_declaration): Check for a null return.
1211
1212 2007-09-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1213
1214         PR driver/33309
1215         * gcc.c (xputenv): Make argument const, and use CONST_CAST.
1216
1217 2007-09-12  Michael Meissner  <michael.meissner@amd.com>
1218             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1219             Tony Linthicum  <tony.linthicum@amd.com>
1220
1221         * tree.h (function_args_iterator): New type to iterate over
1222         function arguments.
1223         (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over
1224         function arguments providing a pointer to the argument.
1225         (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over
1226         function arguments providing the argument.
1227         (function_args_iter_init): Inline function to initialize
1228         function_args_iterator.
1229         (function_args_iter_cond_ptr): Inline function to return the next
1230         pointer to hold the argument.
1231         (function_args_iter_cond): Inline function to return the next
1232         argument.
1233         (function_args_iter_cond_next): Advance the function args
1234         iterator.
1235         (stdarg_p): New function, return true if variable argument
1236         function.
1237         (prototype_p): New function, return true if function is
1238         prototyped.
1239         (function_args_count): New function, count the number of arguments
1240         of a function.
1241
1242         * tree.c (stdarg_p): New function, return true if variable
1243         argument function.
1244         (prototype_p): New function, return true if function is
1245         prototyped.
1246
1247         * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
1248         (TARGET_ROUND): New macro for the round/ptest instructions which
1249         are shared between SSE4.1 and SSE5.
1250         (OPTION_MASK_ISA_ROUND): Ditto.
1251         (OPTION_ISA_ROUND): Ditto.
1252         (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
1253         (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
1254
1255         * config/i386/i386.opt (-msse5): New switch for SSE5 support.
1256         (-mfused-madd): New switch to give users control over whether the
1257         compiler optimizes to use the multiply/add SSE5 instructions.
1258
1259         * config/i386/i386.c (m_AMD_MULTIPLE): Rename from
1260         m_ATHLON_K8_AMDFAM10, and change all uses.
1261         (enum pta_flags): Add PTA_SSE5.
1262         (ix86_handle_option): Turn off 3dnow if -msse5.
1263         (override_options): Add SSE5 support.
1264         (print_operand): %Y prints comparison codes for SSE5 com/pcom
1265         instructions.
1266         (ix86_expand_sse_movcc): Add SSE5 support.
1267         (ix86_expand_sse5_unpack): New function to use pperm to unpack a
1268         vector type to the next largest size.
1269         (ix86_expand_sse5_pack): New function to use pperm to pack a
1270         vector type to the next smallest size.
1271         (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
1272         (IX86_BUILTIN_FMADDSD): Ditto.
1273         (IX86_BUILTIN_FMADDPS): Ditto.
1274         (IX86_BUILTIN_FMADDPD): Ditto.
1275         (IX86_BUILTIN_FMSUBSS): Ditto.
1276         (IX86_BUILTIN_FMSUBSD): Ditto.
1277         (IX86_BUILTIN_FMSUBPS): Ditto.
1278         (IX86_BUILTIN_FMSUBPD): Ditto.
1279         (IX86_BUILTIN_FNMADDSS): Ditto.
1280         (IX86_BUILTIN_FNMADDSD): Ditto.
1281         (IX86_BUILTIN_FNMADDPS): Ditto.
1282         (IX86_BUILTIN_FNMADDPD): Ditto.
1283         (IX86_BUILTIN_FNMSUBSS): Ditto.
1284         (IX86_BUILTIN_FNMSUBSD): Ditto.
1285         (IX86_BUILTIN_FNMSUBPS): Ditto.
1286         (IX86_BUILTIN_FNMSUBPD): Ditto.
1287         (IX86_BUILTIN_PCMOV_V2DI): Ditto.
1288         (IX86_BUILTIN_PCMOV_V4SI): Ditto.
1289         (IX86_BUILTIN_PCMOV_V8HI): Ditto.
1290         (IX86_BUILTIN_PCMOV_V16QI): Ditto.
1291         (IX86_BUILTIN_PCMOV_V4SF): Ditto.
1292         (IX86_BUILTIN_PCMOV_V2DF): Ditto.
1293         (IX86_BUILTIN_PPERM): Ditto.
1294         (IX86_BUILTIN_PERMPS): Ditto.
1295         (IX86_BUILTIN_PERMPD): Ditto.
1296         (IX86_BUILTIN_PMACSSWW): Ditto.
1297         (IX86_BUILTIN_PMACSWW): Ditto.
1298         (IX86_BUILTIN_PMACSSWD): Ditto.
1299         (IX86_BUILTIN_PMACSWD): Ditto.
1300         (IX86_BUILTIN_PMACSSDD): Ditto.
1301         (IX86_BUILTIN_PMACSDD): Ditto.
1302         (IX86_BUILTIN_PMACSSDQL): Ditto.
1303         (IX86_BUILTIN_PMACSSDQH): Ditto.
1304         (IX86_BUILTIN_PMACSDQL): Ditto.
1305         (IX86_BUILTIN_PMACSDQH): Ditto.
1306         (IX86_BUILTIN_PMADCSSWD): Ditto.
1307         (IX86_BUILTIN_PMADCSWD): Ditto.
1308         (IX86_BUILTIN_PHADDBW): Ditto.
1309         (IX86_BUILTIN_PHADDBD): Ditto.
1310         (IX86_BUILTIN_PHADDBQ): Ditto.
1311         (IX86_BUILTIN_PHADDWD): Ditto.
1312         (IX86_BUILTIN_PHADDWQ): Ditto.
1313         (IX86_BUILTIN_PHADDDQ): Ditto.
1314         (IX86_BUILTIN_PHADDUBW): Ditto.
1315         (IX86_BUILTIN_PHADDUBD): Ditto.
1316         (IX86_BUILTIN_PHADDUBQ): Ditto.
1317         (IX86_BUILTIN_PHADDUWD): Ditto.
1318         (IX86_BUILTIN_PHADDUWQ): Ditto.
1319         (IX86_BUILTIN_PHADDUDQ): Ditto.
1320         (IX86_BUILTIN_PHSUBBW): Ditto.
1321         (IX86_BUILTIN_PHSUBWD): Ditto.
1322         (IX86_BUILTIN_PHSUBDQ): Ditto.
1323         (IX86_BUILTIN_PROTB): Ditto.
1324         (IX86_BUILTIN_PROTW): Ditto.
1325         (IX86_BUILTIN_PROTD): Ditto.
1326         (IX86_BUILTIN_PROTQ): Ditto.
1327         (IX86_BUILTIN_PROTB_IMM): Ditto.
1328         (IX86_BUILTIN_PROTW_IMM): Ditto.
1329         (IX86_BUILTIN_PROTD_IMM): Ditto.
1330         (IX86_BUILTIN_PROTQ_IMM): Ditto.
1331         (IX86_BUILTIN_PSHLB): Ditto.
1332         (IX86_BUILTIN_PSHLW): Ditto.
1333         (IX86_BUILTIN_PSHLD): Ditto.
1334         (IX86_BUILTIN_PSHLQ): Ditto.
1335         (IX86_BUILTIN_PSHAB): Ditto.
1336         (IX86_BUILTIN_PSHAW): Ditto.
1337         (IX86_BUILTIN_PSHAD): Ditto.
1338         (IX86_BUILTIN_PSHAQ): Ditto.
1339         (IX86_BUILTIN_FRCZSS): Ditto.
1340         (IX86_BUILTIN_FRCZSD): Ditto.
1341         (IX86_BUILTIN_FRCZPS): Ditto.
1342         (IX86_BUILTIN_FRCZPD): Ditto.
1343         (IX86_BUILTIN_CVTPH2PS): Ditto.
1344         (IX86_BUILTIN_CVTPS2PH): Ditto.
1345         (IX86_BUILTIN_COMEQSS): Ditto.
1346         (IX86_BUILTIN_COMNESS): Ditto.
1347         (IX86_BUILTIN_COMLTSS): Ditto.
1348         (IX86_BUILTIN_COMLESS): Ditto.
1349         (IX86_BUILTIN_COMGTSS): Ditto.
1350         (IX86_BUILTIN_COMGESS): Ditto.
1351         (IX86_BUILTIN_COMUEQSS): Ditto.
1352         (IX86_BUILTIN_COMUNESS): Ditto.
1353         (IX86_BUILTIN_COMULTSS): Ditto.
1354         (IX86_BUILTIN_COMULESS): Ditto.
1355         (IX86_BUILTIN_COMUGTSS): Ditto.
1356         (IX86_BUILTIN_COMUGESS): Ditto.
1357         (IX86_BUILTIN_COMORDSS): Ditto.
1358         (IX86_BUILTIN_COMUNORDSS): Ditto.
1359         (IX86_BUILTIN_COMFALSESS): Ditto.
1360         (IX86_BUILTIN_COMTRUESS): Ditto.
1361         (IX86_BUILTIN_COMEQSD): Ditto.
1362         (IX86_BUILTIN_COMNESD): Ditto.
1363         (IX86_BUILTIN_COMLTSD): Ditto.
1364         (IX86_BUILTIN_COMLESD): Ditto.
1365         (IX86_BUILTIN_COMGTSD): Ditto.
1366         (IX86_BUILTIN_COMGESD): Ditto.
1367         (IX86_BUILTIN_COMUEQSD): Ditto.
1368         (IX86_BUILTIN_COMUNESD): Ditto.
1369         (IX86_BUILTIN_COMULTSD): Ditto.
1370         (IX86_BUILTIN_COMULESD): Ditto.
1371         (IX86_BUILTIN_COMUGTSD): Ditto.
1372         (IX86_BUILTIN_COMUGESD): Ditto.
1373         (IX86_BUILTIN_COMORDSD): Ditto.
1374         (IX86_BUILTIN_COMUNORDSD): Ditto.
1375         (IX86_BUILTIN_COMFALSESD): Ditto.
1376         (IX86_BUILTIN_COMTRUESD): Ditto.
1377         (IX86_BUILTIN_COMEQPS): Ditto.
1378         (IX86_BUILTIN_COMNEPS): Ditto.
1379         (IX86_BUILTIN_COMLTPS): Ditto.
1380         (IX86_BUILTIN_COMLEPS): Ditto.
1381         (IX86_BUILTIN_COMGTPS): Ditto.
1382         (IX86_BUILTIN_COMGEPS): Ditto.
1383         (IX86_BUILTIN_COMUEQPS): Ditto.
1384         (IX86_BUILTIN_COMUNEPS): Ditto.
1385         (IX86_BUILTIN_COMULTPS): Ditto.
1386         (IX86_BUILTIN_COMULEPS): Ditto.
1387         (IX86_BUILTIN_COMUGTPS): Ditto.
1388         (IX86_BUILTIN_COMUGEPS): Ditto.
1389         (IX86_BUILTIN_COMORDPS): Ditto.
1390         (IX86_BUILTIN_COMUNORDPS): Ditto.
1391         (IX86_BUILTIN_COMFALSEPS): Ditto.
1392         (IX86_BUILTIN_COMTRUEPS): Ditto.
1393         (IX86_BUILTIN_COMEQPD): Ditto.
1394         (IX86_BUILTIN_COMNEPD): Ditto.
1395         (IX86_BUILTIN_COMLTPD): Ditto.
1396         (IX86_BUILTIN_COMLEPD): Ditto.
1397         (IX86_BUILTIN_COMGTPD): Ditto.
1398         (IX86_BUILTIN_COMGEPD): Ditto.
1399         (IX86_BUILTIN_COMUEQPD): Ditto.
1400         (IX86_BUILTIN_COMUNEPD): Ditto.
1401         (IX86_BUILTIN_COMULTPD): Ditto.
1402         (IX86_BUILTIN_COMULEPD): Ditto.
1403         (IX86_BUILTIN_COMUGTPD): Ditto.
1404         (IX86_BUILTIN_COMUGEPD): Ditto.
1405         (IX86_BUILTIN_COMORDPD): Ditto.
1406         (IX86_BUILTIN_COMUNORDPD): Ditto.
1407         (IX86_BUILTIN_COMFALSEPD): Ditto.
1408         (IX86_BUILTIN_COMTRUEPD): Ditto.
1409         (IX86_BUILTIN_PCOMEQUB): Ditto.
1410         (IX86_BUILTIN_PCOMNEUB): Ditto.
1411         (IX86_BUILTIN_PCOMLTUB): Ditto.
1412         (IX86_BUILTIN_PCOMLEUB): Ditto.
1413         (IX86_BUILTIN_PCOMGTUB): Ditto.
1414         (IX86_BUILTIN_PCOMGEUB): Ditto.
1415         (IX86_BUILTIN_PCOMFALSEUB): Ditto.
1416         (IX86_BUILTIN_PCOMTRUEUB): Ditto.
1417         (IX86_BUILTIN_PCOMEQUW): Ditto.
1418         (IX86_BUILTIN_PCOMNEUW): Ditto.
1419         (IX86_BUILTIN_PCOMLTUW): Ditto.
1420         (IX86_BUILTIN_PCOMLEUW): Ditto.
1421         (IX86_BUILTIN_PCOMGTUW): Ditto.
1422         (IX86_BUILTIN_PCOMGEUW): Ditto.
1423         (IX86_BUILTIN_PCOMFALSEUW): Ditto.
1424         (IX86_BUILTIN_PCOMTRUEUW): Ditto.
1425         (IX86_BUILTIN_PCOMEQUD): Ditto.
1426         (IX86_BUILTIN_PCOMNEUD): Ditto.
1427         (IX86_BUILTIN_PCOMLTUD): Ditto.
1428         (IX86_BUILTIN_PCOMLEUD): Ditto.
1429         (IX86_BUILTIN_PCOMGTUD): Ditto.
1430         (IX86_BUILTIN_PCOMGEUD): Ditto.
1431         (IX86_BUILTIN_PCOMFALSEUD): Ditto.
1432         (IX86_BUILTIN_PCOMTRUEUD): Ditto.
1433         (IX86_BUILTIN_PCOMEQUQ): Ditto.
1434         (IX86_BUILTIN_PCOMNEUQ): Ditto.
1435         (IX86_BUILTIN_PCOMLTUQ): Ditto.
1436         (IX86_BUILTIN_PCOMLEUQ): Ditto.
1437         (IX86_BUILTIN_PCOMGTUQ): Ditto.
1438         (IX86_BUILTIN_PCOMGEUQ): Ditto.
1439         (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
1440         (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
1441         (IX86_BUILTIN_PCOMEQB): Ditto.
1442         (IX86_BUILTIN_PCOMNEB): Ditto.
1443         (IX86_BUILTIN_PCOMLTB): Ditto.
1444         (IX86_BUILTIN_PCOMLEB): Ditto.
1445         (IX86_BUILTIN_PCOMGTB): Ditto.
1446         (IX86_BUILTIN_PCOMGEB): Ditto.
1447         (IX86_BUILTIN_PCOMFALSEB): Ditto.
1448         (IX86_BUILTIN_PCOMTRUEB): Ditto.
1449         (IX86_BUILTIN_PCOMEQW): Ditto.
1450         (IX86_BUILTIN_PCOMNEW): Ditto.
1451         (IX86_BUILTIN_PCOMLTW): Ditto.
1452         (IX86_BUILTIN_PCOMLEW): Ditto.
1453         (IX86_BUILTIN_PCOMGTW): Ditto.
1454         (IX86_BUILTIN_PCOMGEW): Ditto.
1455         (IX86_BUILTIN_PCOMFALSEW): Ditto.
1456         (IX86_BUILTIN_PCOMTRUEW): Ditto.
1457         (IX86_BUILTIN_PCOMEQD): Ditto.
1458         (IX86_BUILTIN_PCOMNED): Ditto.
1459         (IX86_BUILTIN_PCOMLTD): Ditto.
1460         (IX86_BUILTIN_PCOMLED): Ditto.
1461         (IX86_BUILTIN_PCOMGTD): Ditto.
1462         (IX86_BUILTIN_PCOMGED): Ditto.
1463         (IX86_BUILTIN_PCOMFALSED): Ditto.
1464         (IX86_BUILTIN_PCOMTRUED): Ditto.
1465         (IX86_BUILTIN_PCOMEQQ): Ditto.
1466         (IX86_BUILTIN_PCOMNEQ): Ditto.
1467         (IX86_BUILTIN_PCOMLTQ): Ditto.
1468         (IX86_BUILTIN_PCOMLEQ): Ditto.
1469         (IX86_BUILTIN_PCOMGTQ): Ditto.
1470         (IX86_BUILTIN_PCOMGEQ): Ditto.
1471         (IX86_BUILTIN_PCOMFALSEQ): Ditto.
1472         (IX86_BUILTIN_PCOMTRUEQ): Ditto.
1473         (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to
1474         OPTION_MASK_ISA_ROUND for instructions that are shared between
1475         SSE4.1 and SSE5.
1476         (bdesc_2arg): Ditto.
1477         (bdesc_sse_3arg): Ditto.
1478         (enum multi_arg_type): New enum for describing the various SSE5
1479         intrinsic argument types.
1480         (bdesc_multi_arg): New table for SSE5 intrinsics.
1481         (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
1482         (ix86_expand_multi_arg_builtin): New function for creating SSE5
1483         intrinsics.
1484         (ix86_expand_builtin): Add SSE5 intrinsic support.
1485         (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
1486         operand instructions.
1487         (ix86_expand_sse5_multiple_memory): New function to split the
1488         second memory reference from SSE5 instructions.
1489         (type_has_variadic_args_p): Delete in favor of stdarg_p.
1490         (ix86_return_pops_args): Use stdarg_p to determine if the function
1491         has variable arguments.
1492         (ix86_setup_incoming_varargs): Ditto.
1493         (x86_this_parameter): Ditto.
1494
1495         * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
1496         declaration.
1497         (ix86_expand_sse5_pack): Ditto.
1498         (ix86_sse5_valid_op_p): Ditto.
1499         (ix86_expand_sse5_multiple_memory): Ditto.
1500
1501         * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
1502         constant for SSE5 support.
1503         (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
1504         (UNSPEC_SSE5_TRUEFALSE): Ditto.
1505         (UNSPEC_SSE5_PERMUTE): Ditto.
1506         (UNSPEC_SSE5_ASHIFT): Ditto.
1507         (UNSPEC_SSE5_LSHIFT): Ditto.
1508         (UNSPEC_FRCZ): Ditto.
1509         (UNSPEC_CVTPH2PS): Ditto.
1510         (UNSPEC_CVTPS2PH): Ditto.
1511         (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
1512         (PCOM_TRUE): Ditto.
1513         (COM_FALSE_S): Ditto.
1514         (COM_FALSE_P): Ditto.
1515         (COM_TRUE_S): Ditto.
1516         (COM_TRUE_P): Ditto.
1517         (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
1518         (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
1519         types.
1520         (memory attribute): Ditto.
1521         (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
1522         Use SSE4_1_ROUND_* constants instead of hard coded numbers.
1523         (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
1524         (floor<mode>2): Ditto.
1525         (ceil<mode>2): Ditto.
1526         (btrunc<mode>2): Ditto.
1527         (nearbyintdf2): Ditto.
1528         (nearbyintsf2): Ditto.
1529         (sse_setccsf): Disable if SSE5.
1530         (sse_setccdf): Ditto.
1531         (sse5_setcc<mode>): New support for SSE5 conditional move.
1532         (sse5_pcmov_<mode>): Ditto.
1533
1534         * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
1535         (SSEMODEF4): Ditto.
1536         (SSEMODEF2P): Ditto.
1537         (ssemodesuffixf4): New mode attribute for SSE5.
1538         (ssemodesuffixf2s): Ditto.
1539         (ssemodesuffixf2c): Ditto.
1540         (sserotatemax): Ditto.
1541         (ssescalarmode): Ditto.
1542         (sse_maskcmpv4sf3): Disable if SSE5.
1543         (sse_maskcmpv2df3): Ditto.
1544         (sse_vmmaskcmpv4sf3): Ditto.
1545         (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add
1546         instructions.
1547         (sse5_vmfmadd<mode>4): Ditto.
1548         (sse5_fmsub<mode>4): Ditto.
1549         (sse5_vmfmsub<mode>4): Ditto.
1550         (sse5_fnmadd<mode>4): Ditto.
1551         (sse5_vmfnmadd<mode>4): Ditto.
1552         (sse5_fnmsub<mode>4): Ditto.
1553         (sse5_vmfnmsub<mode>4): Ditto.
1554         (sse5i_fmadd<mode>4): Ditto.
1555         (sse5i_fmsub<mode>4): Ditto.
1556         (sse5i_fnmadd<mode>4): Ditto.
1557         (sse5i_fnmsub<mode>4): Ditto.
1558         (sse5i_vmfmadd<mode>4): Ditto.
1559         (sse5i_vmfmsub<mode>4): Ditto.
1560         (sse5i_vmfnmadd<mode>4): Ditto.
1561         (sse5i_vmfnmsub<mode>4): Ditto.
1562         (mulv16qi3): Add SSE5 support.
1563         (mulv4si3): Ditto.
1564         (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
1565         (sse2_mulv4si3): Disable if SSE5.
1566         (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
1567         (sse4_1_roundps): Ditto.
1568         (sse4_1_roundsd): Ditto.
1569         (sse4_1_roundss): Ditto.
1570         (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
1571         be generated.
1572         (sse_maskcmpsf3): Ditto.
1573         (sse_vmmaskcmpv4sf3): Ditto.
1574         (sse2_maskcmpv2df3): Ditto.
1575         (sse2_maskcmpdf3): Ditto.
1576         (sse2_vmmaskcmpv2df3): Ditto.
1577         (sse2_eq<mode>3): Ditto.
1578         (sse2_gt<mode>3): Ditto.
1579         (sse5_pcmov_<mode>): Add SSE5 support.
1580         (vec_unpacku_hi_v16qi): Ditto.
1581         (vec_unpacks_hi_v16qi): Ditto.
1582         (vec_unpacku_lo_v16qi): Ditto.
1583         (vec_unpacks_lo_v16qi): Ditto.
1584         (vec_unpacku_hi_v8hi): Ditto.
1585         (vec_unpacks_hi_v8hi): Ditto.
1586         (vec_unpacku_lo_v8hi): Ditto.
1587         (vec_unpacks_lo_v8hi): Ditto.
1588         (vec_unpacku_hi_v4si): Ditto.
1589         (vec_unpacks_hi_v4si): Ditto.
1590         (vec_unpacku_lo_v4si): Ditto.
1591         (vec_unpacks_lo_v4si): Ditto.
1592         (sse5_pmacsww): New SSE5 intrinsic insn.
1593         (sse5_pmacssww): Ditto.
1594         (sse5_pmacsdd): Ditto.
1595         (sse5_pmacssdd): Ditto.
1596         (sse5_pmacssdql): Ditto.
1597         (sse5_pmacssdqh): Ditto.
1598         (sse5_pmacsdqh): Ditto.
1599         (sse5_pmacsswd): Ditto.
1600         (sse5_pmacswd): Ditto.
1601         (sse5_pmadcsswd): Ditto.
1602         (sse5_pmadcswd): Ditto.
1603         (sse5_pcmov_<move>): Conditional move support on SSE5.
1604         (sse5_phaddbw): New SSE5 intrinsic insn.
1605         (sse5_phaddbd): Ditto.
1606         (sse5_phaddbq): Ditto.
1607         (sse5_phaddwd): Ditto.
1608         (sse5_phaddwq): Ditto.
1609         (sse5_phadddq): Ditto.
1610         (sse5_phaddubw): Ditto.
1611         (sse5_phaddubd): Ditto.
1612         (sse5_phaddubq): Ditto.
1613         (sse5_phadduwd): Ditto.
1614         (sse5_phadduwq): Ditto.
1615         (sse5_phaddudq): Ditto.
1616         (sse5_phsubbw): Ditto.
1617         (sse5_phsubwd): Ditto.
1618         (sse5_phsubdq): Ditto.
1619         (sse5_pperm): Ditto.
1620         (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
1621         (sse5_pperm_zero_v16qi_v8hi): Ditto.
1622         (sse5_pperm_sign_v8hi_v4si): Ditto.
1623         (sse5_pperm_zero_v8hi_v4si): Ditto.
1624         (sse5_pperm_sign_v4si_v2di): Ditto.
1625         (sse5_pperm_sign_v4si_v2di): Ditto.
1626         (sse5_pperm_pack_v2di_v4si): Ditto.
1627         (sse5_pperm_pack_v4si_v8hi): Ditto.
1628         (sse5_pperm_pack_v8hi_v16qi): Ditto.
1629         (sse5_perm<mode>): New SSE5 intrinsic insn.
1630         (rotl<mode>3): Ditto.
1631         (sse5_rotl<mode>3): Ditto.
1632         (sse5_ashl<mode>3): Ditto.
1633         (sse5_lshl<mode>3): Ditto.
1634         (sse5_frcz<mode>2): Ditto.
1635         (sse5s_frcz<mode>2): Ditto.
1636         (sse5_cvtph2ps): Ditto.
1637         (sse5_cvtps2ph): Ditto.
1638         (sse5_vmmaskcmp<mode>3): Ditto.
1639         (sse5_com_tf<mode>3): Ditto.
1640         (sse5_maskcmp<mode>3): Ditto.
1641         (sse5_maskcmp_uns<mode>3): Ditto.
1642         (sse5_maskcmp_uns2<mode>3): Ditto.
1643         (sse5_pcom_tf<mode>3): Ditto.
1644         
1645         * config/i386/predicates.md (const_0_to_31_operand): New predicate
1646         to match 0..31.
1647         (sse5_comparison_float_operator): New predicate to match the
1648         comparison operators supported by the SSE5 com instruction.
1649         (ix86_comparison_int_operator): New predicate to match just the
1650         signed int comparisons.
1651         (ix86_comparison_uns_operator): New predicate to match just the
1652         unsigned int comparisons.
1653
1654         * doc/invoke.texi (-msse5): Add documentation.
1655         (-mfused-madd): Ditto.
1656
1657         * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
1658
1659         * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
1660         mmintrin-common.h.
1661         (x86_64-*-*): Ditto.
1662
1663         * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
1664
1665         * config/i386/bmmintrin.h: New file, provide common x86 compiler
1666         intrinisics for SSE5.
1667
1668         * config/i386/smmintrin.h: Move instructions shared with SSE5 to
1669         mmintrin-common.h.
1670
1671         * config/i386/mmintrin-common.h: New file, to contain common
1672         instructions between SSE4.1 and SSE5.
1673
1674         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
1675         FOREACH_FUNCTION_ARGS to iterate over the argument list.
1676         (gen_regparm_prefix): Ditto.
1677
1678         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
1679         FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
1680         prototype_p to determine if a function is prototyped.
1681
1682 2007-09-12  Janis Johnson  <janis187@us.ibm.com>
1683
1684         * config/dfp-bit.c (dfp_conversion_exception): New function.
1685         (DFP_TO_DFP) Add new variants to use direct conversions in decNumber.
1686         (DFP_TO_INT): Ditto.
1687         (INT_TO_DFP): Ditto.
1688         * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New.
1689
1690 2007-09-12  Jakub Jelinek  <jakub@redhat.com>
1691
1692         PR target/32338
1693         * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage
1694         before sp restoration even when total_size is 0, but
1695         frame_pointer_needed.
1696
1697 2007-09-12  Bob Wilson  <bob.wilson@acm.org>
1698
1699         * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy.
1700         (xtensa_copy_incoming_a7): Use start_sequence instead of
1701         push_to_sequence.  Stash insns in vararg_a7_copy for builtin_saveregs.
1702         (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start
1703         of the saveregs sequence.
1704
1705 2007-09-12  Richard Sandiford  <richard@codesourcery.com>
1706
1707         * c-tree.h (grokfield): Add a "tree *" argument.
1708         * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes.
1709         Chain nested decl attributes to it.  Don't call decl_attributes here.
1710         (groktypename): Pass grokdeclarator a pointer to the attribute list.
1711         (start_decl, grokparm, push_parm_decl, start_function): Likewise.
1712         (grokfield): Take a pointer to the decl's attributes and pass
1713         it to grokdeclarator.
1714         * c-parser.c (c_parser_struct_declaration): Update the calls to
1715         grokfield.  Call decl_attributes for anonymous struct and union
1716         fields.
1717
1718 2007-09-12  Jan Hubicka  <jh@suse.cz>
1719
1720         * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1721
1722 2007-09-12  Ira Rosen  <irar@il.ibm.com>
1723
1724         PR tree-optimization/32377
1725         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish
1726         between positive and negative dependence distance using DDR_REVERSED_P.
1727
1728 2007-09-12  Dorit Nuzman  <dorit@il.ibm.com>
1729
1730         PR tree-optimization/33373
1731         * tree-vect-analyze (vect_determine_vectorization_factor): Call 
1732         TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. 
1733
1734 2007-09-12  Jan Hubicka  <jh@suse.cz>
1735
1736         PR target/33393
1737         * i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): Disable
1738         for !SSE_MATH
1739
1740 2007-09-12  Christian Bruel  <christian.bruel@st.com>
1741
1742         * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs.
1743         * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. 
1744         
1745 2007-09-12  Ira Rosen  <irar@il.ibm.com>
1746
1747         * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector
1748         for oprnd1 if not required.
1749         (vectorizable_operation): Use scalar operand in SLP in case of 
1750         shift with scalar argument.
1751
1752 2007-09-12  Ira Rosen  <irar@il.ibm.com>
1753
1754         * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and minimum 
1755         to 1.
1756
1757 2007-09-11  James E. Wilson  <wilson@specifix.com>
1758
1759         * defaults.h (DWARF2_UNWIND_INFO): Don't define if
1760         TARGET_UNWIND_INFO is defined.
1761         * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef
1762         after definition.
1763
1764 2007-09-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1765
1766         * config/sh/sh.c (calc_live_regs): Use
1767         current_function_saves_all_registers instead of
1768         current_function_has_nonlocal_label.
1769         (sh_allocate_initial_value): Likewise.
1770         (sh_get_pr_initial_val): Likewise.
1771         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise.
1772         * config/sh/sh.md (load_ra): Likewise.
1773
1774 2007-09-12  Hans-Peter Nilsson  <hp@axis.com>
1775
1776         * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc.
1777
1778         PR target/33360
1779         * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in
1780         GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation.
1781
1782 2007-09-12  Sa Liu  <saliu@de.ibm.com>
1783
1784         * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as
1785         operands to DFmode GE or LE compares.
1786
1787 2007-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1788
1789         * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
1790         REG_CLASS_NAMES): Add P0REGS.
1791         (REGNO_REG_CLASS): Return it where appropriate.
1792         (REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
1793         (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
1794         * doc/md.texi (Blackfin family): Document 'q' constraints.
1795
1796 2007-09-11  Steve Kenton  <skenton@ou.edu>
1797
1798         * pa/linux-unwind.h: Guard with inhibit_libc.
1799         * pa/hpux-unwind.h: Likewise.
1800
1801 2007-09-11  David Daney  <ddaney@avtrex.com>
1802
1803         * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
1804         * doc/install.texi: Document new --with-llsc and --without-llsc
1805         options.
1806         * config.gcc: Handle --with-llsc and --without-llsc configure options.
1807         * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
1808         in %| and %- operand codes.  Depend on GENERATE_SYNC instead of
1809         ISA_HAS_SYNC.
1810         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
1811         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1812         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1813         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1814         sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
1815         GENERATE_LL_SC instead of ISA_HAS_LL_SC.
1816         * config/mips/mips.opt (mllsc): New option.
1817         * config/mips/mips.c (mips_llsc): Define variable.
1818         (mips_handle_option): Handle mllsc option.
1819         (override_options): Set mips_print_operand_punct for '|' and '-'.
1820         (print_operand): Add new %| and %- operand codes.
1821         * config/mips/mips.h (mips_llsc_setting): New enum type.
1822         (mips_llsc): Declare.
1823         (OPTION_DEFAULT_SPECS): Add llsc handling.
1824         (GENERATE_SYNC): New macro.
1825         (GENERATE_LL_SC): New macro.
1826         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
1827         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1828         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
1829         in %| and %- operand codes.
1830
1831 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
1832
1833         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
1834         TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
1835
1836 2007-09-11  Jason Merrill  <jason@redhat.com>
1837
1838         PR middle-end/27945
1839         * stor-layout.c (layout_decl): Do pack variable size fields.    
1840
1841 2007-09-11  Maxim Kuvyrkov  <maxim@codesourcery.com>
1842
1843         * config/m68k/predicates.md (movsi_const0_operand,
1844         non_symbolic_call_operand): New predicates.
1845
1846         * config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
1847         New constraints.
1848         * doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
1849         Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
1850         CW, CZ, CS, Ap and Ac.
1851
1852         * config/m68k/m68k.md (UNSPEC_IB): New constant.
1853         (constraints.md): New include.
1854         (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
1855         opx_mem, opy_mem, op_mem, guess, split): New attributes.
1856         (movdf_internal): Name pattern.  Fix to use alternatives.  Add split.
1857         Specify attributes.
1858         (pushdi): Add split.
1859         (tstsi_internal): Name pattern.  Fix to use alternatives.  Specify
1860         attributes.  Split tstsi_internal_68020_cf from it.
1861         (tstsi_internal_68020_cf): New pattern.
1862         (tsthi_internal, tstqi_internal): Name pattern.  Specify attributes.
1863         (tst<mode>_cf): Specify attributea.
1864         (cmpsi_cf): Name pattern.  Specify attributes.
1865         (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
1866         (pushexthisi_const): Fix to use alternatives.  Specify
1867         attributes.
1868         (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
1869         from it.  Fix to use alternatives.  Specify attributes.
1870         (movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
1871         (movsi_cf, movstrictqi_cf): Fix to use alternatives.  Specify
1872         attributes.
1873         (movsf_cf_soft): Specify attributes.
1874         (movdf_cf_soft): Add split.
1875         (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
1876         cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
1877         68k_extendqisi2, truncdfsf2_cf): Specify attributes.
1878         (truncdfsf2_68881): Name pattern.  Specify attributes.
1879         (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
1880         floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
1881         fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
1882         Specify attributes.
1883         (addsi3_5200): Fix to use alternatives.  Specify attributes.
1884         Add splits.
1885         (add<mode>3_cf, subdi_dishl32): Specify attributes.
1886         (subsi3): Add alternative for subq.l.  Specify attributes.
1887         (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
1888         (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern.  Specify
1889         attributes.
1890         (umulhisi3): Specify attributes.
1891         (mulhisisi3_z): Name pattern.  Specify attributes.
1892         (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
1893         sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
1894         subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
1895         bsetmemqi): Specify attributes.
1896         (bsetmemqi_ext): Name pattern.  Specify attributes.
1897         (bclrmemqi): Specify attributes.
1898         (bclrmemqi_ext, scc, sls): Name pattern.  Specify attributes.
1899         (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
1900         attributes.
1901         (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
1902         pattern.  Specify attributes.
1903         (jump): Specify attributes.
1904         (tablejump_internal): Name pattern.  Specify attributes.
1905         (call_value): Split into non_symbolic_call_value,
1906         symbolic_call_value_jsr, symbolic_call_value_bsr.  Fix to use
1907         alternatives.  Specify attributes.
1908         (non_symbolic_call_value, symbolic_call_value_jsr,
1909         symbolic_call_value_bsr): New patterns.
1910         (nop, return, unlink, indirect_jump): Specify attributes.
1911         (trap): Fix condition.  Specify attributes.
1912         (ib): New pattern.
1913
1914         * config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
1915         (override_options): Initialize it.  Initialize m68k_sched_cpu.
1916         (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
1917         (const_method): Make global, rename to m68k_const_method.
1918         (const_int_cost, output_move_const_into_data_reg): Update.
1919         (output_move_double): Parametrize to emit rtl code, rename to
1920         handle_move_double.
1921         (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
1922         emit_movsi): New static functions.
1923         (output_move_double): New function with semantics of old
1924         output_move_double.
1925         (m68k_emit_move_double): New function.
1926         (m68k_sched_cpu): New variable.
1927         (attr_op_type): New enum.
1928         (sched_guess_p): New variable.
1929         (sched_address_type, sched_operand_type, sched_attr_op_type):
1930         New static functions.
1931         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
1932         m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
1933         (sched_branch_type): New static variable.
1934         (m68k_sched_branch_type): New function.
1935         * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
1936         (m68k_symbolic_call_var): Declare.
1937         (M68K_CONST_METHOD): Rename from CONST_METHOD.  Move here from m68k.c.
1938         (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
1939         m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
1940         m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
1941         Declare.
1942
1943 2007-09-11  Jakub Jelinek  <jakub@redhat.com>
1944
1945         * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
1946         * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
1947         error if __builtin_va_arg_pack_len () wasn't optimized out during
1948         inlining.
1949         * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
1950         with the number of inline's anonymous arguments.
1951         * doc/extend.texi: Document __builtin_va_arg_pack_len ().
1952
1953 2007-09-11  Zdenek Dvorak  <ook@ucw.cz>
1954
1955         * fold-const.c (extract_muldiv_1): Do not simplify
1956         var * c * c to var.
1957
1958 2007-09-11  Jan Hubicka <jh@suse.cz>
1959
1960         * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
1961         (TARGET_INTER_UNIT_CONVERSIONS): New.
1962         * i386.md (floatsi expanders): Remove redundant check for SImode
1963         source; offload to memory when asked for.
1964         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
1965         floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
1966         Update conditions;
1967         (floatsisf2_mixed_memory, floatsisf2_sse_memory,
1968         floatsidf2_mixed_memory, floatsidf2_sse_memory
1969         floatdisf2_mixed_memory, floatsisf2_sse_memory,
1970         floatsidf2_mixed_memory, floatsidf2_sse_memory): New.
1971
1972 2007-09-11  Jan Hubicka <jh@suse.cz>
1973
1974         * toplev.c (process_options): all frontends now do unit-at-a-time.
1975         * cgraphunit.c: update comments.
1976         (cgraph_expand_function): call passmanager dirrectly; emit thunks.
1977         * c-decl.c (finish_function): use cgraph_add_new_function.
1978         * function.c (expand_function_end): We are always unit-at-a-time.
1979
1980 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
1981
1982         * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
1983         settings for MIPS16.
1984         (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.
1985
1986 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
1987
1988         * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
1989         SYMBOL_FORCE_TO_MEM constants.
1990         (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
1991         (mips16_rewrite_pool_refs_info): New structure.
1992         (mips16_rewrite_pool_constant): New function, split out from...
1993         (mips16_rewrite_pool_refs): ...here.  Take a pointer to a
1994         mips16_rewrite_pool_refs_info structure rather than a pointer
1995         to a constant pool.  Force force_to_mem_operands into memory.
1996         (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
1997         * config/mips/predicates.md (force_to_mem_operand): New predicate.
1998         * config/mips/constraints.md (kf): New constraint.
1999         * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
2000         (*movsi_mips16): Likewise.
2001
2002 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
2003             Nigel Stephens  <nigel@mips.com>
2004             David Ung  <davidu@mips.com>
2005
2006         * config/mips/mips.h (CONSTANT_POOL_COST): Move to...
2007         * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
2008         (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
2009         (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
2010         (mips_zero_extend_cost): New functions.
2011         (mips_rtx_costs): Treat COMPARE constants as having zero cost.
2012         Use the new functions.  Tweak many cost estimates, both here
2013         and in the new subroutines.  Return false when the cost of the
2014         operands has not been calculated.  Check for *clear_upper32.
2015         Check for floating-point multiply-add, reciprocal and rsqrt
2016         patterns.  Handle comparison and rotation codes.
2017
2018 2007-09-11  Danny Smith  <dannysmith@users.sourceforge.net>
2019
2020         * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
2021         override default.
2022         * config/i386/i386.c (get_dllimport_decl): Don't strip
2023         FASTCALL_PREFIX.
2024
2025 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
2026
2027         PR c/30013
2028         * config/dfp-bit.c: Don't skip TFmode conversions; move strto*
2029         declarations to top.
2030         (DFP_TO_BFP): Use for either XFmode or TFmode.
2031         (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
2032         of BFP_VIA_TYPE.
2033         * config/dfp-bit.h: Include float.h.
2034         (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
2035         double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
2036         which doesn't mean the same thing.
2037         (BFP_KIND): Use 4 to mean TFmode.
2038         (BFP_FMT): Specify the number of decimal digits based on the
2039         number of mantissa digits.
2040         (BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
2041         (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
2042         (STR_TO_BFP): Use strtold for XFmode or TFmode.
2043         (TFtype): Define if TFmode is supported.
2044         * doc/libgcc.texi (Decimal float library routines): Document
2045         TF conversion functions.
2046
2047 2007-09-10  Chao-ying Fu  <fu@mips.com>
2048
2049         * config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
2050         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
2051         (mips_emit_compare): Process fixed-point modes.
2052         (mips_pad_arg_upward): Support fixed-point types.
2053         (override_options): Allow fixed-point modes in accumulators.
2054         (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
2055         (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
2056         V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
2057         (mips_scalar_mode_supported_p): New function to accept fixed-point
2058         modes if the width is not greater than two BITS_PER_WORD.
2059         * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
2060         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2061         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2062         LONG_LONG_ACCUM_TYPE_SIZE): Define.
2063         * config/mips/mips.md ("d"): Update mode attribute for fixed-point
2064         modes.
2065         ("IMODE"): New mode attribute.
2066         (mips-fixed.md): Include.
2067         * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
2068         ACCUM, UACCUM.
2069         * config/mips/mips-fixed.md: New file.
2070
2071 2007-09-11  Ben Elliston  <bje@au.ibm.com>
2072
2073         * config/spu/spu.md: Formatting fixes.
2074
2075 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
2076
2077         * config/dfp-bit.c (dfp_unary_func): Delete.
2078         (dfp_unary_op): Delete.
2079         (dfp_binary_op): Use decFloat functions instead of decNumber
2080         functions for binary operations.
2081         (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
2082         (dnn_binary_op): Call dfp_binary_op with decFloat rather than
2083         DFP_C_TYPE.
2084         (dfp_compare_op): Use decFloat functions insteadof decNumber
2085         functions for comparisons.
2086         (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
2087         (dnn_binary_op): Call dfp_compare_op with decFloat rather than
2088         DFP_C_TYPE.
2089         (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
2090         call to dxx_binary_op and decFloat function.
2091         (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
2092         calls to dxx_binary_op and decFloat function.
2093         * config/dfp-bit.h: Include decFloat header files.
2094         (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
2095         DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
2096         DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
2097         DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.
2098
2099 2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
2100             Jan Sjodin <jan.sjodin@amd.com>
2101
2102         * tree-vect-analyze.c (vect_analyze_operations): Change
2103         comparison of loop iterations with threshold to less than
2104         or equal to instead of less than. Reduce
2105         min_scalar_loop_bound by one.
2106         * tree-vect-transform.c (vect_estimate_min_profitable_iters): 
2107         Change prologue and epilogue iterations estimate to vf/2,
2108         when unknown at compile-time. Change versioning guard
2109         cost to taken_branch_cost. If peeling for alignment is
2110         unknown at compile-time, change peel guard costs to one
2111         taken branch and one not-taken branch per peeled loop.
2112         If peeling for alignment is known but number of scalar loop
2113         iterations is unknown at compile-time, change peel guard
2114         costs to one taken branch per peeled loop. Change the cost
2115         model equation to consider vector iterations as the loop
2116         iterations less the prologue and epilogue iterations.
2117         Change outside vector cost check to less than or equal to
2118         zero instead of equal to zero.
2119         (vect_do_peeling_for_loop_bound): Reduce
2120         min_scalar_loop_bound by one.
2121         * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
2122         TARG_COND_NOT_TAKEN_BRANCH_COST.        
2123         * config/i386/i386.h (processor_costs): Add
2124         scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
2125         vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
2126         vec_align_load_cost, vect_unalign_load_cost,
2127         vec_store_cost, cond_taken_branch_cost,
2128         cond_not_taken_branch_cost.
2129         Define macros for x86 costs.
2130         * config/i386/i386.c:
2131         (size_cost): Set scalar_stmt_cost, scalar_load_cost,
2132         scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
2133         scalar_to_vec_cost, vec_align_load_cost, 
2134         vect_unalign_load_cost, vec_store_cost,
2135         cond_taken_branch_cost, cond_not_taken_branch_cost to one. 
2136         (i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
2137         geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, 
2138         core2_cost, generic64_cost, generic32_cost): Set to default
2139         untuned costs.
2140         (k8_cost, amdfam10_cost): Costs for vectorization tuned.
2141         (x86_builtin_vectorization_cost): New.
2142
2143 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
2144             Ben Elliston  <bje@au.ibm.com>
2145
2146         * dfp.c: Include decimal128Local.h; 
2147         (dfp_byte_swap): Remove.
2148         (encode_decimal32, decode_decimal32): Don't handle endianness.
2149         (encode_decimal64, decode_decimal64): Ditto.
2150         (encode_decimal128, decode_decimal128): Ditto.
2151         * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
2152         (__swap64): Remove.
2153         (host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
2154         (__swap128): Remove
2155         (host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
2156         * Makefile.in (DECNUM_H): Add decimal128Local.h.
2157
2158 2007-09-10  David Daney  <ddaney@avtrex.com>
2159
2160         * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
2161         define_constants.
2162         (memory_barrier): Rewrote as an insn that clobbers memory.
2163
2164 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
2165
2166         * config/mips/mips.c (mips_global_pointer): Check
2167         call_really_used_regs instead of call_used_regs.
2168         (mips_save_reg_p): Likewise.  Save all call-saved registers
2169         if current_function_saves_all_registers.  Fix indentation.
2170         No longer treat $18 as a special case.
2171         (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
2172
2173 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
2174
2175         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
2176         * config/mips/mips.c (mips_cpu_info_table): Mention it in the
2177         the introductory comment.
2178         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
2179         (override_options): Don't test for it.
2180         * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
2181         (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
2182         * config/mips/vr.h: As for config/mips/sde.h.
2183
2184 2007-09-10  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2185             Revital Eres  <eres@il.ibm.com>
2186
2187         * target.h (struct gcc_target.sched): New field: sms_res_mii.
2188         (struct ddg): Define.
2189         * target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
2190         (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
2191         * config/spu/spu.c: Include ddg.h.
2192         (TARGET_SCHED_SMS_RES_MII): Define.
2193         (spu_sms_res_mii): New function to calculate mii.
2194         * modulo-sched (res_MII): Use it.
2195         * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.
2196
2197 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2198
2199         * config/s390/s390.c (s390_dump_pool): Create copy of constant
2200         pool entries since they might hold values that must not be shared.
2201
2202 2007-09-10  Uros Bizjak  <ubizjak@gmail.com>
2203
2204         PR target/33369
2205         * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
2206         Use 'N' operand constraint for op2.
2207         (lshr<mode>3): Ditto.
2208         (ashl<mode>3): Ditto.
2209         (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
2210         (vec_shr_<mode>): Ditto.
2211         * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
2212         IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
2213
2214 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2215
2216         * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
2217         Change mode macro in the last real_2expN parameter to uppercase.
2218
2219 2007-09-10  Michael Matz  <matz@suse.de>
2220
2221         * tree-pass.h (pass_cselim): Declare new pass.
2222         * passes.c (init_optimization_passes): Link in pass_cselim.
2223         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
2224         tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
2225         cond_store_replacement.
2226         (condstoretemp): New static variable.
2227         (cond_store_replacement): New function.
2228         (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
2229         tree_ssa_phiopt_worker.
2230         (struct name_to_bb): New.
2231         (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
2232         nt_init_block, nt_fini_block): New static functions.
2233         (seen_ssa_names, nontrap_set): New static variables.
2234         (gate_cselim, pass_cselim): Define new pass.
2235         * common.opt (ftree-cselim): New flag.
2236         * toplev.c (process_options): Set flag_tree_cselim if required.
2237
2238 2007-09-10  Hans-Peter Nilsson  <hp@axis.com>
2239
2240         * simplify-rtx.c (simplify_relational_operation_1): For recent
2241         canonicalization, don't recurse if op1 equals both PLUS arguments.
2242
2243 2007-09-09  David Daney  <ddaney@avtrex.com>
2244
2245         * optabs.c (expand_sync_operation):  Use plus insn if minus
2246         CONST_INT_P(val).
2247         (expand_sync_fetch_operation):  Ditto.
2248
2249 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
2250
2251         * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
2252         of cvtpq2ps.
2253         (*floatsisf2_sse_vector): Likewise.
2254
2255 2007-09-09  Krister Walfridsson  <cato@df.lth.se>
2256
2257         * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
2258
2259 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
2260
2261         * config/i386/i386.h (ix86_tune_indices): Rename
2262         X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
2263         (TARGET_USE_VECTOR_CONVERTS): Updated.
2264         * config/i386/i386.c: Likewise.
2265
2266 2007-09-09  Sandra Loosemore  <sandra@codesourcery.com>
2267             Nigel Stephens <nigel@mips.com>
2268
2269         * doc/invoke.texi (Overall Options):  Add .sx file extension
2270         as a synonym for .S.
2271         * cppspec.c (known_suffixes): Likewise.
2272         * gcc.c (default_compilers): Likewise.
2273
2274 2007-09-09  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2275
2276         PR target/30315
2277         * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
2278         * simplify-rtx.c (simplify_relational_operation_1): Add the
2279         canonicalization from i386.h.
2280         * doc/md.texi (Canonicalization of Instructions): Document it.
2281
2282 2007-09-09  Jan Hubicka  <jh@suse.cz>
2283             Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2284
2285         * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
2286         (TARGET_USE_VECTOR_CONVERTS): New.
2287         * i386.md: New post-reload splitters for converting SF to DF and DF to
2288         SF.
2289         (floatsi* expander): Special case vector conversions.
2290         (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
2291         floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
2292         floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
2293         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
2294         Disable when doing vector converts.
2295         (floatsi<mode>2_i387): Disable when
2296         * sse.md (vec_dupv2df): Export.
2297         * i386.c (ix86_tune_features): Enable SSE conversions.
2298
2299 2007-09-09  Richard Guenther  <rguenther@suse.de>
2300
2301         * tree-ssa-operands.c (add_virtual_operand): Only mark
2302         stores as has_volatile_ops if alias information is not available.
2303
2304 2007-09-09  Revital Eres  <eres@il.ibm.com>
2305
2306         * doc/contrib.texi: Add myself.
2307
2308 2007-09-09  Ira Rosen  <irar@il.ibm.com>
2309
2310         * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
2311         stmt_vinfo_set_outside_of_loop_cost): New functions.
2312         * tree-vect-transform.c (vect_get_cost_fields): Remove.
2313         (vect_model_simple_cost): Call
2314         stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
2315         field instead of calling vect_get_cost_fields.
2316         (vect_model_store_cost, vect_model_load_cost): Likewise.
2317
2318 2007-09-09  Revital Eres  <eres@il.ibm.com>
2319
2320         * config/rs6000/rs6000.c (paired_init_builtins): Add const
2321         declaration to bdesc_paired_preds variable.
2322         (paired_expand_builtin): Likewise.
2323
2324 2007-09-09  Revital Eres  <eres@il.ibm.com>
2325
2326         * dbgcnt.def (sms_sched_loop): New counter.
2327         * modulo-sched.c: Use sms_sched_loop instead of
2328         MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
2329         perform swing modulo scheduling on.  Include dbgcnt.h.
2330         * Makefile.in: Add DBGCNT_H to modulo-sched.o.
2331         * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
2332
2333 2007-09-09  Uros Bizjak  <ubizjak@gmail.com>
2334
2335         * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
2336         Substitute all uses with ...
2337         (MODEF): New mode iterator.
2338
2339         (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
2340         from pre-regalloc define_insn_and_split splitter pattern.
2341         (*fix_trunc<mode>_i387_1): Ditto.
2342         (*fistdi2_1): Ditto.
2343         (*fist<mode>2_1): Ditto.
2344         (frndintxf2_floor): Ditto.
2345         (*fist<mode>2_floor_1): Ditto.
2346         (frndintxf2_ceil): Ditto.
2347         (*fist<mode>2_ceil_1): Ditto.
2348         (frndintxf2_trunc): Ditto.
2349         (frndintxf2_mask_pm): Ditto.
2350
2351         (prologue): Use (const_int 0) as never generated filler insn.
2352         (epilogue): Ditto.
2353         (sibcall_epilogue): Ditto.
2354         (eh_return_si): Ditto.
2355         (eh_return_di): Ditto.
2356
2357         (add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
2358         using MODEF mode iterator.
2359         (sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
2360         using MODEF mode iterator.
2361         (mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
2362         using MODEF mode iterator.
2363         (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
2364         Macroize expander using MODEF mode iterator.
2365
2366         (zero_extendsidi2): Remove operand constraints from expander.
2367         (smuldi3_highpart): Ditto.
2368         (indirect_jump): Ditto.
2369         (tablejump): Ditto.
2370         (rsqrtsf2): Ditto.
2371         * config/i386/sse.md (storentv4sf): Ditto.
2372         (storentv2df): Ditto.
2373         (storentv2di): Ditto.
2374         (storentsi): Ditto.
2375         (sse2_cvtpd2ps): Ditto.
2376         (vec_interleave_highv16qi): Ditto.
2377         (vec_interleave_lowv16qi): Ditto.
2378         (vec_interleave_highv8hi): Ditto.
2379         (vec_interleave_lowv8hi): Ditto.
2380         (vec_interleave_highv4si): Ditto.
2381         (vec_interleave_lowv4si): Ditto.
2382         (vec_interleave_highv2di): Ditto.
2383         (vec_interleave_lowv2di): Ditto.
2384         (sse2_maskmovdqu): Ditto.
2385         * config/i386/mmx.md (mmx_maskmovq): Ditto.
2386
2387 2007-09-09  Ira Rosen  <irar@il.ibm.com>
2388
2389         * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
2390         (struct _slp_tree, struct _slp_instance): Define new data structures
2391         along macros for their access.
2392         (struct _loop_vec_info): Define new fields: strided_stores,
2393         slp_instances, and slp_unrolling_factor along macros for their access.
2394         (enum slp_vect_type): New.
2395         (struct _stmt_vec_info): Define new field, slp_type, and macros for
2396         its access.
2397         (STMT_VINFO_STRIDED_ACCESS): New macro.
2398         (vect_free_slp_tree): Declare.
2399         (vectorizable_load): Add an argument of type slp_tree.
2400         (vectorizable_store, vectorizable_operation, vectorizable_conversion,
2401         vectorizable_assignment): Likewise.
2402         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
2403         Declare (make extern).
2404         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
2405         (new_loop_vec_info): Likewise.
2406         (destroy_loop_vec_info): Free memory allocated for SLP structures.
2407         * tree-vect-analyze.c: Include recog.h.
2408         (vect_update_slp_costs_according_to_vf): New.
2409         (vect_analyze_operations): Add argument for calls to vectorizable_ ()
2410         functions. For not pure SLP stmts with strided access check that the
2411         group size is power of 2. Update the vectorization factor according to
2412         SLP. Call vect_update_slp_costs_according_to_vf.
2413         (vect_analyze_group_access): New.
2414         (vect_analyze_data_ref_access): Call vect_analyze_group_access.
2415         (vect_free_slp_tree): New functions.
2416         (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
2417         vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
2418         vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
2419         vect_detect_hybrid_slp): Likewise.
2420         (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
2421         and vect_detect_hybrid_slp.
2422         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
2423         SLP costs into account.
2424         (vect_get_cost_fields): New function.
2425         (vect_model_simple_cost): Make extern, add SLP parameter and handle
2426         SLP.
2427         (vect_model_store_cost, vect_model_load_cost): Likewise.
2428         (vect_get_constant_vectors): New function.
2429         (vect_get_slp_vect_defs, vect_get_slp_defs,
2430         vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
2431         vect_get_vec_defs): Likewise.
2432         (vectorizable_reduction): Don't handle SLP for now.
2433         (vectorizable_call): Don't handle SLP for now. Add argument to
2434         vect_model_simple_cost.
2435         (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
2436         get SLPed and vectorized defs). Fix indentation and spacing.
2437         (vectorizable_assignment): Handle SLP.
2438         (vectorizable_induction): Don't handle SLP for now.
2439         (vectorizable_operation): Likewise.
2440         (vectorizable_type_demotion): Add argument to
2441         vect_model_simple_cost.
2442         (vectorizable_type_promotion): Likewise.
2443         (vectorizable_store, vectorizable_load): Handle SLP.
2444         (vectorizable_condition): Don't handle SLP for now.
2445         (vect_transform_stmt): Add a new argument for SLP. Check that there is
2446         no SLP transformation required for unsupported cases. Add SLP
2447         argument for supported cases.
2448         (vect_remove_stores): New function.
2449         (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
2450         (vect_transform_loop): Schedule SLP instances.
2451         * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
2452
2453 2007-09-09  Andrew Haley  <aph@redhat.com>
2454
2455         * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake
2456         signed optab.
2457
2458 2007-09-09  Hans-Peter Nilsson  <hp@axis.com>
2459
2460         Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
2461         * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
2462         Similar for what label_refs can go in the JUMP_TARGET field.  Split
2463         REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
2464         * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
2465         REG_LABEL when replacing an operand with a LABEL_REF for a
2466         non-jump insn.
2467         (subst_reloads): When replacing a LABEL_REG with a register,
2468         instead of generating a REG_LABEL note, assert that there already
2469         is one or that the label is a known target for the insn.
2470         * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
2471         note, check the JUMP_LABEL field.  Remove "else" after return.
2472         * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
2473         cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
2474         (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
2475         REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
2476         insns.  Iterate over all notes; don't assume there's only one.
2477         * cse.c (recorded_label_ref): Adjust comment to refer to
2478         REG_LABEL_OPERAND.
2479         (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
2480         insns, not just NONJUMP_INSN_P.
2481         (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
2482         isn't a jump target.
2483         * jump.c (rebuild_jump_labels): Adjust head comment.
2484         (init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
2485         don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
2486         (mark_all_labels): For JUMP_P insns without a target, check if the
2487         the target is noted on the previous nonjump insn.
2488         (mark_jump_label_1): New function, guts from mark_jump_label.
2489         <case IF_THEN_ELSE>: Handle first operand as a non-target when
2490         marking jump target labels.
2491         <case LABEL_REF>: Adjust for whether to generate a
2492         REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
2493         For 'E' format rtl, iterate in descending element order.
2494         (delete_related_insns): Handle both REG_LABEL_TARGET and
2495         REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
2496         reference count, delete and fallthrough.  Move finding-next-
2497         non-deleted insn last in the function.  Look at all INSN_P insns
2498         for REG_LABEL_OPERAND notes.
2499         (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
2500         JUMP.
2501         * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
2502         JUMP_LABEL, output the INSN_UID of it.
2503         * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
2504         and/or REG_LABEL_TARGET.
2505         (add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
2506         with jump.c copy by only adding notes for labels actually
2507         referenced in the insn.
2508         * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
2509         usage count increment; handle all INSN_P trial insns.
2510         (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
2511         notes.
2512         * rtl.h (struct rtx_def) <volatil>: Adjust to mention
2513         REG_LABEL_TARGET and REG_LABEL_OPERAND.
2514         (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
2515         REG_LABEL_OPERAND.
2516         * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
2517         JUMP_P insns and REG_LABEL_OPERAND everywhere.
2518         * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
2519         on all INSN_P insns.
2520         * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
2521         * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
2522         REG_LABEL_OPERAND notes.
2523         * reload1.c (calculate_needs_all_insns): Adjust comments.
2524         (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
2525         * config/alpha/alpha.md (split for load of an address into a
2526         four-insn sequence on Unicos/Mk): Adjust to use
2527         REG_LABEL_OPERAND.
2528         * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
2529
2530 2007-09-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2531
2532         Revert:
2533         2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2534         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
2535         FOR_BB_INSNS_SAFE instead of for loop.
2536         * cse.c (cse_extended_basic_block): Likewise.
2537         * postreload.c (reload_cse_regs_1): New variable next. Make sure
2538         that the for loop does not invoke NEXT_INSN on a deleted insn.
2539         * function.c (instantiate_virtual_regs): Likewise.
2540         * lower-subreg.c (remove_retval_note): Likewise.
2541         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
2542         FOR_BB_INSNS.
2543         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
2544         a deleted insn.
2545         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
2546         insn, if it's a jump.
2547         (try_redirect_by_replacing_jump): New variable jump_p. Call
2548         tablejump_p before delete_insn_chain.
2549         * reload1.c (reload): New variable next. Make sure that the for
2550         loop does not invoke NEXT_INSN on a deleted insn.
2551         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
2552         (delete_output_reload): New variable prev. Make sure the the for
2553         loops do not invoke PREV_INSN on a deleted insn.
2554
2555 2007-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2556
2557         * pa/constraints.md: Remove 'X' from unused letters comment.
2558
2559 2007-09-08  Richard Guenther  <rguenther@suse.de>
2560
2561         * tree-tailcall.c (find_tail_calls): If we don't have aliases
2562         computed check stmt_ann->references_memory instead of counting
2563         virtual operands.
2564  
2565 2007-09-08  Segher Boessenkool  <segher@kernel.crashing.org>
2566
2567         * cse.c (fold_rtx): Use validate_unshare_change() instead of
2568         validate_change() in one more case.
2569
2570 2007-09-08  Zdenek Dvorak  <ook@ucw.cz>
2571
2572         PR tree-optimization/32283
2573         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
2574         estimated_loop_iterations.
2575         (determine_use_iv_cost_condition): Decrease cost of expressions
2576         used in iv elimination.
2577
2578 2007-09-08  Richard Guenther  <rguenther@suse.de>
2579
2580         * tree-cfg.c (verify_gimple_expr): Avoid building new
2581         pointer types, use TYPE_POINTER_TO if available instead.
2582
2583 2007-09-08  Uros Bizjak  <ubizjak@gmail.com>
2584
2585         PR target/33329
2586         PR rtl-optimization/26449
2587         * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
2588         (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
2589         split1 pass.
2590         (mulv16qi3): Implement as define_insn_and_split pattern instead of
2591         define_expand.  Split insn in split1 pass.
2592         (mulv2di3): Ditto.
2593
2594 2007-09-08  Dorit Nuzman  <dorit@il.ibm.com>
2595
2596         PR tree-optimization/33301
2597         * tree-vect-analyze (analyze_operations): Look at the type of the rhs
2598         when relevant.
2599
2600 2007-09-07  Zdenek Dvorak  <ook@ucw.cz>
2601
2602         PR tree-optimization/32183
2603         * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
2604
2605         * tree-ssa-reassoc.c: Include cfgloop.h.
2606         (is_reassociable_op): Add a loop argument and return true only
2607         for inside loop.
2608         (linearize_expr): Updated.
2609         (should_break_up_subtract): Likewise.
2610         (linearize_expr_tree): Likewise.
2611         (init_reassoc): Call loop_optimizer_init with
2612         AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
2613         with CDI_DOMINATORS.
2614         (fini_reassoc): Call loop_optimizer_finalize.
2615
2616 2007-09-07  Sterling Augustine  <sterling@tensilica.com>
2617
2618         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
2619         if there is no i-cache.
2620
2621 2007-09-07  Richard Guenther  <rguenther@suse.de>
2622
2623         Reapply
2624         2007-09-06  Richard Guenther  <rguenther@suse.de>
2625
2626         PR tree-optimization/32586
2627         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
2628         folding if nothing changed.
2629         (simplify_unary_expression): New function.  Do tree combining
2630         on conversion like codes.
2631         (try_to_simplify): Call it.
2632
2633 2007-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2634
2635         PR target/33286
2636         * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
2637         (__gthread_active,__gthread_start, __gthread_active_init): New.
2638         * gthr-posix95.h: Likewise.
2639
2640 2007-09-07  Roman Zippel <zippel@linux-m68k.org>
2641
2642         * function.h (struct function): Rename calls_unwind_init
2643         to saves_all_registers.
2644         (current_function_saves_all_registers): Renamed from
2645         current_function_calls_unwind_init.
2646         * reload1.c (reload): Set current_function_saves_all_registers.
2647         * except.c (expand_builtin_unwind_init): Likewise.
2648         * config/m68k/m68k.c (m68k_save_reg): Use
2649         current_function_saves_all_registers to save pic register.
2650
2651 2007-09-07  Janis Johnson  <janis187@us.ibm.com>
2652
2653         config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
2654         config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
2655
2656         Reapply reverted changes:
2657
2658         2007-09-06  Jan Hubicka  <jh@suse.cz>
2659  
2660         * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call
2661         of real_2expN.
2662
2663         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
2664
2665         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
2666         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
2667
2668         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
2669
2670         * optabs.c (expand_float): Convert unsigned integer as signed only
2671         if it provides sufficient accuracy; add mode argument to real_2expN.
2672         (expand_fix): Fix comment typos; extend binary float into mode
2673         wider than destination for converion to unsigned integer; add mode
2674         argument to real_2expN.
2675         * real.c (real_2expN): Add mode argument to special-case decimal
2676         float values.
2677         * real.h (real_2expN): Ditto.
2678         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
2679         real_2expN.
2680         (fixed_from_string): Ditto.
2681         (fixed_to_decimal): Ditto.
2682         (fixed_convert_from_real): Ditto.
2683         (real_convert_from_fixed): Ditto.
2684         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
2685         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
2686         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
2687         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
2688
2689 2007-09-07  Diego Novillo  <dnovillo@google.com>
2690
2691         * tree-flow.h (const_block_stmt_iterator): Remove.
2692         Update all users to use block_stmt_iterator.
2693         * tree-iterator.h (const_tree_stmt_iterator): Remove.
2694         Update all users to use tree_stmt_iterator.
2695
2696 2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>
2697
2698         * config/mips/mips.c (mips_set_current_function): Temporarily
2699         make this a no-op to fix bootstrap errors, pending rewrite.
2700
2701 2007-09-07  Jan Hubicka  <jh@suse.cz>
2702
2703         * reorg.c (dbr_schedule): Move code removing placeholder USEs later
2704         in the pass.
2705
2706 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
2707
2708         PR tree-optimization/33299
2709         * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
2710         uses for all relevant loop-exit phis, not just the first.
2711
2712 2007-09-07  Richard Guenther  <rguenther@suse.de>
2713
2714         PR middle-end/33330
2715         * tree-ssa-operands.c (access_can_touch_variable): An access
2716         of the form (*p)[0] can touch a variable of same size.
2717
2718 2007-09-07  Jan Hubicka  <jh@suse.cz>
2719
2720         * passes.c (init_optimization_passes): Add simple dce and addressable
2721         passes.
2722         * tree-ssa.c (execute_update_addresses_taken): New function.
2723         (pass_update_address_taken): New.
2724         * tree-ssa-dse.c (execute_simple_dse): New function.
2725         (pass_simple_dse): New.
2726         * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
2727
2728 2007-09-07  Tobias Burnus  <burnus@net-b.de>
2729
2730         PR middle-end/33321
2731         * doc/invoke.texi: Fix -Wstrict-overflow= table.
2732
2733 2007-09-07  Richard Guenther  <rguenther@suse.de>
2734
2735         Revert
2736         2007-09-06  Richard Guenther  <rguenther@suse.de>
2737
2738         PR tree-optimization/32586
2739         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
2740         folding if nothing changed.
2741         (simplify_unary_expression): New function.  Do tree combining
2742         on conversion like codes.
2743         (try_to_simplify): Call it.
2744
2745 2007-09-07  Richard Guenther  <rguenther@suse.de>
2746             Uros Bizjak  <ubizjak@gmail.com>
2747
2748         PR tree-optimization/32821
2749         * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
2750         NULL in the call to set_bb_stmt_list.
2751
2752 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
2753
2754         * config/mips/mips.c (build_mips16_call_stub): Emit all direct
2755         float calls here, rather than leaving some to the caller.
2756         Use call_internal_direct and call_value_internal_direct.
2757         * config/mips/mips.md (call_internal_direct): New pattern.
2758         (call_value_internal_direct): Likewise.
2759
2760 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
2761
2762         * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
2763         (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
2764         to 0 for MIPS16.
2765         (override_options): Set mips_base_move_loop_invariants.
2766
2767 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
2768
2769         * config/mips/mips.opt (mcode-readable=): Move to keep list
2770         alphabetical.
2771
2772 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
2773
2774         * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
2775         and -mgpopt options.  Adjust the -G documentation to match.
2776         * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
2777         * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
2778         function, split out from mips_classify_symbol.  Return false for
2779         !TARGET_LOCAL_SDATA.
2780         (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
2781         Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
2782         (override_options): Check whether the -mgpopt setting is consistent
2783         with the other flags.
2784         (symbolic_expression_p): Delete.
2785         (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
2786         and default_elf_select_rtx_section.
2787         (mips_in_small_data_p): Honor section attributes for MIPS16 too.
2788         Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
2789         external data and TARGET_EXTERN_SDATA.
2790
2791 2007-09-07  Tobias Burnus  <burnus@net-b.de>
2792
2793         PR fortran/33303
2794         * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
2795
2796 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2797
2798         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
2799         FOR_BB_INSNS_SAFE instead of for loop.
2800         * cse.c (cse_extended_basic_block): Likewise.
2801         * postreload.c (reload_cse_regs_1): New variable next. Make sure
2802         that the for loop does not invoke NEXT_INSN on a deleted insn.
2803         * function.c (instantiate_virtual_regs): Likewise.
2804         * lower-subreg.c (remove_retval_note): Likewise.
2805         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
2806         FOR_BB_INSNS.
2807         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
2808         a deleted insn.
2809         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
2810         insn, if it's a jump.
2811         (try_redirect_by_replacing_jump): New variable jump_p. Call
2812         tablejump_p before delete_insn_chain.
2813         * reload1.c (reload): New variable next. Make sure that the for
2814         loop does not invoke NEXT_INSN on a deleted insn.
2815         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
2816         (delete_output_reload): New variable prev. Make sure the the for
2817         loops do not invoke PREV_INSN on a deleted insn.
2818
2819 2007-09-06  Zdenek Dvorak  <ook@ucw.cz>
2820
2821         * cgraphbuild.c (rebuild_cgraph_edges): Export.
2822         * cgraph.h (rebuild_cgraph_edges): Declare.
2823         * tree-pass.h (pass_expand_omp_ssa): New.
2824         * omp-low.c (find_omp_clause): Export.
2825         (copy_var_decl): Split from omp_copy_decl_2.
2826         (build_omp_barrier): Return the call to emit instead of emitting
2827         it directly.
2828         (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
2829         build_omp_barrier.
2830         (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
2831         expand_omp_for_generic, expand_omp_for_static_nochunk,
2832         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
2833         Adapted to work on SSA form.
2834         (execute_expand_omp): Do not invalidate dominance information.
2835         (gate_expand_omp): Do not run with -fopenmp-ssa flag.
2836         (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
2837         * gimplify.c (gimplify_omp_for): Ensure that the control variable is
2838         a gimple_reg.
2839         (force_gimple_operand): Allow gimplifying code expressions without
2840         value.
2841         * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
2842         * common.opt (fopenmp-ssa): New.
2843         * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
2844         * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
2845         * tree-cfg.c: Include tree-inline.h.
2846         (struct move_stmt_d): Replace vars_to_remove by vars_map field.
2847         (replace_by_duplicate_decl, replace_ssa_name,
2848         mark_virtual_ops_in_region): New functions.
2849         (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
2850         to work on SSA form.
2851         * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
2852         * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
2853         constructs.
2854
2855 2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2856
2857         * tree-loop-linear.c: Include obstack.h.
2858         (linear_transform_loops): New obstack lambda_obstack.
2859         Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
2860         lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
2861         and free afterwards.
2862         * lambda.h (struct obstack): New forward declaration.
2863         (lambda_linear_expression_new): New parameter of type struct
2864         obstack *.
2865         (lambda_loopnest_new): Likewise.
2866         (lambda_loopnest_transform): Likewise.
2867         (lambda_body_vector_new): Likewise.
2868         (lambda_body_vector_compute_new): Likewise.
2869         (gcc_loopnest_to_lambda_loopnest): Likewise.
2870         (lambda_loopnest_to_gcc_loopnest): Likewise.
2871         * lambda-code.c: Include obstack.h.
2872         (lambda_lattice_new): New parameter lambda_obstack.  Use it for
2873         allocation of ret.
2874         (lambda_body_vector_new): Likewise.
2875         (lambda_linear_expression_new): Likewise.
2876         (lambda_lattice_new): Likewise.
2877         (lambda_loopnest_new): Likewise.  Additionally use obstack to
2878         allocate LN_LOOPS(ret).
2879         (lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
2880         it to lambda_lattice_new.
2881         (lambda_body_vector_compute_new): New parameter lambda_obstack.
2882         Pass it to lambda_body_vector_new.
2883         (lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
2884         it to lambda_lattice_new.
2885         (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
2886         Pass it to lambda_loopnest_new, lambda_linear_expression_new.
2887         (lambda_compute_target_space): Likewise.
2888         (lambda_compute_auxillary_space): New parameter lambda_obstack.
2889         Pass it to lambda_lattice_compute_base and
2890         compute_nest_using_fourieer_motzkin.
2891         (lambda_loopnest_transform): New parameter lambda_obstack.  Pass
2892         it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
2893         and lambda_lattice_compute_target_space.
2894         (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
2895         Pass it to lambda_linear_expression_new.
2896         (gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
2897         to gcc_tree_to_linear_expression.
2898         (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
2899         Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
2900         (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
2901         Pass it to lambda_body_vector_new and
2902         lambda_body_vector_compute_new.
2903         * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
2904         (lambda-code.o): Likewise.
2905
2906 2007-09-06  Chao-ying Fu  <fu@mips.com>
2907
2908         * ginclude/stdfix.h: New file.
2909         * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
2910         (convert.o): Add dependence on fixed-value.h.
2911         * c-convert.c (convert): Support FIXED_POINT_TYPE.
2912         * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
2913         to define fixed-point constants.
2914         (c_cpp_builtins): Define fixed-point constants.
2915         * convert.c (fixed-value.h): New include.
2916         (convert_to_real): Update comment to include fixed-point.
2917         Support FIXED_POINT_TYPE.
2918         (convert_to_integer): Update comment to include fixed-point.
2919         Support FIXED_POINT_TYPE.
2920         (convert_to_complex): Support FIXED_POINT_TYPE.
2921         (convert_to_fixed): New function.
2922         * convert.h (convert_to_fixed): Declare.
2923         * genopinit.c: Add comment about $Q for only fixed-point modes.
2924         (optabs): Add fract_optab, fractuns_optab, satfract_optab,
2925         satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
2926         sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
2927         ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
2928         usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
2929         usneg_optab for fixed-point modes.
2930         (gen_insn): Add force_fixed to track the $Q format for all fixed-point
2931         modes.
2932         * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
2933         PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
2934         unsigned saturation optabs, when type is saturating.
2935         (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
2936         (expand_fixed_convert): New function.
2937         (gen_fixed_libfunc, gen_signed_fixed_libfunc,
2938         gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
2939         gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
2940         gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
2941         gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
2942         gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
2943         functions.
2944         (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
2945         ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
2946         usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
2947         ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
2948         usneg_optab, fract_optab, fractuns_optab, satfract_optab,
2949         satfractuns_optab.
2950         Initialize fixed-point libraries, including add, ssadd, usadd, sub,
2951         sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
2952         ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
2953         fractuns, satfractuns.
2954         * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
2955         OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
2956         OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
2957         OTI_ssmsub_widen,  OTI_usmsub_widen.
2958         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
2959         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
2960         ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
2961         umsub_widen_optab, usmsub_widen_optab): Define.
2962         (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
2963         COI_satfractuns.
2964         (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
2965         Define.
2966         (expand_fixed_convert): Declare.
2967         * expr.c (convert_move): Support the move of fixed-point modes.
2968         (emit_move_insn_1): Handle fixed-point mode to move via integer.
2969         (categorize_ctor_elements_1): Handle FIXED_CST.
2970         (count_type_elements): Handle FIXED_POINT_TYPE.
2971         (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
2972         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2973         Support FIXED_CST.
2974         For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
2975         multiply and add/subtract for fixed-point types.
2976         For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
2977         mode, we jump to binop directly.
2978         Support FIXED_CONVERT_EXPR.
2979         (do_store_flag): Check FIXED_CST to put a constant second.
2980         (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
2981         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2982         (const_vector_from_tree): Support FIXED_CST.
2983         * doc/extend.texi (Fixed-Point): New node.
2984         * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
2985         ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
2986         satfract, fractuns, satfractuns): Document them.
2987
2988 2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
2989
2990         * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
2991         addresses into I registers.
2992
2993 2007-09-06  Jan Hubicka  <jh@suse.cz>
2994             Andreas Tobler  <a.tobler@schweiz.org>
2995
2996         * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
2997         sharing.
2998         (machopic_legitimize_pic_address): Likewise.
2999
3000 2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3001             Jan Hubicka  <jh@suse.cz>
3002
3003         * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
3004         instead of ufloat_optab->handlers directly.
3005         (floatdidf2): Likewise.
3006
3007 2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>
3008
3009         * config/mips/mips.c:  Include diagnostic.h.
3010         (mips_set_current_function): Check errorcount and sorrycount 
3011         before generating RTL.
3012
3013 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
3014
3015         PR target/33256
3016         * config/mips/mips.c (mips_classify_symbolic_expression): New function.
3017         (mips_classify_address): Use it instead of mips_symbolic_constant_p.
3018         (print_operand_reloc): Likewise.
3019
3020 2007-09-06  Janis Johnson  <janis187@us.ibm.com>
3021
3022         Revert:
3023
3024         2007-09-06  Jan Hubicka  <jh@suse.cz>
3025  
3026         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
3027         real_2expN.
3028
3029         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
3030
3031         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
3032         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
3033
3034         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
3035
3036         * optabs.c (expand_float): Convert unsigned integer as signed only
3037         if it provides sufficient accuracy; add mode argument to real_2expN.
3038         (expand_fix): Fix comment typos; extend binary float into mode
3039         wider than destination for converion to unsigned integer; add mode
3040         argument to real_2expN.
3041         * real.c (real_2expN): Add mode argument to special-case decimal
3042         float values.
3043         * real.h (real_2expN): Ditto.
3044         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
3045         real_2expN.
3046         (fixed_from_string): Ditto.
3047         (fixed_to_decimal): Ditto.
3048         (fixed_convert_from_real): Ditto.
3049         (real_convert_from_fixed): Ditto.
3050         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
3051         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
3052         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
3053         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
3054
3055 2007-09-06  Tom Tromey  <tromey@redhat.com>
3056
3057         * tree-cfg.c (remove_bb): Only warn if line is non-zero.
3058         * c-pch.c (c_common_read_pch): Restore current location after
3059         reading PCH file.
3060         * tree.c (expand_location): Update.
3061         (expr_filename): Changed return type.  Unified the two cases.
3062         (expr_lineno): Likewise.
3063         (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
3064         as lvalues.
3065         * toplev.c (line_table): Changed type.
3066         (general_init): Update.
3067         (realloc_for_line_map): New function.
3068         (general_init): Allocate line_table using GC.
3069         * fix-header.c (line_table): Changed type.
3070         (read_scan_file): Update.
3071         (read_scan_file): Update.
3072         * c-ppoutput.c (maybe_print_line): Update.
3073         (print_line): Update.
3074         (cb_line_change): Update.
3075         (cb_define): Update.
3076         (pp_file_change): Update.
3077         * c-opts.c (c_common_init_options): Update.
3078         (finish_options): Update.
3079         (push_command_line_include): Update.
3080         * c-lex.c (cb_line_change): Update.
3081         (cb_def_pragma): Update.
3082         (cb_define): Update.
3083         (cb_undef): Update.
3084         (c_lex_with_flags): Use cpp_get_token_with_location.
3085         * input.h (line_table): Changed type.
3086         (location_from_locus): New macro.
3087         * tree.h (EXPR_FILENAME): No longer an lvalue.
3088         (EXPR_LINENO): Likewise.
3089         (expr_locus, set_expr_locus): Declare separately for
3090         USE_MAPPED_LOCATION.
3091         (expr_filename, expr_lineno): Changed return type.
3092         * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
3093         * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
3094         (expand_gimple_basic_block): Likewise.
3095         * final.c (final_scan_insn): Use expanded_location.
3096
3097 2007-09-06  Richard Guenther  <rguenther@suse.de>
3098
3099         PR tree-optimization/32586
3100         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
3101         folding if nothing changed.
3102         (simplify_unary_expression): New function.  Do tree combining
3103         on conversion like codes.
3104         (try_to_simplify): Call it.
3105         * builtins.c (fold_builtin_cexp): Fold the built expressions.
3106         * fold-const.c (fold_unary): Test result of get_callee_fndecl().
3107
3108 2007-09-06  Jan Hubicka  <jh@suse.cz>
3109
3110         PR target/33318
3111         * cse.c (fold_rtx): Avoid invalid sharing.
3112
3113 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
3114
3115         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
3116         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
3117
3118 2007-09-06  Revital Eres  <eres@il.ibm.com>
3119
3120         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
3121         Fix offsettable memory reference for 750CL.
3122
3123 2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>
3124
3125         * reload.c (find_reloads_address_1): Try to preserve original
3126         base/index regclass of operands.
3127         * regrename.c (scan_rtx_address): Likewise.
3128         (replace_oldest_value_addr): Likewise.
3129
3130 2007-09-06  Richard Guenther  <rguenther@suse.de>
3131
3132         PR tree-optimization/33302
3133         * domwalk.c (walk_dominator_tree): The exit block is
3134         interesting even if it is not reachable.
3135
3136 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
3137
3138         PR middle-end/33306
3139         * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
3140
3141 2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
3142
3143         * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
3144         robustness.
3145
3146 2007-09-05  Ian Lance Taylor  <iant@google.com>
3147
3148         * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
3149         when printing.
3150         (dump_generic_node): Likewise.
3151         * print-rtl.c (print_decl_name): Likewise.
3152         * print-tree.c (print_node_brief): Likewise.
3153         (print_node): Likewise.
3154         * Makefile.in (RTL_BASE_H): Add alias.h.
3155         (TREE_H): Likewise.
3156
3157 2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
3158
3159         * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
3160         Defined.
3161         * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
3162         * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
3163
3164 2007-09-06  Jie Zhang  <jie.zhang@analog.com>
3165
3166         * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
3167         (tm_defines): Define UCLIBC_DEFAULT to 1.
3168         (extra_options): Add linux.opt.
3169         * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
3170         (CRT_CALL_STATIC_FUNCTION): Likewise.
3171         (NO_IMPLICIT_EXTERN_C): Likewise.
3172         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
3173         * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
3174         * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
3175         (ENDFILE_SPEC): Don't define.
3176         (LIB_SPEC): Likewise.
3177         (CRT_CALL_STATIC_FUNCTION): Likewise.
3178         (NO_IMPLICIT_EXTERN_C): Likewise.
3179         (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
3180         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
3181
3182 2007-09-06  Jan Hubicka  <jh@suse.cz>
3183
3184         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
3185         real_2expN.
3186
3187 2007-09-06  Jan Hubicka  <jh@suse.cz>
3188
3189         * opts.c (common_handle_option): Enable inlining functions for
3190         -fprofile-generate.
3191
3192 2007-09-06  Jakub Jelinek  <jakub@redhat.com>
3193
3194         * builtin-attrs.def (ATTR_NONNULL_3): New.
3195         (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
3196         ATTR_NOTHROW_NONNULL_##FA.
3197         (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
3198         (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
3199         ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
3200         ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
3201         ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
3202         ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
3203         ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
3204         New.
3205         (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
3206         ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
3207         ATTR_FORMAT_NOTHROW_3_4): Remove.
3208         * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
3209         vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
3210         __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
3211         instead of ATTR_FORMAT_*_*.
3212
3213 2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
3214
3215         * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
3216         parts re-used for REG_FRAME_RELATED_EXPR.
3217
3218 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
3219
3220         * optabs.c (expand_float): Convert unsigned integer as signed only
3221         if it provides sufficient accuracy; add mode argument to real_2expN.
3222         (expand_fix): Fix comment typos; extend binary float into mode
3223         wider than destination for converion to unsigned integer; add mode
3224         argument to real_2expN.
3225         * real.c (real_2expN): Add mode argument to special-case decimal
3226         float values.
3227         * real.h (real_2expN): Ditto.
3228         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
3229         real_2expN.
3230         (fixed_from_string): Ditto.
3231         (fixed_to_decimal): Ditto.
3232         (fixed_convert_from_real): Ditto.
3233         (real_convert_from_fixed): Ditto.
3234         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
3235         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
3236         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
3237         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
3238
3239 2007-09-05  Ian Lance Taylor  <iant@google.com>
3240
3241         * init-regs.c (initialize_uninitialized_regs): Call
3242         emit_insn_before rather than add_insn_before.
3243
3244 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
3245
3246         * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
3247         * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
3248         * tree-inline.h (copy_body_data): Add call_expr field.
3249         * tree-inline.c (expand_call_inline): Initialize call_expr.
3250         (copy_bb): Append anonymous inline fn arguments to arguments
3251         when inlining a CALL_EXPR_VA_ARG_PACK call.
3252         * builtins.c (expand_builtin): Issue an error if
3253         BUILT_IN_VA_ARG_PACK is seen during expand.
3254         (fold_call_expr, fold_builtin_call_array): Don't fold
3255         CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
3256         __builtin_va_arg_pack () call as last argument.
3257         * gimplify.c (gimplify_call_expr): If last argument to a vararg
3258         function is __builtin_va_arg_pack (), decrease number of call
3259         arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
3260         * expr.c (expand_expr_real_1): Issue an error if
3261         CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
3262         * tree-pretty-print.c (dump_generic_node): Handle printing
3263         CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
3264         * doc/extend.texi (__builtin_va_arg_pack): Document.
3265
3266 2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
3267
3268         PR tree-optimization/21513
3269         * builtins.c (build_builtin_expect_predicate): New function.
3270         (fold_builtin_expect): Add argument for expected value.
3271         Distribute __builtin_expect over short-circuiting operations.
3272         Fold nested builtin_expects.
3273         (fold_builtin_2): Adjust call to fold_builtin_expect.
3274
3275 2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3276
3277         PR web/32965
3278         PR tree-optimization/13756
3279         * doc/invoke.texi (Options That Control Optimization): Document
3280         -ftree-dse.
3281
3282 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
3283
3284         * gcc/config/i386/cpuid.h: New file.
3285         * gcc/config/i386/driver-i386.c: Include cpuid.h.
3286         (describe_cache): Shrink size and line strings to 100 bytes.
3287         (detect_caches_amd): Return "" for unsupported max_ext_level.
3288         Use __cpuid function.
3289         (detect_caches_intel): Return "" for unsupported max_level.
3290         Use __cpuid function.
3291         (host_detect_local_cpu): Change feature flag variables to
3292         unsigned int.  Initialize only extended feature flag variables.
3293         Use __get_cpuid_max to determine max supported cpuid level.
3294         Use __cpuid function to determine supported features.  Fix
3295         calculation of family id.  Remove is_amd and check signature
3296         directly.  Check for Geode signature.  Handle family 4 id.
3297         [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
3298         cpu discovery code to lower part of the function.
3299         [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
3300         for sub-architecture.
3301         [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
3302         [PROCESSOR_K8]: Add k8-sse3 architecture.
3303         [PROCESSOR_NOCONA]: Remove.
3304         [PROCESSOR_GENERIC64]: Ditto.
3305         * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
3306         * gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
3307         to check for SSE and FXSAVE support.
3308         * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
3309         Add -minline-all-stringops.
3310         * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
3311         (x86_64-*-*): Ditto.
3312
3313 2007-09-05  Jie Zhang  <jie.zhang@analog.com>
3314
3315         * config/bfin/linux-unwind.h: New file.
3316         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
3317         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
3318
3319 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3320
3321         * Makefile.in (stmt.o): Add alloc-pool.h dependency.
3322         * stmt.c: Include alloc-pool.h.
3323         (struct case_node): Remove GTY marker.
3324         (add_case_node): New parameter case_node_pool.  Use it for
3325         allocation of r.
3326         (expand_case): New allocation pool case_node_pool.  Initialize it,
3327         pass to add_case_node and free it.
3328
3329 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3330             David Ung  <davidu@mips.com>
3331             Nigel Stephens <nigel@mips.com>
3332
3333         Add mips16/nomips16 function attributes and -mflip-mips16 option
3334         for testing mixed-mode compilation.
3335
3336         * config/mips/mips.opt (mflip-mips16): New.
3337
3338         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
3339         (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
3340
3341         * config/mips/mips.c (mips_base_target_flags): New.
3342         (mips_base_mips16): New.
3343         (mips_base_schedule_insns): New.
3344         (mips_base_reorder_blocks_and_partition): New.
3345         (mips_base_align_loops): New.
3346         (mips_base_align_jumps): New.
3347         (mips_base_align_functions): New.
3348         (mips16_flipper): New.
3349         (mips_attribute_table): Add "mips16" and "nomips16" entries.
3350         (TARGET_SET_CURRENT_FUNCTION): Define.
3351         (mips_mips16_type_p, mips_nomips16_type_p): New.
3352         (mips_comp_type_attributes): Check mips16/nomips16 attributes.
3353         (mips_function_ok_for_sibcall): Make it deal with functions with
3354         mips16 attributes.
3355         (mips_init_split_addresses): New, split out from override_options.
3356         (mips_init_relocs): New, split out from override_options.
3357         (was_mips16_p): New.
3358         (mips_set_mips16_mode): New, split out from override_options.
3359         (mips_set_current_function): New.
3360         (override_options): Add sorry for unsupported mips16/pic
3361         combination.  Remove error for mips16/dsp combination.  Save
3362         base option settings.  
3363         (mips_file_start): Move mips16 mode setting output from here....
3364         (mips_output_function_prologue): ....to here.
3365         (mips_output_mi_thunk): Check for mips16 function.
3366         (build_mips16_function_stub): Don't set .mips16 here.
3367         (build_mips16_call_stub): Likewise.
3368         (mips_expand_builtin): Error in mips16 mode.
3369         (mips_use_mips16_mode_p): New.
3370         (mips_encode_section_info): Check for mips16 function, and set
3371         SYMBOL_REF_FLAGS accordingly.
3372
3373         * doc/extend.texi (Function Attributes): Document new
3374         mips16/nomips16 attributes.
3375         * doc/invoke.texi (Option Summary): Add -mflip-mips16.
3376         (MIPS Options): Document -mflip-mips16.
3377
3378 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3379
3380         * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
3381         if we encounter TLS address in MIPS16 mode.
3382         (mips_legitimize_const_move): Check cannot_force_const_mem for
3383         the (const (plus symbol offset)) case; this forces invalid TLS
3384         address in MIPS16 mode to be caught by the above call to sorry.
3385         (override_options): Don't reset targetm.have_tls in MIPS16 mode,
3386         because that now enables emutls, which is not ABI compatible
3387         with native TLS in non-MIPS16 mode.
3388
3389 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3390
3391         Add target hook invoked when cfun changes.
3392
3393     &nb