OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
2
3         * config.gcc (sparc-wrs-vxworks): New target.
4         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
5         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
6         * config/sparc/sparc.h: Include vxworks-dummy.h.
7         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
8         include LABEL_REFs too.
9         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
10         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
11         VxWorks.
12         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
13         on VxWorks.
14         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
15         (sparc_emit_call_insn): New function.
16         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
17         functions when generating VxWorks PIC.
18         * config/sparc/sparc.md (vxworks_load_got): New pattern.
19         (call, call_value): Use sparc_emit_call_insn instead of
20         emit_call_insn.
21
22 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
23         
24         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
25         
26 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
27
28         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
29         for floating-point values if HOST_BITS_PER_LONG > 32.  Use split_double
30         instead of operand_subword.
31
32 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
33
34         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
35         * config/bfin/bfin.c (bfin_local_alignment): New function.
36         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
37
38 2007-05-08  Chao-ying Fu  <fu@mips.com>
39
40         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
41         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
42         (smsub_widen_optab, umsub_widen_optab): Define.
43         * optabs.c (init_optabs): Initialize smsub_widen_optab and
44         umsub_widen_optab.
45         * genopinit.c (optabs): Fill in smsub_widen_optab and
46         umsub_widen_optab.
47         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
48         and umsub_widen_optab to implement multiply-subtract sequences.
49         * config/mips/mips.md (*msac<u>_di): Rename to...
50         (<u>msubsidi4): ...this.  Extend condition to include
51         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
52         of operand 0 to "ka" and use the three-operand form of msub<u>
53         for TARGET_DSPR2.
54         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
55         to define_expands.
56
57 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
58
59         PR rtl-optimization/28011
60         * reload.c (push_reload): Set dont_share if IN appears in OUT
61         also when IN is a PLUS rtx.
62         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
63         are same PLUS rtx.
64
65 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
66
67         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
68         call unshare_all_decls.
69         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
70         (unshare_all_decls): Remove.
71
72 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
73
74         PR 31847
75         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
76         dumps.
77
78 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
79             Nigel Stephens  <nigel@mips.com>
80
81         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
82         Update comments and all uses.
83         (MIN_FPRS_PER_FMT): Define.
84         * config/mips/mips.c (function_arg): Fix to correctly handle
85         the -mips32r2 -mfp64 -mabi=32 case.
86         (override_options): Enable use of odd-numbered registers for
87         SFmode values on MIPS32.
88         (mips_save_reg_p): Save whole floating-point register pair if
89         either half is used.
90         (compute_frame_size): Fix comment.
91
92 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
93
94         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
95         argument of type bool.
96         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
97         argument. Safely select temporary P register according to it.
98         (do_link): Change call site of add_to_reg accordingly.
99         (do_unlink): Add epilogue_p as a fourth argument and pass it
100         to add_to_reg.
101         (expand_interrupt_handler_epilogue): Change call of do_unlink
102         accordingly.
103         (bfin_expand_prologue): Add a third argument sibcall_p.
104         * config/bfin/bfin.md (epilogue): Change call of
105         bfin_expand_epilogue accordingly.
106         (sibcall_epilogue): Likewise.
107         (eh_return_internal): Likewise.
108                 
109         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
110         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
111         * config/bfin/bfin.c (bfin_handle_option): Handle
112         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
113         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
114         Support bf534, bf536 and bf561.
115         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
116
117 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
118
119         PR target/31854
120         * config/i386/i386.c (ix86_function_regparm): Process local
121         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
122         
123 2007-05-07  Mike Stump  <mrs@apple.com>
124
125         * doc/invoke.texi (Warning Options): Document that -Wempty-body
126         also checks for and while statements in C++.
127
128 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
129
130         * gcc.c (at_file_supplied): New variable.
131         (main): Set it if we expanded argv.
132         (do_spec_1): Pass an @-file to the linker if we were called with
133         an @-file argument and HAVE_GNU_LD.
134         * collect2.c (at_file_supplied): New variable.
135         (response_file): New variable.
136         (collect_exit): Unlink response_file if necessary.
137         (handler): Likewise.
138         (do_wait): Likewise.
139         (main): Set at_file_supplied if we expanded argv.
140         (collect_execute): Pass an @-file to subprocesses if we were called
141         with an @-file argument.
142         * configure.ac: Add define for HAVE_GNU_LD.
143         * configure: Regenerate.
144         * config.in: Regenerate.
145
146 2007-05-07   Naveen.H.S  <naveen.hs@kpitcummins.com>
147
148         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
149         operand to HI mode.
150         (mulsi3): New.
151         (divsi3): New.
152         (udivsi3): New.
153
154 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
155
156         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
157         (TARGET_ENCODE_SECTION_INFO): Re-define.
158         (m32c_encode_section_info): New
159         (function_vector_handler): New
160         (current_function_special_page_vector): New
161         (m32c_special_page_vector_p): New.
162         * config/m32c/m32c-protos.h (m32c_special_page_vector_p): 
163         Prototype.
164         * config/m32c/jump.md: Added instruction JSRS for functions 
165         with attribute "function_vector".
166         * doc/extend.texi (function_vector): Added description 
167         for M16C, M32C targets.
168
169 2007-05-07  DJ Delorie  <dj@redhat.com>
170
171         PR 31794
172         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
173         ashrpsi3, lshrpsi3): Update shift count constraint.
174
175 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
176             Nathan Froyd  <froydnj@codesourcery.com>
177
178         PR 22133
179         * c-incpath.c (add_path): Strip trailing path separators.
180
181 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
182
183         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
184         Free dominance info before purging EH edges.
185         (eliminate_degenerate_phis): Likewise.
186         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
187
188 2007-05-07  Jan Hubicka  <jh@suse.cz>
189
190         * gimplify.c (gimplify_expr): Do not crash when folding
191         (void *)(int)&a + 4.
192
193 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
194
195         PR driver/31694
196         * c-opts.c (lang_fortran): Make it non static.
197         * c-common.h (lang_fortran): New prototype.
198         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
199         -lang-fortran option was passed by the driver.
200
201 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
202
203         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
204         of ASSERT_CHECKING.  Tweak message.
205
206 2007-05-06  Revital Eres  <eres@il.ibm.com>
207
208         PR 30957
209         * loop-unroll.c (insert_var_expansion_initialization):
210         Initialize the expansions with -zero instead of +zero.
211
212 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
213
214         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
215         into pic and non-pic versions. Mark r19 as used for 
216         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used 
217         for tgd_load, tld_load and tie_load .
218         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
219         version of tgd_load, tld_load and tie_load depending on the 
220         value of flag_pic.
221
222 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
223             Jakub Jelinek  <jakub@redhat.com>
224
225         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
226         (__do_global_dtors_aux): Use more paranoid loop to run
227         destructors if HIDDEN_DTOR_LIST_END.
228         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
229
230 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
231
232         * varasm.c (align_variable): Don't increase alignment for
233         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
234         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
235
236 2007-05-04  Josh Conner  <jconner@apple.com>
237
238         * basic-block.h (cdi_direction): Assign values to all enumeration
239         constants.
240         (dom_computed): Remove.
241         (dom_info_state): New.
242         (set_dom_info_availability): New.
243         * tree-ssa-loop-im.c (determine_invariantness): Initialize
244         walk_data.dom_direction.
245         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
246         instead of dom_computed[].
247         (split_edge): Likewise.
248         (create_basic_block): Likewise.
249         (merge_blocks): Likewise.
250         * ifcvt.c (find_if_header): Likewise.
251         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
252         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
253         * tree-ssa.c (verify_ssa): Likewise.
254         * tree-cfg.c (tree_verify_flow_info): Likewise.
255         (remove_edge_and_dominated_blocks): Likewise.
256         * dominance.c (dom_computed): Make static.
257         (calc_dfs_tree_nonrec): Change third param to a bool.
258         (calc_dfs_tree): Change second param to a bool.
259         (calc_idioms): Change second param to a bool.  Use
260         dom_convert_dir_to_idx.
261         (init_dom_info): Validate dir before using.
262         (dom_convert_dir_to_idx): New.
263         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
264         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
265         (free_dominance_info): Use dom_convert_dir_to_idx.
266         (get_immediate_dominator): Likewise.
267         (set_immediate_dominator): Likewise.
268         (get_dominated_by): Likewise.
269         (redirect_immediate_dominators): Likewise.
270         (nearest_common_denominator): Likewise.
271         (dominated_by_p): Likewise.
272         (bb_dom_dfs_in): Likewise.
273         (bb_dom_dfs_out): Likewise.
274         (recount_dominator): Likewise.
275         (iterate_fix_dominators): Likewise.
276         (add_to_dominance_info): Likewise.
277         (delete_from_dominance_info): Likewise.
278         (first_dom_son): Likewise.
279         (next_dom_son): Likewise.
280         (dom_info_available_p): Likewise.
281         (dom_info_state): New.
282         (set_dom_info_availability): New.
283
284 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
285
286         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
287         Expander removed.
288         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
289
290 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
291         
292         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
293         (subdi3, subdi_carry): Delete.
294         
295 2007-05-04  Jan Hubicka  <jh@suse.cz>
296             Richard Guenther  <rguenther@suse.de>
297
298         * opts.c (decode_options): Do not fiddle with inlining
299         parameters in case of optimizing for size.
300         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
301         for size do nothing.
302         (cgraph_decide_inlining_of_small_function): When optimizing for
303         size never inline functions increasing caller size.
304         (cgraph_early_inlining): Inline for size when optimizing for size.
305
306 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
307
308         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
309         logical operations piecewise.
310         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
311         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
312         subdi_sesidi_di): Delete.
313         (add_with_carry): Produce carry in CC instead of a DREG to shorten
314         the generated sequence.  Allow three-reg add in constraints.  Rewrite
315         the rtl expression for carry to avoid zero_extend of a constant.
316         (sub_with_carry): New pattern.
317         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
318         different sequence not involving jumps.
319         (notbi): Now a named pattern.
320
321 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
322
323         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
324         Add the note about a significant loss of accuracy of some
325         mathematical routines when these options are used.
326
327 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
328
329         * haifa-sched.c (rtx_vec_t): New typedef.
330         (contributes_to_priority_p): Extract piece of priority () into new
331         static function.
332         (priority): Use the function.  Add assertion.
333         (rank_for_schedule, set_priorities): Add assertion to check that
334         insn's priority is initialized.
335         (clear_priorities, calc_priorities): Change signature.  Make it update
336         all relevant insns.  Update all callers ('add_to_speculative_block ()'
337         and 'create_block_check_twin ()').
338         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
339         Add new field 'priority_status'.
340         (INSN_PRIORITY_STATUS): New macro.
341         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
342
343 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
344
345         * sched-ebb.c (debug_ebb_dependencies): New static function.
346         (init_ready_list): Use it.
347
348         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
349         with changed signature and 'debug_rgn_dependencies ()'.
350         (debug_rgn_dependencies): New static function.
351         (init_ready_list): Use it.
352         
353         * sched-int.h (debug_dependencies): Declare.
354
355 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
356
357         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
358
359 2007-05-04  Dirk Mueller  <dmueller@suse.de>
360
361         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
362
363 2007-05-03  Jan Hubicka  <jh@suse.cz>
364
365         * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
366         for pointer type in more cases than before.
367
368         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
369
370         * tree-object-size.c (plus_expr_object_size): When operand size is
371         unknown, return unknown.
372
373 2007-05-03  Dirk Mueller  <dmueller@suse.de>
374
375         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
376
377         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
378         options.
379
380         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
381
382 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
383
384         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
385
386 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
387
388         * config/soft-fp/double.h, config/soft-fp/extended.h,
389         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
390         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
391         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
392         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
393         glibc CVS.
394
395 2007-05-03  Ian Lance Taylor  <iant@google.com>
396
397         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
398         MASK_PPC_GFXOPT for 8540 or 8548.
399
400 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
401
402         * tree-vect-transform.c (vect_update_inits_of_drs): Use
403         vect_print_dump_info() to output debug information.
404
405 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
406
407         PR target/31768
408         * config/i386/i386.c (print_operand) ['z']: Output 'w' for
409         operands of size 2 when operand is not MEM_P.
410
411 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
412
413         PR tree-optimization/30565
414         * lambda-code.c (perfect_nestify): Fix updating of dominators.
415
416 2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>
417
418         * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
419         (umulsi3_highpart): Use them.
420         * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
421         for final accumulator to D regisster tranfser.
422
423 2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>
424
425         PR tree-optimization/31699
426         * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong
427         code.
428         (vect_enhance_data_refs_alignment): Compute peel amount using 
429         TYPE_VECTOR_SUBPARTS instead of vf.     
430         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
431
432 2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>
433
434         PR bootstrap/31776
435         * system.h: Remove inclusion of double-int.h
436         * tree.h: Include double-int.h
437         * gengtype.c: Likewise
438         * cfgloop.h: Likewise
439         * Makefile.in: Adjust dependencies on double-int.h
440
441 2007-05-02  Eric Christopher  <echristo@apple.com>
442
443         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
444         -shared to -Zdynamiclib.
445
446 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
447
448         PR c++/31663
449         * c-common.c (strip_pointer_or_array_types): New function.
450         * c-common.h (strip_pointer_or_array_types): New function declaration.
451
452 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
453
454         PR tree-optimization/31771
455         * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
456
457 2007-05-02  Paul Brook  <paul@codesourcery.com>
458
459         * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
460
461 2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
462
463         PR middle-end/29715
464         * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
465         transformation.
466
467 2007-05-02  Nick Clifton  <nickc@redhat.com>
468
469         * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
470
471 2007-05-02  Richard Guenther  <rguenther@suse.de>
472
473         PR tree-optimization/31146
474         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
475         argument, single_use_p.  If we have a single use that is
476         a conversion to the definition rhs type, propagate that rhs.
477         (forward_propagate_addr_expr): Pass single_use_p argument
478         to forward_propagate_addr_expr_1.
479
480 2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>
481
482         * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
483         variable.
484
485 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
486
487         * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
488         'AMD Family 10 core'.
489
490 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
491
492         * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
493         and athlon64-sse3 as improved versions of k8, opteron and athlon64
494         with SSE3 instruction set support.
495         * doc/invoke.texi: Likewise.
496
497 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
498
499         * config/i386/i386.c (override_options): Tuning 32-byte loop
500         alignment for amdfam10 architecture. Increasing the max loop
501         alignment to 24 bytes.
502
503 2007-05-01  Kazu Hirata  <kazu@codesourcery.com>
504
505         * config/m68k/constraints.md: New.
506         * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
507         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
508         EXTRA_CONSTRAINT): Remove.
509         * config/m68k/m68k.md: Include constraints.md.
510         * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
511
512 2007-05-01  Ian Lance Taylor  <iant@google.com>
513
514         PR tree-optimization/31739
515         * tree-vrp.c (vrp_val_is_max): New static function.
516         (vrp_val_is_min): New static function.
517         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
518         copying the node.
519         (set_value_range): Use vrp_val_is_{max,min}.
520         (extract_range_from_assert): Likewise.
521         (extract_range_from_binary_expr): Likewise.
522         (extract_range_from_unary_expr): Likewise.
523         (dump_value_range, vrp_meet): Likewise.
524         (vrp_visit_phi_node): Likewise.
525         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
526
527 2007-05-01  Mark Mitchell  <mark@codesourcery.com>
528
529         * config/i386/gmon-sol2.c (size_t): New type.
530         (intptr_t): Likewise.
531         (s_textsize): Declare as size_t.
532         (sbrk): Declare.
533         (monstartup): Use size_t for sizes.
534         (_mcount): Save and restore registers.
535         (internal_mcount): Pass 0 as the first argument to monstartup
536         in 64-bit mode.
537         (moncontrol): Convert pointer to appropriately sized integer
538         before passing to profil.
539
540 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
541
542         * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
543         __NO_FPRS__, not just if _SOFT_DOUBLE.
544         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
545         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
546         also for E500 double.
547         * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
548         suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
549         && !TARGET_FPRS).
550
551 2007-05-01  Richard Guenther  <rguenther@suse.de>
552
553         * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
554         is NULL.
555
556 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
557
558         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
559
560 2007-05-01  Jan Hubicka  <jh@suse.cz>
561
562         * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
563         invariant.
564
565 2007-05-01  Jan Hubicka  <jh@suse.cz>
566
567         * tree.h (maybe_fold_offset_to_component_ref): Remove.
568         (maybe_fold_offset_to_reference): Declare.
569         * fold-const.c (fold_unary): Do not fold
570         (type *)&A into &A->field_of_type_and_offset_0
571         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
572         size is unknown, give up.
573         (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
574         offsets.
575         (maybe_fold_offset_to_reference): New.
576         (maybe_fold_stmt_indirect): Use it.
577         (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
578         * gimplify.c (gimplify_conversion): Canonicalize conversions to
579         field references.
580         (gimplify_expr): Likewise for plus_expr.
581
582 2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
583
584         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
585         bsi_after_labels.  Always insert statements before bsi.
586         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
587         * predict.c (apply_return_prediction): Check for empty blocks.
588         * cfgexpand.c (lab_rtx_for_bb): New variable.
589         (label_rtx_for_bb): Do not create new tree labels.
590         (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
591         (tree_expand_cfg): Initialize lab_rtx_for_bb.
592         * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
593         creating edges.
594         (label_for_bb): Add field used.
595         (update_eh_label, main_block_label): Mark the label used.
596         (cleanup_dead_labels): Remove unused labels.
597
598 2007-05-01  Richard Guenther  <rguenther@suse.de>
599
600         * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
601         if it is not about to be set.
602         (get_value_range): Do not pre-allocate equiv bitmap.
603         (update_value_range): No need to clear equiv field.
604         (add_equivalence): Change prototype to get bitmap pointer.
605         Allocate bitmap here if it is not already.
606         (extract_range_from_assert): Do not allocate bitmap here.
607         Update callers to add_equivalence.
608         (extract_range_from_ssa_name): Likewise.
609         (get_vr_for_comparison): New static helper.
610         (compare_name_with_value): Handle NULL equiv bitmap by
611         peeling the first iteration of the comparison loop.
612         Use get_vr_for_comparison.
613         (compare_names): Handle NULL equiv bitmaps by using fake
614         ones.  Use get_vr_for_comparison.
615
616 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
617
618         * double-int.c (mpz_set_double_int): Moved from
619         tree-ssa-loop-niter.c.
620         (mpz_get_double_int): Likewise; also, add option to wrap
621         out-of-range integers.
622         * double-int.h: New prototypes for above.
623         * tree.c (get_static_type_bounds): Moved from
624         tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
625         TYPE_MAX_VALUE if they exist..
626         * tree.h: New prototype for above.
627         * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
628         get_type_bounds calls.
629         (mpz_set_double_int): Move to double-int.c.
630         (get_type_bounds): Move to tree.c, rename to
631         get_static_type_bounds.
632         (mpz_to_double_int): Move to double-int.c, rename to
633         mpz_get_double_int.
634
635 2007-04-30  Bob Wilson  <bob.wilson@acm.org>
636
637         * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
638         DIV0 exception can fall through to a normal return.
639
640 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
641
642         PR middle-end/22156
643         Temporarily revert:
644         2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
645         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
646         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
647         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
648         initialize align to silence bogus warning.
649         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
650         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
651         all_no_warning.
652         (struct sra_walk_fns): Remove use_all parameter from use.
653         (sra_hash_tree): Handle BIT_FIELD_REFs.
654         (sra_elt_hash): Don't hash bitfld blocks.
655         (sra_elt_eq): Skip them in parent compares as well.  Handle
656         BIT_FIELD_REFs.
657         (sra_walk_expr): Don't maintain or pass down use_all_p.
658         (scan_use): Remove use_all parameter.
659         (scalarize_use): Likewise.  Re-expand assignment to
660         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
661         output, and re-scalarize after output.  Don't mark anything
662         for no warning.
663         (scalarize_ldst): Adjust.
664         (scalarize_walk_gimple_modify_statement): Likewise.
665         (build_element_name_1): Handle BIT_FIELD_REFs.
666         (instantiate_element): Don't warn for any element whose parent
667         is used as a whole.
668         (instantiate_missing_elements_1): Return the sra_elt.
669         (canon_type_for_field): New.
670         (try_instantiate_multiple_fields): New.
671         (instantiate_missing_elemnts): Use them.
672         (mark_no_warning): Removed.
673         (generate_one_element_ref): Handle BIT_FIELD_REFs.
674         (REPLDUP, sra_build_elt_assignment): New.
675         (generate_copy_inout): Use them.
676         (generate_element_copy): Likewise.  Handle bitfld differences.
677         (generate_element_zero): Don't recurse for blocks.  Use
678         sra_build_elt_assignment.
679         (generate_one_element_int): Take elt instead of var.  Use
680         sra_build_elt_assignment.
681         (generate_element_init_1): Adjust.
682         (scalarize_use, scalarize_copy): Use REPLDUP.
683         (scalarize_ldst): Move assert before dereference.
684         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
685
686 2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
687
688         PR C++/31721
689         * tree.c (reconstruct_complex_type): Reconstruct a reference
690         correctly.
691         Also use the same mode for the pointer as the old pointer type.
692
693 2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
694
695         * doc/trouble.texi (Interoperation): Remove note about Ultrix
696         Fortran compiler.
697
698 2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>
699
700         PR rtl-optimization/31676
701         * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
702         (df_refs_record): Call it.
703
704 2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
705
706         * rtl.def (SS_ABS): New code.
707         * config/bfin/bfin.c (print_operand): New modifier 'v'.
708         (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
709         BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
710         BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
711         (bfin_init_builtins): Define them.
712         (bdesc_1arg, bdesc_2arg): Add some of them here, ...
713         (bfin_expand_builtin): ... and handle the others here.
714         * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
715         flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
716         (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
717         (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
718         operand is only HImode.
719
720 2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>
721
722         * regclass.c (scan_one_insn): Remove splitting of
723         two address insns.
724
725 2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
726             Nigel Stephens  <nigel@mips.com>
727
728         * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
729
730 2007-04-28  Jan Hubicka  <jh@suse.cz>
731
732         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
733         insn_locators_alloc instead of insn_locators_initialize;
734         call reset_block_changes.
735         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
736         * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
737         * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
738         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
739         * config/score/score.c (th_output_mi_thunk): Likewise.
740         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
741         * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
742         tolerate uninitialized locator info.
743
744         Re-apply:
745         * function.c (init_function_start): Don't init line number info.
746         (expand_function_end): Update.
747         (reset_block_changes, record_block_change, finalize_block_changes,
748         check_block_change, free_block_changes): Kill.
749         * function.h (reset_block_changes, record_block_change,
750         finalize_block_changes, check_block_change, free_block_changes): Remove
751         prototypes.
752         (struct function): Remove ib_boundaries_block.
753         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
754         Use curr_insn_locator to initialize locator.
755         (emit_line_note): Remove.
756         * cfgexpand.c (expand_gimple_cond_expr): Update.
757         (construct_exit_block): Likewise.
758         (tree_expand_cfg): Initialize/finalize locators.
759         * expr.c (expand_expr_real): Update.
760         * cfglayout.c (line_locators_locs, line_locators_lines,
761         file_locators_locs, file_locators_files): Remove.
762         (set_block_levels): Move to cfgexpand.c.
763         (insn_locators_initialize): Remove.
764         (pass_insn_locators_initialize): Remove.
765         (locations_locators_locs, locations_locators_vals): New static vars.
766         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
767         Likewise.
768         (insn_locators_alloc, insn_locators_finalize,
769         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
770         New functions.
771         (locator_location): New.
772         (locator_line, locator_file): Rewrite.
773         * rtl.h (emit_line_note): Kill.
774         (insn_locators_alloc, insn_locators_finalize,
775         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
776         Declare.
777         * tree-inline.c (initialize_cfun): Do not initialize
778         ib_boundaries_block.
779         * passes.c (pass_insn_locators_initialize): Remove.
780
781 2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>
782
783         * tree-cfg.c (move_block_to_fn): Release bb from dominance
784         info.  Update last_basic_block correctly.
785
786 2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>
787
788         PR target/31701
789         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
790         register itself to hold the offset constant.  Tell flow the use
791         of r4 and r5 when they are used.
792
793 2007-04-27  Richard Guenther  <rguenther@suse.de>
794
795         * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
796         if we simplified anything.
797         (tree_ssa_forward_propagate_single_use_vars): Defer overflow
798         warnings until we did a simplification and the stmt was not
799         marked as TREE_NO_WARNING.
800
801 2007-04-27  Mike Stump  <mrs@apple.com>
802
803         * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
804
805 2007-04-27  Ian Lance Taylor  <iant@google.com>
806
807         PR middle-end/31710
808         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
809         TYPE_MAX_VALUE exist, convert them to the new type.
810
811 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
812
813         * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
814         if it claims to be available.
815         * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
816         edge is redirected.
817         (perform_tree_ssa_dce): Always free postdominators.
818
819 2007-04-27  Richard Henderson  <rth@redhat.com>
820
821         * config/alpha/predicates.md (aligned_memory_operand): Mark
822         as define_special_predicate.
823         (unaligned_memory_operand, normal_memory_operand): Likewise.
824         (reg_or_unaligned_mem_operand): Remove.
825         (any_memory_operand): Match the documentation and check for
826         non-renumbered pseudos during reload.
827         * config/alpha/alpha.c (alpha_secondary_reload): Rename from
828         alpha_secondary_reload_class, update to new interface, make static.
829         Handle CQImode like HImode.  Remove FP subreg check.
830         (alpha_expand_mov): Use replace_equiv_address.
831         (alpha_expand_mov_nobwx): Use any_memory_operand.
832         (TARGET_SECONDARY_RELOAD): New.
833         * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
834         (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
835         * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
836         * config/alpha/alpha.md: ... here.
837         (RELOAD12, reloadmode): New.
838         (movcqi): New.
839         (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
840         Don't handle the aligned case here.
841         (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
842         (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
843         reload_inhi_help.  Don't expect a scratch register.
844         (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
845         reload_outhi_help.
846         * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
847
848 2007-04-27  Richard Guenther  <rguenther@suse.de>
849
850         * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
851
852 2007-04-27  Richard Guenther  <rguenther@suse.de>
853
854         PR tree-optimization/30965
855         PR tree-optimization/30978
856         * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
857         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
858         (find_equivalent_equality_comparison): Likewise.
859         (simplify_cond): Likewise.
860         (get_prop_source_stmt): New helper.
861         (get_prop_dest_stmt): Likewise.
862         (can_propagate_from): Likewise.
863         (remove_prop_source_from_use): Likewise.
864         (combine_cond_expr_cond): Likewise.
865         (forward_propagate_comparison): New function.
866         (forward_propagate_into_cond): Rewrite to use fold for
867         tree combining.
868         (tree_ssa_forward_propagate_single_use_vars): Call
869         forward_propagate_comparison to propagate comparisons.
870
871 2007-04-27  Richard Guenther  <rguenther@suse.de>
872
873         PR tree-optimization/31715
874         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
875         sure to do computation on the offset in an appropriate
876         signed type.
877
878 2007-04-27  Richard Sandiford  <richard@codesourcery.com>
879
880         * reload.h (elimination_target_reg_p): Declare.
881         * reload.c (find_reloads): Don't apply the reg_rtx move
882         optimization if the SET_DEST satisfies elimination_target_reg_p.
883         * reload1.c (elimination_target_reg_p): New function.
884         (gen_reload): In the move/add2 fallback, make sure that op0
885         does not overlap the destination register.
886
887 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
888
889         * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
890         transform only GIMPLE_MODIFY_STMTs.
891         * tree-complex.c (expand_complex_operations_1): Ditto.
892         (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
893         * tree-ssa-loop-manip.c (build_if_stmt): Removed.
894         (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
895         branches.
896         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
897         tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
898         * omp-low.c (expand_parallel_call, expand_omp_for_generic,
899         expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
900         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
901         slpeel_add_loop_guard): Ditto.
902         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
903         * lambda-code.c (perfect_nestify): Ditto.
904         * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
905         before the first statement.
906         * tree-optimize.c (execute_free_datastructures): Fix comments.
907         (execute_free_cfg_annotations): Do not call disband_implicit_edges.
908         * tree-flow.h (disband_implicit_edges): Declaration removed.
909         * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
910         branches.
911         (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle COND_EXPRs
912         without gotos.
913         (disband_implicit_edges, has_label_p): Removed.
914         (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
915         (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
916         branches.
917         * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
918         side effects.
919         * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
920         also for COND_EXPRs.
921         * cfgexpand.c (label_rtx_for_bb): New function.
922         (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
923         Use label_rtx_for_bb to find the labels.
924         (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
925         last block.  Detect fallthru edges.
926
927 2007-04-26  Ian Lance Taylor  <iant@google.com>
928
929         PR target/28675
930         * reload.c (find_reloads_subreg_address): If the address was valid
931         in the original mode but not in the new mode, reload the whole
932         address.
933
934 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
935
936         * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
937         (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
938         (cleanup_control_expr_graph): Do not invalidate dominance info.
939         Record altered blocks.
940         (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
941         (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
942         cleanup_tree_cfg_bb): New functions.
943         (remove_forwarder_block): Do not maintain the worklist of blocks.
944         Record altered blocks.
945         (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
946         not over whole cfg.
947         (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
948         delete_unreachable_blocks if dominators are not available.
949         * tree-inline.c (optimize_inline_calls): Free dominance information
950         earlier.
951         * tree-flow.h (remove_edge_and_dominated_blocks,
952         cfgcleanup_altered_bbs): Altered.
953         * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
954         blocks.
955         (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
956         functions.
957         (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
958         do not invalidate dominators.
959
960 2007-04-26  Anatoly Sokolov <aesok@post.ru>
961
962         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
963         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
964         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
965         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
966
967 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
968
969         * config/ia64/ia64.md (ip_value):  Fix itanium_class attribute.
970
971 2007-04-26  Richard Guenther  <rguenther@suse.de>
972
973         PR tree-optimization/31703
974         * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
975         the right type for the target of the bittest.
976
977 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
978
979         * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
980         ix86_sol10_return_in_memory.
981
982 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
983
984         * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
985         variables.
986
987 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
988
989         PR c++/31598
990         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
991
992         PR tree-optimization/30558
993         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
994         clear this_state.prev_try.
995
996 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
997             Mark Mitchell  <mark@codesourcery.com>
998
999         * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
1000         * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
1001         * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
1002
1003 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
1004
1005         PR driver/31107
1006         * doc/invoke.texi (%:print-asm-header): Document.
1007         * gcc.c (asm_options): Use %:print-asm-header() for --target-help
1008         and -ftarget-help.
1009         (static_spec_functions): Add print-asm-header.
1010         (main): Print a banner before the --target-help linker options.
1011         (print_asm_header_spec_function): New function.
1012
1013 2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1014
1015         PR target/31403
1016         * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
1017         (movsf_ie): Likewise.
1018
1019 2007-04-25  Paolo Carlini  <pcarlini@suse.de>
1020
1021         * doc/extend.texi ([Type Traits]): Adjust per N2255.
1022
1023 2007-04-25  Bob Wilson  <bob.wilson@acm.org>
1024
1025         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an exception
1026         for divide-by-zero.
1027         (__umodsi3, __modsi3): Likewise.
1028
1029 2007-04-25  Dirk Mueller  <dmueller@suse.de>
1030
1031         * c-typeck.c (build_compound_expr): Annotate warning()
1032         call with OPT_Wunused_value.
1033         * tree-ssa.c (warn_uninit): Annotate warning with
1034         OPT_Wunintialized.
1035         * c-common.c (handle_sentinel_attribute): Annotate warning
1036         call with OPT_Wattributes.
1037
1038 2007-04-25  Thiemo Seufer  <ths@mips.com>
1039
1040         * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
1041         (mips16): Fix typo.
1042         * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
1043         on to the assembler.  Improve handling of -mno-mips16.  Add handling
1044         of -mno-mips3d, -mno-dsp, -mno-dspr2.
1045         * doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
1046         of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
1047         -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
1048
1049 2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>
1050
1051         PR target/31680
1052         * config/i386/winnt.c (i386_pe_file_end): Strip only
1053         USER_LABEL_PREFIX when writing export name.
1054
1055 2007-04-25  Richard Sandiford  <richard@codesourcery.com>
1056
1057         * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
1058         sh/elf.h, vx-common.h and vxworks.h.
1059         * config/sh/sh.h: Include config/vxworks-dummy.h.
1060         (SUBTARGET_OVERRIDE_OPTIONS): Define.
1061         (OVERRIDE_OPTIONS): Use it.
1062         * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
1063         (vxworks_picreg): New pattern.
1064         * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
1065         VXWORKS_OS_CPP_BUILTINS.
1066         (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
1067         to their VXWORKS_* equivalents.
1068         (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
1069         (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
1070         * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
1071         (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
1072         * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
1073         -mrtp/-fPIC multilibs.
1074         (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
1075         (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
1076         (MULTILIB_OSDIRNAMES): Delete.
1077
1078 2007-04-25  Anatoly Sokolov <aesok@post.ru>
1079
1080         PR target/18989
1081         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
1082
1083 2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>
1084
1085         * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
1086         rounding mode to be specified by the caller.
1087         (real_to_mpfr) Likewise.
1088         * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
1089         include new arguments.
1090         * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
1091
1092 2007-04-24  Ian Lance Taylor  <iant@google.com>
1093
1094         PR tree-optimization/31605
1095         * tree-vrp.c (set_value_range): Check that min and max are not
1096         both overflow infinities.
1097         (set_value_range_to_value): New static function.
1098         (extract_range_from_binary_expr): Call set_value_range_to_value.
1099         (extract_range_from_cond_expr): Likewise.
1100         (extract_range_from_expr): Likewise.
1101         (extract_range_from_unary_expr): Likewise.  Don't create a range
1102         which overflows on both sides.
1103         (vrp_meet): Check for a useless range.
1104         (vrp_visit_phi_node): If we see a constant which looks like an
1105         overflow infinity, turn off the TREE_OVERFLOW flag.
1106
1107 2007-04-24  Ian Lance Taylor  <iant@google.com>
1108
1109         * flow.c (elim_reg_cond): Handle a comparison of a subreg.
1110
1111 2007-04-24  Simon Martin  <simartin@users.sourceforge.net>
1112
1113         PR diagnostic/25923
1114         * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
1115         diagnostic message is being built.
1116         * tree-pretty-print.c (dump_generic_node): Only write the
1117         formatted text into BUFFER's stream if we are not building a
1118         diagnostic message.
1119         * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
1120         dump_generic_node.
1121         * Makefile.in (toplev.o): Depend on tree-pass.h.
1122
1123 2007-04-24  Ian Lance Taylor  <iant@google.com>
1124
1125         PR tree-optimization/31602
1126         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
1127         conditionals in the copied loop header.
1128         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
1129         warnings if TREE_NO_WARNING is set.
1130         * doc/invoke.texi (Warning Options): Clarify that
1131         -Wstrict-overflow does not warn about loops.
1132
1133 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
1134
1135         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
1136         expand on the comment about _Decimal128 arguments and check the
1137         integer result of the modulus operation; for 64-bit ELF ABI, ensure
1138         that _Decimal128 argument uses even/odd register pair.
1139         (function_arg): Ditto.
1140
1141 2007-04-24  Hui-May Chang <hm.chang@apple.com>
1142
1143         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
1144         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
1145
1146 2007-04-24  Richard Guenther  <rguenther@suse.de>
1147             Olga Golovanevsky  <olga@il.ibm.com>
1148
1149         * fold-const.c (multiple_of_p): Check for bottom
1150         to be zero.
1151
1152 2007-04-24  Richard Henderson  <rth@redhat.com>
1153
1154         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
1155         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
1156         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
1157         looking for non-zero bits shifted out.  Avoid a recursive call
1158         when constructing the scalar.
1159         (__floatundisf): Likewise.
1160
1161 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
1162
1163         * dwarf2out.c (field_byte_offset): Move the existing logic
1164         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
1165         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
1166
1167 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1168
1169         PR target/31641
1170         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
1171         argument of 0 for memset.
1172         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
1173         unsigned shift instead of the signed variant.
1174
1175 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1176
1177         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
1178         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
1179         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
1180         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
1181         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1182         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
1183         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
1184         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
1185         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
1186         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
1187         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
1188         "mul<mode>3", "div<mode>3"): Insn definitions added.
1189         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
1190         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
1191         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
1192         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
1193         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
1194         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
1195         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
1196         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
1197         TARGET_FLOAT_FORMAT): Macro definitions removed.
1198         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
1199         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
1200         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
1201         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
1202         (s390_gen_rtx_const_DI): Function removed.
1203         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
1204
1205 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
1206
1207         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
1208         over an external ffs function.
1209
1210 2007-04-24  Chao-ying Fu  <fu@mips.com>
1211             Richard Sandiford  <richard@nildram.co.uk>
1212
1213         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
1214         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
1215         (smadd_widen_optab, umadd_widen_optab): Define.
1216         * optabs.c (init_optabs): Initialize smadd_widen_optab and
1217         umadd_widen_optab.
1218         * genopinit.c (optabs): Fill in smadd_widen_optab and
1219         umadd_widen_optab.
1220         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
1221         and umadd_widen_optab to implement multiply-add sequences.
1222         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
1223         (<u>maddsidi4): ...this.  Extend condition to include
1224         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
1225         of operand 0 to "ka" and use the three-operand form of madd<u>
1226         for TARGET_DSPR2.
1227         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
1228         to define_expands.
1229         * config/mips/constraints.md (ka): New register constraint.
1230
1231 2007-04-24  Jan Hubicka  <j@suse.cz>
1232
1233         Revert:
1234
1235         2007-04-23  Jan Hubicka  <jh@suse.cz>
1236         * function.c (init_function_start): Don't init line number info.
1237         (expand_function_end): Update.
1238         (reset_block_changes, record_block_change, finalize_block_changes,
1239         check_block_change, free_block_changes): Kill.
1240         * function.h (reset_block_changes, record_block_change,
1241         finalize_block_changes, check_block_change, free_block_changes): Remove
1242         prototypes.
1243         (struct function): Remove ib_boundaries_block.
1244         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
1245         Use curr_insn_locator to initialize locator.
1246         (emit_line_note): Remove.
1247         * cfgexpand.c (expand_gimple_cond_expr): Update.
1248         (construct_exit_block): Likewise.
1249         (tree_expand_cfg): Initialize/finalize locators.
1250         * expr.c (expand_expr_real): Update.
1251         * cfglayout.c (line_locators_locs, line_locators_lines,
1252         file_locators_locs, file_locators_files): Remove.
1253         (set_block_levels): Move to cfgexpand.c.
1254         (insn_locators_initialize): Remove.
1255         (pass_insn_locators_initialize): Remove.
1256         (locations_locators_locs, locations_locators_vals): New static vars.
1257         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
1258         Likewise.
1259         (insn_locators_alloc, insn_locators_finalize,
1260         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1261         New functions.
1262         (locator_location): New.
1263         (locator_line, locator_file): Rewrite.
1264         * rtl.h (emit_line_note): Kill.
1265         (insn_locators_alloc, insn_locators_finalize,
1266         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1267         Declare.
1268         * tree-inline.c (initialize_cfun): Do not initialize
1269         ib_boundaries_block.
1270         * passes.c (pass_insn_locators_initialize): Remove.
1271
1272 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
1273
1274         * doc/invoke.texi: Removed leading '-' from option index entries.
1275
1276 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
1277
1278         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
1279         Use phi_nodes_ptr.
1280         (create_phi_node): Use set_phi_nodes.
1281         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
1282         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
1283         (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
1284         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
1285         (bsi_start, bsi_last): Use bb_stmt_list.
1286         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
1287         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
1288         Traverse the statements using tsi iterator.
1289         * basic-block.h (struct basic_block_def): Fields stmt_list
1290         and phi_nodes moved to ...
1291         (struct tree_bb_info): ... new structure.
1292         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
1293         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
1294         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
1295         (tree_verify_flow_info): Verify that il.tree is not set for
1296         entry and exit block.
1297         (tree_split_block): Use set_bb_stmt_list.
1298
1299 2007-04-23  Mike Stump  <mrs@apple.com>
1300
1301         * config/i386/i386.c (ix86_tune_features
1302         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
1303         nocona and core2.
1304
1305 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
1306
1307         * config/i386/i386.md (prefix_extra): New attribute.
1308         (length): Add prefix_extra.
1309
1310         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
1311         (sse2_movntv2di): Likewise.
1312         (sse2_cvtps2dq): Likewise.
1313         (sse2_cvtpd2pi): Likewise.
1314         (sse2_cvttpd2pi): Likewise.
1315         (*sse2_cvtpd2ps): Likewise.
1316         (*add<mode>3): Likewise.
1317         (sse2_ssadd<mode>3): Likewise.
1318         (sse2_usadd<mode>3): Likewise.
1319         (*sub<mode>3): Likewise.
1320         (sse2_sssub<mode>3): Likewise.
1321         (sse2_ussub<mode>3): Likewise.
1322         (*mulv8hi3): Likewise.
1323         (*smulv8hi3_highpart): Likewise.
1324         (*umulv8hi3_highpart): Likewise.
1325         (sse2_umulv2siv2di3): Likewise.
1326         (sse2_pmaddwd): Likewise.
1327         (ashr<mode>3): Likewise.
1328         (lshr<mode>3): Likewise.
1329         (ashl<mode>3): Likewise.
1330         (sse2_ashlti3): Likewise.
1331         (sse2_lshrti3): Likewise.
1332         (*umaxv16qi3): Likewise.
1333         (*smaxv8hi3): Likewise.
1334         (*uminv16qi3): Likewise.
1335         (*sminv8hi3): Likewise.
1336         (sse2_eq<mode>3): Likewise.
1337         (sse2_gt<mode>3): Likewise.
1338         (*and<mode>3): Likewise.
1339         (sse2_nand<mode>3): Likewise.
1340         (*ior<mode>3): Likewise.
1341         (*xor<mode>3): Likewise.
1342         (sse2_packsswb): Likewise.
1343         (sse2_packssdw): Likewise.
1344         (sse2_packuswb): Likewise.
1345         (sse2_punpckhbw): Likewise.
1346         (sse2_punpcklbw): Likewise.
1347         (sse2_punpckhwd): Likewise.
1348         (sse2_punpcklwd): Likewise.
1349         (sse2_punpckhdq): Likewise.
1350         (sse2_punpckldq): Likewise.
1351         (sse2_punpckhqdq): Likewise.
1352         (sse2_punpcklqdq): Likewise.
1353         (*sse2_pinsrw): Likewise.
1354         (*sse2_pextrw): Likewise.
1355         (sse2_pshufd_1): Likewise.
1356         (sse2_uavgv16qi3): Likewise.
1357         (sse2_uavgv8hi3): Likewise.
1358         (sse2_psadbw): Likewise.
1359         (sse2_pmovmskb): Likewise.
1360         (*sse2_maskmovdqu): Likewise.
1361         (*sse2_maskmovdqu_rex64): Likewise.
1362         (sse4a_extrqi): Likewise.
1363         (sse4a_extrq): Likewise.
1364         (sse3_lddqu): Set prefix_rep.
1365         (sse3_addsubv4sf3): Likewise.
1366         (sse3_haddv4sf3): Likewise.
1367         (sse3_hsubv4sf3): Likewise.
1368         (sse_cvtss2si): Likewise.
1369         (sse_cvtss2si_2): Likewise.
1370         (sse_cvtss2siq): Likewise.
1371         (sse_cvtss2siq_2): Likewise.
1372         (sse_cvttss2si): Likewise.
1373         (sse_cvttss2siq): Likewise.
1374         (sse2_cvttps2dq): Likewise.
1375         (sse3_movshdup): Likewise.
1376         (sse3_movsldup): Likewise.
1377         (sse2_cvtsd2si): Likewise.
1378         (sse2_cvtsd2si_2): Likewise.
1379         (sse2_cvtsd2siq): Likewise.
1380         (sse2_cvtsd2siq_2): Likewise.
1381         (sse2_cvttsd2si): Likewise.
1382         (sse2_cvttsd2siq): Likewise.
1383         (*sse2_cvtpd2dq): Likewise.
1384         (*sse2_cvttpd2dq): Likewise.
1385         (sse2_pshuflw_1): Likewise.
1386         (sse2_pshufhw_1): Likewise.
1387         (sse4a_insertqi): Likewise.
1388         (sse4a_insertq): Likewise.
1389         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
1390         (ssse3_phadddv4si3): Likewise.
1391         (ssse3_phaddswv8hi3): Likewise.
1392         (ssse3_phsubwv8hi3): Likewise.
1393         (ssse3_phsubdv4si3): Likewise.
1394         (ssse3_phsubswv8hi3): Likewise.
1395         (ssse3_pmaddubswv8hi3): Likewise.
1396         (ssse3_pmulhrswv8hi3): Likewise.
1397         (ssse3_pshufbv16qi3): Likewise.
1398         (ssse3_psign<mode>3): Likewise.
1399         (ssse3_palignrti): Likewise.
1400         (abs<mode>2): Likewise.
1401         (ssse3_phaddwv4hi3): Set prefix_extra.
1402         (ssse3_phadddv2si3): Likewise.
1403         (ssse3_phaddswv4hi3): Likewise.
1404         (ssse3_phsubwv4hi3): Likewise.
1405         (ssse3_phsubdv2si3): Likewise.
1406         (ssse3_phsubswv4hi3): Likewise.
1407         (ssse3_pmaddubswv4hi3): Likewise.
1408         (ssse3_pmulhrswv4hi3): Likewise.
1409         (ssse3_pshufbv8qi3): Likewise.
1410         (ssse3_psign<mode>3): Likewise.
1411         (ssse3_palignrdi): Likewise.
1412         (abs<mode>2): Likewise.
1413         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
1414         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
1415         (sse2_pmovmskb): Set mode to SI instead of V2DF.
1416
1417 2007-04-23  Nick Clifton  <nickc@redhat.com>
1418
1419         * params.def: Fix formatting of emacs local variables.
1420
1421 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
1422
1423         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
1424         move if inter-unit move isn't allowed.
1425         Don't split moving the first element of V2DI to DI to inter-unit
1426         move if inter-unit move isn't allowed.
1427
1428 2007-04-23  Richard Guenther  <rguenther@suse.de>
1429
1430         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
1431         and CDI_POST_DOMINATORS separately.
1432
1433 2007-04-23  Nick Clifton  <nickc@redhat.com>
1434
1435         * c.opt (Wformat-contains-nul): Add warning attribute.
1436
1437 2007-04-23  Jan Hubicka  <jh@suse.cz>
1438
1439         * function.c (init_function_start): Don't init line number info.
1440         (expand_function_end): Update.
1441         (reset_block_changes, record_block_change, finalize_block_changes,
1442         check_block_change, free_block_changes): Kill.
1443         * function.h (reset_block_changes, record_block_change,
1444         finalize_block_changes, check_block_change, free_block_changes): Remove
1445         prototypes.
1446         (struct function): Remove ib_boundaries_block.
1447         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
1448         Use curr_insn_locator to initialize locator.
1449         (emit_line_note): Remove.
1450         * cfgexpand.c (expand_gimple_cond_expr): Update.
1451         (construct_exit_block): Likewise.
1452         (tree_expand_cfg): Initialize/finalize locators.
1453         * expr.c (expand_expr_real): Update.
1454         * cfglayout.c (line_locators_locs, line_locators_lines,
1455         file_locators_locs, file_locators_files): Remove.
1456         (set_block_levels): Move to cfgexpand.c.
1457         (insn_locators_initialize): Remove.
1458         (pass_insn_locators_initialize): Remove.
1459         (locations_locators_locs, locations_locators_vals): New static vars.
1460         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
1461         Likewise.
1462         (insn_locators_alloc, insn_locators_finalize,
1463         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1464         New functions.
1465         (locator_location): New.
1466         (locator_line, locator_file): Rewrite.
1467         * rtl.h (emit_line_note): Kill.
1468         (insn_locators_alloc, insn_locators_finalize,
1469         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1470         Declare.
1471         * tree-inline.c (initialize_cfun): Do not initialize
1472         ib_boundaries_block.
1473         * passes.c (pass_insn_locators_initialize): Remove.
1474
1475 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1476
1477         PR middle-end/31448
1478         * expr.c (reduce_to_bit_field_precision): Handle
1479         CONST_INT rtx's.
1480
1481 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
1482
1483         PR tree-optimization/24659
1484         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
1485         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
1486         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
1487         * genopinit.c (optabs): Rename vec_pack_mod_optab
1488         to vec_pack_trunc_optab.
1489         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
1490         early for scalar floating point operands for NOP_EXPR.
1491         (vectorizable_type_promotion): Ditto.
1492         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
1493         vec_pack_trunc_optab.
1494         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
1495
1496         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
1497         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
1498         Rename from VEC_PACK_MOD_EXPR.
1499         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
1500         * expr.c (expand_expr_real_1): Ditto.
1501         * tree-inline.c (estimate_num_insns_1): Ditto.
1502         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1503
1504         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
1505         (vec_unpacks_lo_v4sf): Ditto.
1506         (vec_pack_trunc_v2df): Ditto.
1507         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
1508         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
1509         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
1510
1511         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
1512         vec_pack_mod_v8hi.
1513         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
1514
1515         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
1516         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
1517         packing of floating point operands.
1518         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
1519         represent unpacking of floating point operands.
1520         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
1521         [vec_unpacks_hi]: Ditto.
1522         [vec_unpacks_lo]: Ditto.
1523
1524 2007-04-22  Jan Hubicka  <jh@suse.cz>
1525
1526         * final.c (rest_of_handle_final): Call
1527         targetm.asm_out.constructor/targetm.asm_out.destructor
1528         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
1529         proper priority via decl_*_priority_insert.
1530         * c-common.c (c_expand_body): Likewise.
1531
1532 2007-04-22  Richard Guenther  <rguenther@suse.de>
1533
1534         PR tree-optimization/29789
1535         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
1536         (rewrite_reciprocal): New helper split out from
1537         determine_invariantness_stmt.
1538         (rewrite_bittest): Likewise.
1539         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
1540         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
1541         is not.
1542
1543 2007-04-22  Revital Eres  <eres@il.ibm.com>
1544
1545         * loop-unroll.c (var_to_expand): New field to support also
1546         insns of the form x = something + x.
1547         (analyze_insn_to_expand_var): Use it.
1548         (expand_var_during_unrolling): Likewise.
1549
1550 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
1551
1552         * predict.c: Include pointer-set.h.
1553         (bb_predictions): New variable.
1554         (tree_predicted_by_p, tree_predict_edge,
1555         remove_predictions_associated_with_edge): Use bb_predictions map
1556         instead of bb->predictions.
1557         (clear_bb_predictions, assert_is_empty): New functions.
1558         (combine_predictions_for_bb): Use bb_predictions map.  Call
1559         clear_bb_predictions.
1560         (tree_estimate_probability): Create and free bb_predictions map.
1561         * Makefile.in (predict.o): Add pointer-set.h dependency.
1562         * basic-block.h (struct basic_block_def): Remove predictions
1563         field.
1564         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
1565
1566 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1567
1568         PR target/31480
1569         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
1570         is null.
1571
1572 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1573
1574         * timevar.c (timevar_print): Change reference of --disable-checking to
1575         --enable-checking=release.  Also warn if assert checking is disabled.
1576
1577 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1578
1579         PR C/30265
1580         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
1581         decl as addressable if the compound literal was marked as
1582         addressable.
1583         Mark the decl as a gimple register if it is a complex or
1584         vector decl and does not live in memory.
1585
1586 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1587
1588         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
1589         (GENERIC_NEXT): New function macro.
1590         (PHI_CHAIN): Use phi_node's new chain variable.
1591         (tree_phi_node): Change tree_common to tree_base
1592         and add the chain field.
1593         * tree-phinodes.c (make_phi_node): Don't set
1594         TREE_TYPE on the new node.
1595         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
1596         instead of checking GIMPLE_TUPLE_P in chain_next.
1597         * tree-vect-transform.c
1598         (get_initial_def_for_induction): Look at
1599         PHI_RESULT_TREE for the type of the phi node.
1600         (update_vuses_to_preheader): Use PHI_CHAIN
1601         instead of TREE_CHAIN on the phi node.
1602         * tree-ssa-structalias.c (compute_points_to_sets):
1603         Likewise.
1604         (ipa_pta_execute): Likewise.
1605
1606 2007-04-21  Richard Guenther  <rguenther@suse.de>
1607
1608         PR middle-end/31136
1609         * fold-const.c (fold_unary): Call fold_convert_const on the
1610         original tree.
1611
1612 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
1613
1614         * gcse.c (store_killed_in_insn): Handle PARALLELs.
1615         (store_killed_in_pat): New.
1616
1617 2007-04-20  Richard Henderson  <rth@redhat.com>
1618
1619         PR target/31628
1620         * config/i386/i386.c (type_has_variadic_args_p): Look for any
1621         TREE_LIST with a void_type_node value, not void_list_node exactly.
1622
1623 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
1624
1625         * doc/standards.texi: Re-arrange into language-specific
1626         subsections. Add a C++ section, documenting which standards we
1627         support.
1628
1629 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
1630
1631         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
1632         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
1633
1634 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
1635
1636         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
1637         ecrti.o and crtbegin.o.
1638         (LIB_DEFAULT_SPEC): Include -lc.
1639         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
1640
1641 2007-04-20  Richard Henderson  <rth@redhat.com>
1642
1643         PR target/28623
1644         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
1645         argument; update all callers.
1646         (get_unaligned_offset): New.
1647         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
1648         get_unaligned_address, just pass on the address directly.
1649         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
1650         the subreg in the helper patterns.
1651         (unaligned_extendqidi_le): Use get_unaligned_offset.
1652         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
1653         (unaligned_extendhidi_be): Likewise.
1654         (unaligned_extendhidi): Tidy.
1655         * config/alpha/alpha-protos.h: Update.
1656
1657 2007-04-20  Richard Henderson  <rth@redhat.com>
1658
1659         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
1660         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1661         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
1662         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
1663         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
1664         (CPP_SPEC): Don't include %(cpp_subtarget).
1665         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
1666         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
1667         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
1668
1669 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
1670
1671         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
1672         for __builtin_ia32_cmpordss.
1673
1674         PR tree-optimization/31632
1675         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
1676         and arg1 for optimizations of comparison against min/max values.
1677         Fold arg0 to arg1's type for optimizations of comparison against
1678         min+1 and max-1 values.
1679
1680 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1681
1682         * reload.c (combine_reloads): When trying to use a dying register,
1683         check whether it's uninitialized and don't use if so.
1684
1685 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
1686
1687         * fold-const.c: Remove prototypes for native_encode_expr and
1688         native_interpret_expr.
1689         (native_encode_expr): Make non-static.
1690         (native_interpret_expr): Likewise.
1691         * tree.h: Add prototypes for the above.
1692
1693 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
1694
1695         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
1696         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
1697         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
1698         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
1699         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
1700         Add length attributes.
1701
1702 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
1703
1704         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
1705         not that it is 1.
1706
1707         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
1708         __STDC_WANT_DEC_FP__.
1709
1710 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
1711
1712         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
1713         for long double compatibility.
1714         * configure: Regenerate.
1715
1716 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1717
1718         PR rtl-optimization/29841
1719         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
1720         trap instructions.
1721         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
1722         that may cause control flow transfer from being moved.
1723
1724 2007-04-18  Jan Hubicka  <jh@suse.cz>
1725
1726         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
1727         types.
1728
1729 2007-04-18  Eric Christopher  <echristo@apple.com>
1730
1731         * config/rs6000/darwin.md (load_macho_picbase): Use link register
1732         only. Update operands.
1733         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
1734         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
1735         link register to pic register.
1736
1737 2007-04-18  Dirk Mueller  <dmueller@suse.de>
1738
1739         PR diagnostic/31227
1740         * tree-vrp.c (search_for_addr_array): New.
1741         (check_array_bounds): Suppress warning about
1742         address taken of array refs if its not de-referenced.
1743
1744 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
1745
1746         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
1747         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
1748
1749         * tree-vectorizer.h (NITERS_KNOWN_P): New.
1750         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
1751         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
1752
1753         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
1754         dump print.
1755         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
1756         print message.
1757         (vect_analyze_scalar_cycles): Fix indentation.
1758         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
1759         (vect_mark_relevant): Include phis in relevance analysis.
1760
1761         * tree-vect-transform.c (vect_transform_loop): Add an assert.
1762
1763 2007-04-18  Anatoly Sokolov <aesok@post.ru>
1764
1765         * config/avr/avr.c (ptrreg_to_str): Replace error() with
1766         output_operand_lossage().
1767
1768 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
1769
1770         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
1771         the unused code for reduction without adjust-in-epilog to simplify the
1772         function.
1773
1774 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
1775
1776         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
1777         (S390_TDC_NEGATIVE_ZERO): New constant.
1778         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
1779         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
1780         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
1781         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
1782         (S390_TDC_POSITIVE_INFINITY): New constant.
1783         (S390_TDC_NEGATIVE_INFINITY): New constant.
1784         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
1785         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
1786         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
1787         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
1788         (S390_TDC_INFINITY): New constant.
1789         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
1790         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
1791         optimization for UNSPEC_CCZ_TO_INT.
1792         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
1793         ("*ccz_to_int"): New insn.
1794         ("isinf<mode>2"): New insn.
1795         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
1796         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
1797         (UNSPEC_CCZ_TO_INT): New constant.
1798
1799 2007-04-18  Richard Guenther  <rguenther@suse.de>
1800
1801         PR tree-optimization/19431
1802         PR tree-optimization/21463
1803         * tree-pass.h (pass_phiprop): Declare.
1804         * passes.c (init_optimization_passes): New phiprop pass.
1805         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
1806         (phivn_valid_p): New helper function.
1807         (phiprop_insert_phi): Likewise.
1808         (propagate_with_phi): Likewise.
1809         (tree_ssa_phiprop): New propagator propagating loads
1810         through phi nodes if profitable.
1811
1812 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
1813
1814         * tree-vect-analyze.c (process_use): New function.
1815         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
1816         Check phis in all bbs.
1817         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
1818         assert.
1819
1820 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
1821
1822         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
1823         we use REG_EQUAL.
1824
1825 2007-04-17  Anatoly Sokolov <aesok@post.ru>
1826
1827         PR target/30483
1828         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
1829         error().
1830
1831 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1832
1833         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
1834         on "0".
1835         (sse_vmmulv4sf3): Likewise.
1836         (sse2_vmaddv2df3): Likewise.
1837         (sse2_vmmulv2df3): Likewise.
1838
1839 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
1840
1841         PR rtl-optimization/31360
1842         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
1843         (target_reg_cost): New.
1844         (init_set_costs): Initialize target_reg_cost.  Add comments
1845         regarding the rationale of the costs.
1846         (global_cost_for_size): Renamed to...
1847         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
1848         of register pressure.
1849         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
1850         estimate_reg_pressure_cost.  Add number of ivs.
1851         (determine_set_costs): Dump target_reg_cost.
1852         * loop-invariant.c (gain_for_invariant):  Use
1853         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
1854         (best_gain_for_invariant, find_invariants_to_move): Remove
1855         n_inv_uses.
1856         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
1857         (target_reg_cost): Declare.
1858         (global_cost_for_size): Declaration removed.
1859         (estimate_reg_pressure_cost): Declare.
1860
1861 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
1862
1863         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
1864         regnos into even/odd register pairs.
1865         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
1866         TDmode similar to the other floating point modes.
1867         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
1868         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
1869         define_expand's.
1870         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
1871         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
1872         (movdd_hardfloat64): Use TARGET_MFPGPR.
1873
1874 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1875
1876         * reload1.c (delete_output_reload): Don't count output in n_inherited.
1877
1878         Revert
1879         2005-01-05  Richard Henderson  <rth@redhat.com>
1880         PR rtl-opt/10692
1881         * reload1.c (do_input_reload): Restrict the optimization deleteing
1882         a previous output reload to RELOAD_FOR_INPUT.
1883
1884 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
1885
1886         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
1887         induc_vec_info_type.
1888         (vectorizable_induction): New function declaration.
1889         * tree-vect-transform.c (get_initial_def_for_induction): No need to
1890         check if already vectorized.  Find first place in BB where new stmts
1891         can be inserted.  Takes only one argument.
1892         (vectorizable_induction): New function.
1893         (vect_transform_stmt): Add case for induc_vec_info_type to call
1894         vectorizable_induction.
1895         (vect_transform_loop): Consider phis for vectorization.
1896         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
1897         condition.
1898         (analyze_operations): Call vectorizable_induction when analyzing phis.
1899         Fix comment.
1900         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
1901         (vect_mark_relevant): Include phis in relevance analysis.
1902         (vect_mark_stmts_to_be_vectorize): Likewise.
1903         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
1904
1905 2007-04-16  Lawrence Crowl  <crowl@google.com>
1906
1907         * doc/invoke.texi (Debugging Options): Add documentation for the
1908         -femit-struct-debug options -femit-struct-debug-baseonly,
1909         -femit-struct-debug-reduced, and
1910         -femit-struct-debug-detailed[=...].
1911
1912         * c-opts.c (c_common_handle_option): Add
1913         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
1914         and OPT_femit_struct_debug_detailed_.
1915         * c.opt: Add specifications for
1916         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
1917         and -femit-struct-debug-detailed[=...].
1918         * opts.c (set_struct_debug_option): Parse the
1919         -femit-struct-debug-... options.
1920         * opts.c (matches_main_base, main_input_basename,
1921         main_input_baselength, base_of_path, matches_main_base): Add
1922         variables and functions to compare header base name to compilation
1923         unit base name.
1924         * opts.c (should_emit_struct_debug): Add to determine to emit a
1925         structure based on the option.
1926         (dump_struct_debug) Also disabled function to debug this
1927         function.
1928         * opts.c (handle_options): Save the base name of the
1929         compilation unit.
1930
1931         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
1932         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
1933         This hook indicates if a type is generic.  Set it by default
1934         to "never generic".
1935         * langhooks.h (struct lang_hooks_for_types): Add a new hook
1936         to determine if a struct type is generic or not.
1937         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
1938         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
1939         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
1940         with live C++ hook.
1941
1942         * flags.h (enum debug_info_usage): Add an enumeration to describe
1943         a program's use of a structure type.
1944         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
1945         to indicate the program's usage of the type.  Filter structs based
1946         on the -femit-struct-debug-... specification.
1947         (gen_type_die): Split into two routines, gen_type_die and
1948         gen_type_die_with_usage.  gen_type_die is now a wrapper
1949         that assumes direct usage.
1950         (gen_type_die_with_usage): Replace calls to gen_type_die
1951         with gen_type_die_with_usage adding the program usage of
1952         the referenced type.
1953         (dwarf2out_imported_module_or_decl): Suppress struct debug
1954         information using should_emit_struct_debug when appropriate.
1955
1956 2007-04-16  Ian Lance Taylor  <iant@google.com>
1957
1958         PR tree-optimization/31522
1959         * tree-vrp.c (vr_phi_edge_counts): New static variable.
1960         (vrp_initialize): Allocate vr_phi_edge_counts.
1961         (vrp_visit_phi_node): Don't push to infinity if we saw a new
1962         executable edge.  Drop test for all constants.
1963         (vrp_finalize): Free vrp_phi_edge_counts.
1964
1965         * doc/cpp.texi (Common Predefined Macros): Clarify description of
1966         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
1967
1968         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
1969         predecessors at head rather than tail.
1970
1971 2007-04-16  Matthias Klose  <doko@debian.org>
1972
1973         * config/alpha/linux.h (CPP_SPEC): Define.
1974         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
1975
1976 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
1977
1978         * function.h: Remove sequence_stack extern declaration.
1979
1980 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
1981
1982         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
1983         TARGET_FIDOA.
1984         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
1985         defined.
1986
1987 2007-04-16  Anatoly Sokolov <aesok@post.ru>
1988
1989         * config/avr/avr.c (avr_arch_types): Rearranging  array.
1990         (enum avr_arch): Add.
1991         (avr_mcu_types): Use avr_arch enumeration constants instead of
1992         numbers.
1993         * config/avr/avr.h (LINK_SPEC): Simplify.
1994
1995 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
1996
1997         * config/m68k/m68k.c (m68k_libcall_value,
1998         m68k_function_value): Use macros for register names more.
1999
2000         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
2001         instead.
2002         (M68K_REGNAME): Use A6_REG.
2003         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
2004
2005 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2006
2007         PR middle-end/28071
2008         * sched-int.h (struct deps): Split field 'pending_lists_length' into
2009         'pending_read_list_length' and 'pending_write_list_length'.  Update
2010         comment.
2011         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
2012         to handle two length counters instead of one.  Update all uses.
2013         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
2014         two length counters instead of one.
2015         * sched-rgn.c (propagate_deps): Update to handle two length counters
2016         instead of one.
2017
2018 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
2019
2020         PR target/31582
2021         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
2022         copy of source, pass it to ix86_expand_vector_set and return
2023         it as target.
2024
2025 2007-04-16  David Ung  <davidu@mips.com>
2026             Joseph Myers  <joseph@codesourcery.com>
2027
2028         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
2029         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
2030         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
2031         Add 74K processor information.
2032         * config/mips/mips.md: Include 74k.md.
2033         (cpu): Add 74kc,74kf,74kx.
2034         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
2035         * config/mips/74k.md: New.
2036         * doc/invoke.texi (MIPS Options): Document 74K support.
2037
2038 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
2039
2040         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
2041         vectorizable_* functions.
2042         * tree-vect-transform.c (vectorizable_call): Add check for
2043         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
2044         (vectorizable_store): likewise.
2045         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
2046         Add comments.
2047         (vectorizable_operation, vectorizable_type_demotion): Likewise.
2048         (vectorizable_type_promotion, vectorizable_load): Likewise.
2049         (vectorizable_live_operation, vectorizable_condition): Likewise.
2050         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
2051         STMT_VINFO_LIVE_P.
2052         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
2053
2054 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
2055
2056         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
2057         register numbers more.
2058         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
2059         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
2060         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
2061         FUNCTION_VALUE_REGNO_P): Likewise.
2062         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
2063         STATIC_CHAIN_REGNUM): Likewise.
2064         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
2065         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
2066         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
2067         * config/m68k/m68k.md (FP_REG): New.
2068
2069 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
2070
2071         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
2072         alignment on fido.
2073
2074 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
2075
2076         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
2077         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
2078         comment typos.
2079
2080 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
2081
2082         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
2083         cold loops.
2084
2085 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2086
2087         PR c/31520
2088         * c-decl.c (finish_decl): Grab the type of the decl after the call
2089         to store_init_value.
2090
2091 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
2092
2093         * common.opt (fforward-propagate): Fix "Optimization" annotation.
2094
2095 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
2096
2097         PR c++/25874
2098         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
2099         post dominators and cleanup cfg before returning.
2100
2101 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
2102
2103         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
2104         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
2105
2106 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
2107
2108         * config.gcc: Recognize fido.
2109         * config/m68k/m68k-devices.def (fidoa): New.
2110         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
2111         __mfido__.
2112         (FL_FIDOA, TARGET_FIDOA): New.
2113         * config/m68k/m68k.opt (mfidoa): New.
2114
2115 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2116
2117         PR middle-end/31322
2118         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
2119         when a personality function is used.
2120
2121 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
2122
2123         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
2124
2125 2007-04-13  Mike Stump  <mrs@apple.com>
2126
2127         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
2128         we can...
2129         * config/darwin.opt (fapple-kext): Make C++ only.
2130         * config/darwin.c (darwin_override_options): Remove code to ensure
2131         -fapple-kext is given for C++ only.
2132
2133 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
2134
2135         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
2136         * config/mips/mips.c (override_options): Call
2137         SUBTARGET_OVERRIDE_OPTIONS, if defined.
2138
2139 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
2140
2141         * config/i386/i386.opt (msvr3-shlib): Removed.
2142
2143         * doc/invoke.texi: Remove -msvr3-shlib.
2144
2145 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
2146
2147         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
2148         with "popcnt" instruction.
2149
2150 2007-04-13  Richard Guenther  <rguenther@suse.de>
2151
2152         PR tree-optimization/21258
2153         * tree-vrp.c (compare_case_labels): New helper.
2154         (find_switch_asserts): New function.
2155         (find_assert_locations): Call it for SWITCH_EXPRs.
2156
2157 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
2158
2159         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
2160         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
2161         check is now implied in X87_FLOAT_MODE_P.
2162         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
2163         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
2164         (fix_trunc<mode>_i386_fisttp): Ditto.
2165         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
2166         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
2167         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
2168         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
2169         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
2170         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
2171         (unnamed_splitters): Ditto.
2172         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
2173         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
2174         FIRST_SSE_REG for local functions when SSE math is enabled or
2175         for functions with sseregparm attribute.
2176         (standard_80387_constant_p): Return -1 if mode is not
2177         X87_FLOAT_MODE_P.
2178         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
2179         (ix86_expand_compare): Ditto.
2180         (ix86_expand_carry_flag_compare): Ditto.
2181         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
2182         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
2183         DECIMAL_FLOAT_MODE_P.
2184         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
2185         of SCALAR_FLOAT_MODE_P.
2186         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
2187         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
2188         checks before FLOAT_MODE_P.
2189         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
2190         before FLOAT_MODE_P.
2191         [DIV]: Ditto.
2192         [NEG]: Ditto.
2193         [ABS]: Ditto.
2194         [SQRT]: Ditto.
2195         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
2196
2197 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
2198             Charles Wilson  <libtool@cwilson.fastmail.fm>
2199
2200         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
2201         (libgcc.mvars): Don't depend on them.
2202         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
2203         * exec-tool.in: New.
2204
2205 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
2206
2207         * doc/invoke.text (--help): Document --help=common.
2208
2209 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
2210
2211         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
2212
2213 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2214
2215         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
2216         * genemit.c (main): Emit #include "integrate.h".
2217         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
2218         (LOADGP_RTP): New mips_loadgp_style.
2219         * config/mips/mips.h: Include config/vxworks-dummy.h.
2220         (TARGET_RTP_PIC): New macro.
2221         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
2222         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
2223         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
2224         for TARGET_RTP_PIC.
2225         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
2226         -mvxworks-pic when using -mrtp and a PIC option.
2227         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
2228         for RTP PIC.
2229         (mips_symbolic_constant_p, mips_symbolic_address_p)
2230         (mips_symbol_insns): Handle SYMBOL_HALF.
2231         (override_options): Warn about -G and -mrtp being used together.
2232         Initialize mips_lo_relocs[SYMBOL_HALF].
2233         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
2234         (mips_emit_loadgp): Handle LOADGP_RTP.
2235         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
2236         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
2237         (tablejump): Handle function-relative case table entries if
2238         TARGET_RTP_PIC.
2239         * config/mips/predicates.md (symbol_ref_operand): New predicate.
2240
2241 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2242
2243         * config/mips/mips.md (load_call<mode>): Allow any general register.
2244         destination.
2245         (sibcall_value_internal, sibcall_value_multiple_internal)
2246         (call_value_internal, call_value_split, call_value_multiple_internal)
2247         (call_value_multiple_split): Remove constraints from operand 0.
2248
2249 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2250
2251         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
2252         rather than loadgp_noshared.
2253         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
2254         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
2255         gen_loadgp.
2256         * config/mips/mips.md (loadgp): Rename to...
2257         (loadgp_newabi): ...this.
2258         (loadgp_noshared): Rename to...
2259         (loadgp_absolute): ...this.
2260
2261 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2262
2263         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
2264         false for locally-binding symbols.
2265         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
2266
2267 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2268
2269         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
2270         (SYMBOL_GOT_PAGE_OFST): ...this.
2271         (SYMBOL_GOT_GLOBAL): Rename to...
2272         (SYMBOL_GOT_DISP): ...this.
2273         (SYMBOL_GOTOFF_GLOBAL): Rename to...
2274         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
2275         * config/mips/mips.c (mips_global_symbol_p): New function.
2276         (mips_symbol_binds_local_p): Likewise.
2277         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
2278         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use mips_global_symbol_p
2279         and mips_symbol_binds_local_p.
2280         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
2281         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
2282         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
2283         SYMBOL_GOTOFF_DISP.
2284         (mips_ok_for_lazy_binding_p): New function.
2285         (mips_load_call_address, mips_expand_call): Use it.
2286         (mips_dangerous_for_la25_p): Likewise.
2287         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
2288         (*got_disp<mode>): Use got_disp_operand instead of
2289         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
2290         SYMBOL_GOTOFF_GLOBAL.
2291         (*got_page<mode>): Use got_page_ofst_operand instead of
2292         local_got_operand.
2293         * config/mips/predicates.md (const_call_insn_operand): Use
2294         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
2295         (global_got_operand): Rename to...
2296         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
2297         SYMBOL_GOT_GLOBAL.
2298         (local_got_operand): Rename to...
2299         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
2300         of SYMBOL_GOT_LOCAL.
2301
2302 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2303
2304         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
2305         TARGET_CALL_CLOBBERED_GP.
2306         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2307         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
2308         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
2309         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
2310         of TARGET_ABICALLS && !TARGET_NEWABI.
2311         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2312         * config/mips/mips.c (mips_load_call_address): Check
2313         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
2314         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2315         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
2316         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
2317         TARGET_ABICALLS && TARGET_NEWABI.
2318         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
2319         TARGET_ABICALLS.
2320         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
2321         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
2322         TARGET_ABICALLS && TARGET_NEWABI.
2323         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
2324         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
2325         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
2326         whether indirect calls must use $25.
2327         (mips_extra_live_on_entry): Check TARGET_GOT instead of
2328         TARGET_ABICALLS.
2329         * config/mips/mips.md (jal_macro): Check flag_pic and
2330         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
2331         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
2332         instead of TARGET_ABICALLS.
2333         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
2334         TARGET_ABICALLS && TARGET_OLDABI.
2335         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2336         (sibcall): In the comment above the define_insn, mention
2337         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
2338         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
2339         instead of TARGET_ABICALLS.
2340
2341 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2342
2343         * doc/md.texi (Blackfin family constraints): Document PA and PB.
2344         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
2345         (MACFLAGS_MATCH_P): New macro.
2346         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
2347         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
2348         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
2349         the other MACFLAG constants.
2350         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
2351         (flag_machi): Tighten constraints.  Renumber some of the operands.
2352         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
2353         output template.
2354         (flag_machi_parts_acconly): New pattern.
2355         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
2356         used.
2357         (flag_macinit1hi): Tighten constraints.
2358         (flag_mul_macv2hi_parts_acconly): New pattern.
2359
2360         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
2361         Use a more efficient implementation.
2362         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
2363         inline sequences when not optimizing for size.
2364
2365         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
2366         movhi_high2low): Delete, merge functionality into...
2367         (packv2hi): ... this pattern.
2368
2369         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
2370         * config/bfin/bfin.opt (msim): New option.
2371         (mcpu=): New option.
2372         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
2373         (bfin_cpu_t): Typedef of enum bfin_cpu.
2374         (bfin_cpu_type): New declaration.
2375         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
2376         -msim and -mcpu= options.
2377         (LIB_SPEC): Likewise.
2378         * config/bfin/bfin.c (bfin_cpu_type): Define.
2379         (bfin_handle_option): Handle -mcpu= option.
2380         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
2381         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
2382         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
2383
2384 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2385
2386         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
2387         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
2388         (powerpc-wrs-vxworksae): Use ${tm_file}.
2389         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
2390         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
2391         * config/i386/vx-common.h: New file.
2392
2393 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
2394
2395         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
2396         of crt0.o%s.
2397
2398 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2399
2400         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
2401         ldxtr.
2402
2403 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
2404
2405         PR c++/31078
2406         PR c++/31103
2407         * c-common.c (c_build_qualified_type): Set canonical type
2408         appropriately.
2409
2410 2007-04-12  Richard Guenther  <rguenther@suse.de>
2411
2412         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
2413         lower bound and element size if lower bound is not zero
2414         or either of the ARRAY_REF operands is set.
2415
2416 2007-04-12  Richard Guenther  <rguenther@suse.de>
2417
2418         PR tree-optimization/24689
2419         PR tree-optimization/31307
2420         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
2421         indices by value.
2422         * gimplify.c (canonicalize_addr_expr): To be consistent with
2423         gimplify_compound_lval only set operands two and three of
2424         ARRAY_REFs if they are not gimple_min_invariant.  This makes
2425         it never at this place.
2426         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
2427
2428 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2429
2430         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
2431         null before emitting a .nsubspa directive.
2432
2433 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
2434
2435         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
2436         need_to_partition_p if there are no memory statements in the
2437         function.
2438
2439 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
2440
2441         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
2442         (gcd_of_steps_may_divide_p): New function.
2443         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
2444
2445 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2446
2447         * reload.c (find_reloads_toplev, find_reloads_address,
2448         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
2449         not a pointer equality test, to decide if we need to call
2450         push_reg_equiv_alt_mem.
2451
2452 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
2453
2454         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
2455         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
2456         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
2457
2458 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
2459
2460         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
2461         vector to be positive.
2462
2463 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
2464
2465         PR 30735
2466         PR 31090
2467         * doc/invoke.texi: Document --params max-aliased-vops and
2468         avg-aliased-vops.
2469         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
2470         debug_memory_partitions): Move to tree-flow.h
2471         * params.h (AVG_ALIASED_VOPS): Define.
2472         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
2473         users.
2474         (mp_info_t): Likewise.
2475         (get_mem_sym_stats_for): New.
2476         (set_memory_partition): Move from tree-flow-inline.h.
2477         (mark_non_addressable): Only clear the set of symbols for the
2478         partition if it exists.
2479         (dump_memory_partitions): Move from tree-ssa-operands.c
2480         (debug_memory_partitions): Likewise.
2481         (need_to_partition_p): New.
2482         (dump_mem_ref_stats): New.
2483         (debug_mem_ref_stats): New.
2484         (dump_mem_sym_stats): New.
2485         (debug_mem_sym_stats): New.
2486         (update_mem_sym_stats_from_stmt): New.
2487         (compare_mp_info_entries): New.
2488         (mp_info_cmp): Call it.
2489         (sort_mp_info): Change argument to a list of mem_sym_stats_t
2490         objects.
2491         (get_mpt_for): Move from tree-ssa-operands.c.
2492         (find_partition_for): New.
2493         (create_partition_for): Remove.
2494         (estimate_vop_reduction): New.
2495         (update_reference_counts): New.
2496         (build_mp_info): New.
2497         (compute_memory_partitions): Refactor.
2498         Document new heuristic.
2499         Call build_mp_info, update_reference_counts,
2500         find_partition_for and estimate_vop_reduction.
2501         (compute_may_aliases): Populate virtual operands before
2502         calling debugging dumps.
2503         (delete_mem_sym_stats): New.
2504         (delete_mem_ref_stats): New.
2505         (init_mem_ref_stats): New.
2506         (init_alias_info): Call it.
2507         (maybe_create_global_var): Remove alias_info argument.
2508         Get number of call sites and number of pure/const call sites
2509         from gimple_mem_ref_stats().
2510         (dump_alias_info): Call dump_memory_partitions first.
2511         (dump_points_to_info_for): Show how many times a pointer has
2512         been dereferenced.
2513         * opts.c (decode_options): For -O2 set --param
2514         max-aliased-vops to 500.
2515         For -O3 set --param max-aliased-vops to 1000 and --param
2516         avg-aliased-vops to 3.
2517         * fortran/options.c (gfc_init_options): Remove assignment to
2518         MAX_ALIASED_VOPS.
2519         * tree-flow-inline.h (gimple_mem_ref_stats): New.
2520         * tree-dfa.c (dump_variable): Dump memory reference
2521         statistics.
2522         Dump NO_ALIAS* settings.
2523         (referenced_var_lookup): Tidy.
2524         (mem_sym_stats): New.
2525         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
2526         and ORIG are different SSA names for a memory partition.
2527         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
2528         * tree-flow.h (struct mem_sym_stats_d): Define.
2529         (mem_sym_stats_t): Define.
2530         (struct mem_ref_stats_d): Define.
2531         (struct gimple_df): Add field mem_ref_stats.
2532         (enum noalias_state): Define.
2533         (struct var_ann_d): Add bitfield noalias_state.
2534         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
2535         debug_mem_ref_stats, debug_memory_partitions,
2536         debug_mem_sym_stats): Declare.
2537         * tree-ssa-structalias.c (update_alias_info): Update call
2538         sites, pure/const call sites and asm sites in structure
2539         returned by gimple_mem_ref_stats.
2540         Remove local variable IS_POTENTIAL_DEREF.
2541         Increase NUM_DEREFS if the memory expression is a potential
2542         dereference.
2543         Call update_mem_sym_stats_from_stmt.
2544         If the memory references memory, call
2545         update_mem_sym_stats_from_stmt for all the direct memory
2546         symbol references found.
2547         (intra_create_variable_infos): Set noalias_state field for
2548         pointer arguments according to the value of
2549         flag_argument_noalias.
2550         * tree-ssa-structalias.h (struct alias_info): Remove fields
2551         num_calls_found and num_pure_const_calls_found.
2552         (update_mem_sym_stats_from_stmt): Declare.
2553         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
2554         Set default value to 100.
2555         (PARAM_AVG_ALIASED_VOPS): Define.
2556
2557 2007-04-11  Richard Guenther  <rguenther@suse.de>
2558
2559         PR middle-end/31530
2560         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
2561         a * -b + c as c - a * b if we honor sign dependent rounding.
2562
2563 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2564
2565         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
2566         bfin_expand_strmov.
2567         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
2568         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
2569         variables.
2570         (initialize_trampoline): Don't use old-style function definition.
2571         (bfin_secondary_reload): Mark IN_P argument as unused.
2572
2573 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
2574
2575         PR tree-optimization/31343
2576         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
2577         (build_polynomial_chrec): Return a scalar when the evolution is zero.
2578         * testsuite/gcc.dg/vect/pr31343.c: New.
2579
2580 2007-04-10  Eric Christopher  <echristo@apple.com>
2581
2582         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
2583         * config/i386/i386.md (*cmpfp0): Use.
2584         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
2585         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
2586         (fix_trunc<mode>_i386_fisttp): Ditto.
2587         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
2588         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
2589         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
2590         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
2591         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
2592         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
2593         (unnamed_splitters): Ditto.
2594         * config/i386/i386.c (output_fix_trunc): Assert that
2595         we're not being passed a TFmode operand.
2596
2597 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
2598
2599         PR tree-optimization/31526
2600         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
2601         n_basic_blocks to find newly added blocks.
2602
2603 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
2604
2605         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
2606         alternative.
2607         (fix_trunc<mode>si_sse): Ditto.
2608         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
2609         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
2610         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
2611         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
2612         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
2613         expander using SSEMODEF mode macro.
2614         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
2615         expander using SSEMODEF mode macro.
2616         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
2617         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
2618         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
2619         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
2620         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
2621         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
2622         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
2623         Macroize insn using X87MODEF mode macro.
2624
2625 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
2626
2627         * config/i386/sse.md (sse2_pinsrw): Removed.
2628         (sse2_pextrw): Renamed to ...
2629         (*sse2_pextrw): This.
2630
2631 2007-04-09  Jan Hubicka  <jh@suse.cz>
2632
2633         PR target/27869
2634         * config/i386/sse.md
2635         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
2636         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
2637         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
2638         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
2639
2640 2007-04-09  Jan Hubicka  <jh@suse.cz>
2641
2642         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
2643         multiple fields of union.
2644
2645 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
2646
2647         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
2648         (create_preheaders): Check that loops are available.
2649         (fix_loop_structure): Clean up, improve comments.
2650         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
2651         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
2652         state flags.
2653         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
2654         * predict.c (tree_estimate_probability): Do not call
2655         calculate_dominance_info.  Call create_preheaders.
2656         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
2657         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
2658         flags.
2659         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
2660         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
2661         * tree-cfg.c (tree_split_edge): Make an assert more precise.
2662         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
2663         arguments.
2664
2665 2007-04-08  Jan Hubicka  <jh@suse.cz>
2666
2667         * tree.h (maybe_fold_offset_to_component_ref): Declare.
2668         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
2669         * fold-const.c (fold_unary): Use it.
2670
2671 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2672
2673         * varasm.c (assemble_variable): Remove call to
2674         lang_hooks.decls.prepare_assemble_variable.
2675         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
2676         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
2677         * langhooks.h (lang_hooks_for_decls): Remove
2678         prepare_assemble_variable.
2679
2680 2007-04-08  Mike Stump  <mrs@apple.com>
2681
2682         * config/i386/i386.c: Use inc/dec on Core2.
2683
2684 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
2685
2686         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
2687         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
2688         lhd_tree_inlining_end_inlining): Remove.
2689         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
2690         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
2691         end_inlining hooks.
2692         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
2693         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
2694         lhd_tree_inlining_end_inlining): Remove prototypes.
2695         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
2696         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
2697         LANG_HOOKS_TREE_INLINING_START_INLINING,
2698         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
2699
2700         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
2701         not set it.
2702
2703 2007-04-08  Anatoly Sokolov <aesok@post.ru>
2704
2705         PR target/29932
2706         * config/avr/predicates.md (io_address_operand): Delete predicate.
2707         (low_io_address_operand): Don't use 'mode' argument.
2708         (higth_io_address_operand): Rename ...
2709         (high_io_address_operand): ... to this. Don't use 'mode' argument.
2710         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
2711         for above change.
2712
2713 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
2714
2715         Revert change removing staticp.
2716
2717 2007-04-07  Anatoly Sokolov <aesok@post.ru>
2718
2719         PR target/30289
2720         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
2721         earlyclobber.
2722
2723 2007-04-07  Bruce Korb  <bkorb@gnu.org>
2724
2725         * c.opt: Add -Wformat-contains-nul.
2726         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
2727           -Wformat setting.
2728         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
2729         the NUL byte warning.
2730
2731 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2732
2733         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
2734
2735 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
2736
2737         * tree.c (staticp): No longer use staticp langhook.
2738         * langhooks.c (lhd_staticp): Removed.
2739         * langhooks.h (struct lang_hooks): Remove staticp.
2740         * c-common.c (c_staticp): Remove.
2741         * c-common.h (c_staticp): Ditto.
2742         * langhooks-defs.h (lhd_staticp): Ditto.
2743         (LHD_HOOKS_STATICP): Ditto
2744         * tree.h (gcc_assert_lowered): New macro.
2745
2746 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
2747
2748         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
2749         argument "reliable".
2750         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
2751         Add argument "reliable".  Propagate it through calls.
2752         (infer_loop_bounds_from_undefined):  Derive number of iterations
2753         estimates from references in blocks that do not dominate loop latch.
2754         (gcov_type_to_double_int): New function.
2755         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
2756         and expected_loop_iterations_unbounded.
2757         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
2758         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
2759         * tree-data-ref.c (estimated_loop_iterations): Export.
2760         (get_references_in_stmt): Fix -- do not return addresses of local
2761         objects.
2762         * cfgloop.h (expected_loop_iterations_unbounded,
2763         estimated_loop_iterations): Declare.
2764
2765 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
2766
2767         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
2768
2769 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
2770
2771         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
2772         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
2773         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
2774         Use output_387_reg_move().
2775         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
2776         expander using X87MODEF12 mode macro.
2777         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
2778         choosing register preferences.  Use output_387_reg_move().
2779         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
2780         instead of "x".  Use output_387_reg_move().
2781         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
2782         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
2783         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
2784         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
2785         Use output_387_reg_move().
2786         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
2787         mode macro.
2788         (*truncxf?f_i387 splitter): Ditto.
2789
2790 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
2791
2792         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
2793         LANG_HOOKS_SAFE_FROM_P.
2794         * expr.c (safe_from_p): Remove langhook call.
2795         * langhooks.h (lang_hooks): Remove safe_from_p.
2796         (lhd_safe_from_p): Remove prototype.
2797         * langhooks.c (lhd_safe_from_p): Remove.
2798
2799 2007-04-06  Jan Hubicka  <jh@suse.cz>
2800
2801         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
2802         functions.
2803
2804 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
2805
2806         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
2807         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
2808         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
2809         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
2810         alternative.
2811         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
2812         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
2813
2814 2007-04-05  Richard Henderson  <rth@redhat.com>
2815
2816         * config/alpha/alpha.c (print_operand) [+]: Remove.
2817         (alpha_end_function): Print nop if call at end of function.
2818         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
2819         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
2820         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
2821         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
2822         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
2823         the call pattern. Update peepholes to match.
2824
2825 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
2826
2827         * doc/extend.texi (Other Builtins): Add decimal float variants
2828         of signbit.
2829         * builtins.def: Ditto.
2830         * builtins.c (expand_builtin): Ditto.
2831
2832 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
2833             H.J. Lu  <hongjiu.lu@intel.com>
2834
2835         PR target/31478
2836         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
2837         of V8HImode when calling ix86_binary_operator_ok.
2838         (sse2_pmaddwd): Call ix86_binary_operator_ok.
2839         (sdot_prodv8hi): Operands 1 and 2 must be register.
2840
2841 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
2842
2843         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
2844         initialize align to silence bogus warning.
2845
2846 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
2847
2848         PR middle-end/22156
2849         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
2850         all_no_warning.
2851         (struct sra_walk_fns): Remove use_all parameter from use.
2852         (sra_hash_tree): Handle BIT_FIELD_REFs.
2853         (sra_elt_hash): Don't hash bitfld blocks.
2854         (sra_elt_eq): Skip them in parent compares as well.  Handle
2855         BIT_FIELD_REFs.
2856         (sra_walk_expr): Don't maintain or pass down use_all_p.
2857         (scan_use): Remove use_all parameter.
2858         (scalarize_use): Likewise.  Re-expand assignment to
2859         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
2860         output, and re-scalarize after output.  Don't mark anything
2861         for no warning.
2862         (scalarize_ldst): Adjust.
2863         (scalarize_walk_gimple_modify_statement): Likewise.
2864         (build_element_name_1): Handle BIT_FIELD_REFs.
2865         (instantiate_element): Don't warn for any element whose parent
2866         is used as a whole.
2867         (instantiate_missing_elements_1): Return the sra_elt.
2868         (canon_type_for_field): New.
2869         (try_instantiate_multiple_fields): New.
2870         (instantiate_missing_elemnts): Use them.
2871         (mark_no_warning): Removed.
2872         (generate_one_element_ref): Handle BIT_FIELD_REFs.
2873         (REPLDUP, sra_build_elt_assignment): New.
2874         (generate_copy_inout): Use them.
2875         (generate_element_copy): Likewise.  Handle bitfld differences.
2876         (generate_element_zero): Don't recurse for blocks.  Use
2877         sra_build_elt_assignment.
2878         (generate_one_element_int): Take elt instead of var.  Use
2879         sra_build_elt_assignment.
2880         (generate_element_init_1): Adjust.
2881         (scalarize_use, scalarize_copy): Use REPLDUP.
2882         (scalarize_ldst): Move assert before dereference.
2883         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
2884
2885 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2886
2887         * regmove.c: Fix unused variable warnings due to previous commit.
2888
2889 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2890
2891         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
2892         (regmove_bb_head): Remove.
2893         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
2894         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
2895         problems with fixup_match_1.
2896         Don't initialize/free regmove_bb_head.
2897
2898         (reg_is_remote_constant_p): If an insn is in the same basic block
2899         but not before INSN, consider it remote, too.
2900
2901 2007-04-05  Anatoly Sokolov <aesok@post.ru>
2902
2903         PR target/25448
2904         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
2905         DECL_ASSEMBLER_NAME, not the DECL_NAME.
2906
2907 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
2908
2909         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
2910         (CONDITIONAL_REGISTER_USAGE): Likewise.
2911
2912 2007-04-04  Richard Henderson  <rth@redhat.com>
2913
2914         * config/alpha/lib1funcs.asm: Remove unused file.
2915
2916 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
2917
2918         PR other/31356
2919         * opts.c (print_specific_help): Fix --help=<language>
2920         header line.
2921         (common_handle_option): Support --help=common.
2922
2923 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
2924
2925         PR other/31353
2926         * gcc.c (main): Do not run the linker if
2927         print_subprocess_help indicates that it shouldn't be
2928         run.
2929
2930 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
2931
2932         PR doc/31355
2933         * doc/invoke.texi (--help=): Document <languages> value, fix
2934         formatting in tables of values.
2935
2936 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
2937
2938         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
2939         dllimport attribute of virtual methods.
2940
2941 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
2942
2943         * config/score/crti.asm: Change _bss_start to __bss_start.
2944         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
2945         (OUTGOING_REG_PARM_STACK_SPACE) update.
2946         * config/score/score.opt: add options to make backend support
2947         score5, score5u, score7 and score7d.
2948         * config/score/score.md: Likewise.
2949         * config/score/misc.md: Likewise.
2950         * config/score/mac.md: Likewise.
2951         * doc/invoke.texi: Likewise.
2952         * doc/md.texi: update constraints define.
2953
2954 2007-04-03  Richard Henderson  <rth@redhat.com>
2955
2956         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
2957         an appropriate type, use the mode instead.
2958
2959 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
2960
2961         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
2962         Set the default --with-arch setting to mips2.
2963         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
2964         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
2965         (MULTILIB_OSDIRNAMES): Delete.
2966         (MULTILIB_DIRNAMES): Define.
2967         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
2968         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
2969         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
2970         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
2971         VXWORKS_OS_CPP_BUILTINS.
2972         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
2973         (MIPS_DEBUGGING_INFO): Undefine.
2974         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
2975
2976 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
2977
2978         PR middle-end/30704
2979         * fold-const.c (native_encode_real): Encode real.c provided longs
2980         as a series of 32-bit native integers.
2981         (native_interpret_real): Interpret buffer as a series of 32-bit
2982         native integers.
2983
2984 2007-04-03  Richard Guenther  <rguenther@suse.de>
2985
2986         * genpreds.c (write_insn_constraint_len): Write function
2987         optimized for CONSTRAINT_LEN implementation.
2988         (write_tm_preds_h): Output insn_constraint_len inline and
2989         use it for CONSTRAINT_LEN.
2990         (write_insn_preds_c): Don't output insn_constraint_len.
2991         * doc/md.texi (define_register_constraint): Document multi-letter
2992         constraints shall have the same length if they start with the same
2993         letter.
2994
2995 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
2996
2997         PR target/31175
2998         * config/i386/i386.md (isinf<mode>2): Expand only when
2999         TARGET_C99_FUNCTIONS is set.
3000
3001 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
3002
3003         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
3004         (x86_64-*-linux*): Ditto.
3005         * config/i386/i386.opt (mpc): New option.
3006         * config/i386/i386.c (overrride_options): Handle
3007         ix87_precision_string.
3008         * config/i386/crtprec.c: New file.
3009         * config/i386/t-crtpc: Ditto.
3010         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
3011         and -mpc80 options.
3012         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
3013         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
3014         crtprec32.o, crtprec64.o and crtprec80.o.
3015
3016         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
3017         and -mpc80 options.
3018         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
3019
3020 2007-04-02  Eric Christopher  <echristo@apple.com>
3021
3022         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
3023         limitations on darwin.
3024
3025 2007-04-02  Anatoly Sokolov <aesok@post.ru>
3026
3027         PR target/31137
3028         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
3029
3030 2007-04-02  Dave Korn  <dave.korn@artimi.com>
3031
3032         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
3033
3034 2007-04-02  Dave Korn  <dave.korn@artimi.com>
3035
3036         * libgcc2.h (exception_descriptor): Don't forward-declare.
3037         (__get_eh_table_language, __get_eh_table_version): Delete
3038         prototypes of long-dead functions.
3039
3040 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
3041
3042         * ebitmap.h: New file
3043         * ebitmap.c: New file
3044         * Makefile.in (ebitmap.o): New target.
3045
3046 2007-04-01  Jan Hubicka  <jh@suse.cz>
3047
3048         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
3049         before very first instruction.
3050
3051 2007-04-01  Jan Hubicka  <jh@suse.cz>
3052
3053         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
3054         waring on 64bit hosts.
3055         * bitmap.h: Fix typo in bitmap_head_def.
3056
3057 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
3058
3059         PR rtl-optimization/31391
3060         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
3061         into a DELETED_LABEL note, and the label is in an empty basic
3062         block, update BB_END as well as BB_HEAD.
3063
3064 2007-04-01  Richard Henderson  <rth@redhat.com>
3065
3066         PR tree-optimization/31169
3067         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
3068         to varying if the range is outside [0,  prec-1].
3069
3070 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
3071
3072         PR target/31388
3073         * config/mips/mips.md (load_const_gp): New insn.
3074         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
3075         the MIPS16 GP pseudo register if no_new_pseudos.
3076         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
3077
3078 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3079
3080         PR target/31364
3081         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
3082         secureplt.
3083         (call_value): Likewise.
3084
3085 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
3086             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3087
3088         PR 14737
3089         * doc/invoke.texi: (optimization options): Reword description
3090         of -ffast-math. Document its primary purpose.
3091
3092 2007-03-31  Richard Guenther  <rguenther@suse.de>
3093
3094         * omp-low.c (splay-tree.h): Include.
3095         (lookup_decl): Replace splay-tree usage by pointer-map.
3096         (maybe_lookup_decl): Likewise.
3097         (new_omp_context): Likewise.
3098         (delete_omp_context): Likewise.
3099         * gimplify.c (splay-tree.h): Include.
3100         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
3101         pointer-map.
3102         (remap_ssa_name): Likewise.
3103         (remap_decl): Likewise.
3104         (remap_type_1): Likewise.
3105         (remap_type): Likewise.
3106         (copy_body_r): Likewise.
3107         (expand_call_inline): Likewise.
3108         (clone_body): Likewise.
3109         (copy_tree_r): Likewise.
3110         (remap_save_expr): Likewise.
3111         (unsave_r): Likewise.
3112         (unsave_expr_now): Likewise.
3113         (tree_function_versioning): Likewise.
3114         (build_duplicate_type): Likewise.
3115         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
3116         (struct copy_body_data): Replace splay-tree by pointer-map.
3117         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
3118         not $(SPLAY_TREE_H).
3119         (gimplify.o): Depend on $(SPLAY_TREE_H).
3120         (omp-low.p): Likewise.
3121
3122 2007-03-31  Anatoly Sokolov <aesok@post.ru>
3123
3124         * config/avr/predicates.md (even_register_operand,
3125         odd_register_operand): New predicates.
3126         * config/avr/avr.md (movw peephole2): New.
3127         (movw_r peephole2): New.
3128
3129 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
3130
3131         * tree.h (get_signed_or_unsigned_type): New.
3132         * fold-const.c (operand_equal_for_comparison_p): Use
3133         get_signed_or_unsigned_type instead of
3134         lang_hooks.types.signed_or_unsigned_type.
3135         * expr.c (store_expr): Ditto.
3136         * langhooks.c (get_signed_or_unsigned_type): New.
3137         (lhd_signed_or_unsigned_type): New.
3138         * langhooks.h (lhd_signed_or_unsigned_type): New.
3139         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
3140
3141 2007-03-30  Richard Henderson  <rth@redhat.com>
3142
3143         * tree-ssa-loop-ivopts.c: Include target.h.
3144         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
3145         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
3146         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
3147         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
3148
3149 2007-03-30  Richard Henderson  <rth@redhat.com>
3150             Kai Tietz  <kai.tietz@onevision.com>
3151
3152         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
3153         default for 64-bit.
3154         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
3155         (TARGET_64BIT_MS_ABI): New.
3156         (DBX_REGISTER_NUMBER): Handle 64-bit.
3157         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
3158         (LONG_TYPE_SIZE): Force to 32.
3159         (REG_PARM_STACK_SPACE): New.
3160         (OUTGOING_REG_PARM_STACK_SPACE): New.
3161         (REGPARM_MAX, SSE_REGPARM_MAX): New.
3162         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
3163         (STACK_BOUNDARY): Use 128 for 64-bit.
3164         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
3165         Add 64-bit implementation.
3166         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
3167         argument unused.
3168         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
3169         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
3170         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
3171         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
3172         (ix86_handle_cconv_attribute): Don't warn when ignoring if
3173         TARGET_64BIT_MS_ABI.
3174         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
3175         (ix86_pass_by_reference): Likewise.
3176         (ix86_function_value_regno_p): Likewise.
3177         (ix86_build_builtin_va_list): Likewise.
3178         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3179         (function_arg_advance_ms_64): New.
3180         (function_arg_advance): Call it.
3181         (function_arg_ms_64): New.
3182         (function_arg): Call it.
3183         (function_value_ms_64): New.
3184         (ix86_function_value_1): Call it.
3185         (return_in_memory_ms_64): New.
3186         (ix86_return_in_memory): Call it.
3187         (setup_incoming_varargs_ms_64): New.
3188         (ix86_setup_incoming_varargs): Call it.
3189         (ix86_expand_prologue): Handle 64-bit stack probing.
3190         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
3191         (output_pic_addr_const): Likewise.
3192         (x86_this_parameter): Likewise.
3193         (x86_output_mi_thunk): Likewise.
3194         (x86_function_profiler): Likewise.
3195         (TARGET_STRICT_ARGUMENT_NAMING): New.
3196         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
3197         (TARGET_64BIT_MS_ABI): New.
3198         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
3199         * config/i386/i386.md (allocate_stack_worker): Remove.
3200         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
3201         describe the clobber of eax without a match_scratch.
3202         (allocate_stack_worker_postreload): Remove.
3203         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
3204         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
3205         (allocate_stack_worker_rex64_postreload): Remove.
3206         (allocate_stack): Handle 64-bit.
3207         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
3208         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
3209         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
3210         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
3211         (STANDARD_STARTFILE_PREFIX_1): Likewise.
3212         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
3213         * config.build (x86_64-*-mingw*): New host.
3214         * config.host (x86_64-*-mingw*): New host.
3215         * config.gcc (x86_64-*-mingw*): New target.
3216         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
3217
3218 2007-03-30  Richard Henderson  <rth@redhat.com>
3219             Kai Tietz  <kai.tietz@onevision.com>
3220
3221         * c-pragma.c (struct def_pragma_macro_value): New.
3222         (struct def_pragma_macro): New.
3223         (pushed_macro_table): New.
3224         (dpm_hash, dpm_eq): New.
3225         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
3226         (init_pragma): Install them.
3227         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
3228
3229 2007-03-30  Anatoly Sokolov <aesok@post.ru>
3230
3231         * config/avr/avr.c (avr_override_options): Clear
3232         'flag_delete_null_pointer_checks'.
3233
3234 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
3235
3236         PR c++/26099
3237         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
3238         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
3239         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
3240         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
3241         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
3242         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
3243         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
3244         C++ extensions.
3245         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
3246
3247 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
3248
3249         * regmove.c: Move all of pass_stack_adjustments from here...
3250         * combine-stack-adj.c: ...to this new file.
3251         * Makefile.in: Add rules for combine-stack-adj.o.
3252
3253 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
3254
3255         PR tree-optimization/31383
3256         * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
3257         to have the same length.
3258
3259 2007-03-30  Jan Hubicka  <jh@suse.cz>
3260
3261         PR middle-end/30700
3262         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
3263         availablility; add more sanity checking; ask varpool only about
3264         VAR_DECL.
3265
3266 2007-03-29  Richard Henderson  <rth@redhat.com>
3267
3268         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
3269         to decide, but __SIZEOF_LONG_LONG__.
3270
3271 2007-03-29  Richard Henderson  <rth@redhat.com>
3272
3273         * emutls.c (struct __emutls_array): New.
3274         (emutls_destroy): Use it instead of casting element 0 from void*.
3275         (__emutls_get_address): Likewise.
3276
3277 2007-03-29  Richard Henderson  <rth@redhat.com>
3278
3279         * varasm.c (initializer_constant_valid_p): Don't deny
3280         DECL_DLLIMPORT_P on functions.
3281
3282         * config/i386/cygming.h: Remove function declarations.
3283         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
3284         (ASM_OUTPUT_LABELREF): Remove.
3285         (COMMON_ASM_OP): Remove.
3286         (ASM_OUTPUT_COMMON): Remove.
3287         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
3288         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
3289         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3290         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
3291         Rename from TARGET_ENCODE_SECTION_INFO.
3292         * config/i386/netware.h: Likewise.
3293         * config/i386/i386-protos.h: Update.
3294         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
3295         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
3296         (legitimate_constant_p): Reject dllimports.
3297         (dllimport_map, get_dllimport_decl): New.
3298         (legitimize_dllimport_symbol): New.
3299         (legitimize_address, ix86_expand_move): Use it.
3300         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
3301         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
3302         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
3303         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
3304         * config/i386/predicates.md (constant_call_address_operand): Only
3305         accept symbols; reject dllimport_p symbols.
3306         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
3307         i386_pe_maybe_record_exported_symbol.
3308         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
3309         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
3310         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
3311         trust the setting of DECL_DLLIMPORT_P.
3312         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
3313         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
3314         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
3315         tidy the argument scanning loop.
3316         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
3317         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
3318         (i386_pe_strip_name_encoding): Remove.
3319         (i386_pe_binds_local_p): New.
3320         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
3321         (i386_pe_output_labelref): Remove.
3322         (i386_pe_asm_output_aligned_decl_common): New.
3323         (i386_pe_maybe_record_exported_symbol): Rename from
3324         i386_pe_record_exported_symbol; check for dllexported symbols.
3325
3326 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
3327
3328         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
3329         add comment explaining why vsnprintf cannot be used.
3330
3331 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
3332
3333         PR tree-optimization/30666
3334         * tree.c (build_complex_type): When creating type names for DWARF2
3335         debug info, create TYPE_DECLs for TYPE_NAME instead of
3336         IDENTIFIER_NODEs.
3337         (build_common_tree_nodes_2): Use build_complex_type when building
3338         predefined complex types, to preserve canonical types.
3339
3340 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
3341
3342         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
3343         (noce_get_alt_condition): Look at it to determine whether to
3344         reverse the condition or not.
3345         (noce_get_condition): Substitute the truth for lies.
3346         (noce_find_if_block): Set the then_else_reversed field.
3347
3348 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
3349
3350         * config/fr30/fr30.md (movdi): Do not accept immediates as the
3351         destination of this insn.
3352         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
3353         than calling gen_rtx_SET directly.  Use r0 to hold the value of
3354         'address + 4' rather than a stack based temporary which can be
3355         mis-optimized away.
3356
3357 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3358
3359         * config/s390/s390.c (s390_secondary_input_reload_class,
3360         s390_secondary_output_reload_class): Functions removed.
3361         (s390_secondary_reload): New function.
3362         (TARGET_SECONDARY_RELOAD): Target macro defined.
3363         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
3364         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
3365         * config/s390/s390.md ("reload_outti", "reload_outdi",
3366         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
3367         "reload_out<mode>"): Expanders removed.
3368         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
3369         "reload<mode>_nonoffmem_out"): Expanders added.
3370
3371 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3372
3373         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
3374         SRC->DEST replacement failed anyway.
3375
3376 2007-03-28  Mike Stump  <mrs@apple.com>
3377
3378         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
3379         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
3380         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
3381
3382 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3383
3384         * config.gcc: Accept barcelona as a variant of amdfam10.
3385         * config/i386/i386.c (override_options): Likewise.
3386         * doc/invoke.texi: Likewise.
3387
3388 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3389
3390         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
3391         offsets for BIT_FIELD_REF and COMPONENT_REF.
3392
3393 2007-03-28  Richard Guenther  <rguenther@suse.de>
3394
3395         * tree.c (is_global_var): Move ...
3396         * tree-flow-inline.h (is_global_var): ... here.
3397         * tree.h (is_global_var): Remove declaration.
3398
3399 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
3400
3401         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
3402         option.
3403         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
3404         * config/i386/i386.c (ix86_tune_features): Initialize new
3405         tuning option.
3406         * config/i386/predicates.md (promotable_binary_operator): Use
3407         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
3408
3409 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
3410
3411         PR target/31380
3412         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
3413
3414 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
3415
3416         * config/fr30/fr30.md (movsi_internal): Change destination
3417         constraint from m to V and add m to the end.
3418
3419 2007-03-28  Christian Bruel  <christian.bruel@st.com>
3420
3421         * config/sh/sh.md (movsi_i): Fix type attribute.
3422
3423 2007-03-28  Christian Bruel  <christian.bruel@st.com>
3424
3425         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
3426