OSDN Git Service

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