OSDN Git Service

* config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
2
3         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
4         expand on the comment about _Decimal128 arguments and check the
5         integer result of the modulus operation; for 64-bit ELF ABI, ensure
6         that _Decimal128 argument uses even/odd register pair.
7         (function_arg): Ditto.
8
9 2007-04-24  Hui-May Chang <hm.chang@apple.com>
10
11         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
12         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
13
14 2007-04-24  Richard Guenther  <rguenther@suse.de>
15             Olga Golovanevsky  <olga@il.ibm.com>
16
17         * fold-const.c (multiple_of_p): Check for bottom 
18         to be zero. 
19
20 2007-04-24  Richard Henderson  <rth@redhat.com>
21
22         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from 
23         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
24         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
25         looking for non-zero bits shifted out.  Avoid a recursive call
26         when constructing the scalar.
27         (__floatundisf): Likewise.
28
29 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
30
31         * dwarf2out.c (field_byte_offset): Move the existing logic
32         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
33         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
34
35 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
36
37         PR target/31641
38         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
39         argument of 0 for memset.
40         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
41         unsigned shift instead of the signed variant.
42
43 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
44
45         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
46         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
47         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
48         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
49         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
50         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
51         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
52         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
53         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
54         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
55         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
56         "mul<mode>3", "div<mode>3"): Insn definitions added.
57         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
58         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
59         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
60         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
61         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
62         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
63         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
64         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
65         TARGET_FLOAT_FORMAT): Macro definitions removed.
66         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
67         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
68         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
69         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
70         (s390_gen_rtx_const_DI): Function removed.
71         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
72
73 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
74
75         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
76         over an external ffs function.
77
78 2007-04-24  Chao-ying Fu  <fu@mips.com>
79             Richard Sandiford  <richard@nildram.co.uk>
80
81         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
82         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
83         (smadd_widen_optab, umadd_widen_optab): Define.
84         * optabs.c (init_optabs): Initialize smadd_widen_optab and
85         umadd_widen_optab.
86         * genopinit.c (optabs): Fill in smadd_widen_optab and
87         umadd_widen_optab.
88         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
89         and umadd_widen_optab to implement multiply-add sequences.
90         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
91         (<u>maddsidi4): ...this.  Extend condition to include
92         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
93         of operand 0 to "ka" and use the three-operand form of madd<u>
94         for TARGET_DSPR2.
95         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
96         to define_expands.
97         * config/mips/constraints.md (ka): New register constraint.
98
99 2007-04-24  Jan Hubicka  <j@suse.cz>
100
101         Revert:
102
103         2007-04-23  Jan Hubicka  <jh@suse.cz>
104         * function.c (init_function_start): Don't init line number info.
105         (expand_function_end): Update.
106         (reset_block_changes, record_block_change, finalize_block_changes,
107         check_block_change, free_block_changes): Kill.
108         * function.h (reset_block_changes, record_block_change,
109         finalize_block_changes, check_block_change, free_block_changes): Remove
110         prototypes.
111         (struct function): Remove ib_boundaries_block.
112         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
113         Use curr_insn_locator to initialize locator.
114         (emit_line_note): Remove.
115         * cfgexpand.c (expand_gimple_cond_expr): Update.
116         (construct_exit_block): Likewise.
117         (tree_expand_cfg): Initialize/finalize locators.
118         * expr.c (expand_expr_real): Update.
119         * cfglayout.c (line_locators_locs, line_locators_lines,
120         file_locators_locs, file_locators_files): Remove.
121         (set_block_levels): Move to cfgexpand.c.
122         (insn_locators_initialize): Remove.
123         (pass_insn_locators_initialize): Remove.
124         (locations_locators_locs, locations_locators_vals): New static vars.
125         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
126         Likewise.
127         (insn_locators_alloc, insn_locators_finalize,
128         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
129         New functions.
130         (locator_location): New.
131         (locator_line, locator_file): Rewrite.
132         * rtl.h (emit_line_note): Kill.
133         (insn_locators_alloc, insn_locators_finalize,
134         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
135         Declare.
136         * tree-inline.c (initialize_cfun): Do not initialize
137         ib_boundaries_block.
138         * passes.c (pass_insn_locators_initialize): Remove.
139
140 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
141
142         * doc/invoke.texi: Removed leading '-' from option index entries.
143
144 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
145
146         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
147         Use phi_nodes_ptr.
148         (create_phi_node): Use set_phi_nodes.
149         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
150         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
151         (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
152         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
153         (bsi_start, bsi_last): Use bb_stmt_list.
154         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
155         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
156         Traverse the statements using tsi iterator.
157         * basic-block.h (struct basic_block_def): Fields stmt_list
158         and phi_nodes moved to ...
159         (struct tree_bb_info): ... new structure.
160         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
161         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
162         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
163         (tree_verify_flow_info): Verify that il.tree is not set for
164         entry and exit block.
165         (tree_split_block): Use set_bb_stmt_list.
166
167 2007-04-23  Mike Stump  <mrs@apple.com>
168
169         * config/i386/i386.c (ix86_tune_features
170         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
171         nocona and core2.
172
173 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
174
175         * config/i386/i386.md (prefix_extra): New attribute.
176         (length): Add prefix_extra.
177
178         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
179         (sse2_movntv2di): Likewise.
180         (sse2_cvtps2dq): Likewise.
181         (sse2_cvtpd2pi): Likewise.
182         (sse2_cvttpd2pi): Likewise.
183         (*sse2_cvtpd2ps): Likewise.
184         (*add<mode>3): Likewise.
185         (sse2_ssadd<mode>3): Likewise.
186         (sse2_usadd<mode>3): Likewise.
187         (*sub<mode>3): Likewise.
188         (sse2_sssub<mode>3): Likewise.
189         (sse2_ussub<mode>3): Likewise.
190         (*mulv8hi3): Likewise.
191         (*smulv8hi3_highpart): Likewise.
192         (*umulv8hi3_highpart): Likewise.
193         (sse2_umulv2siv2di3): Likewise.
194         (sse2_pmaddwd): Likewise.
195         (ashr<mode>3): Likewise.
196         (lshr<mode>3): Likewise.
197         (ashl<mode>3): Likewise.
198         (sse2_ashlti3): Likewise.
199         (sse2_lshrti3): Likewise.
200         (*umaxv16qi3): Likewise.
201         (*smaxv8hi3): Likewise.
202         (*uminv16qi3): Likewise.
203         (*sminv8hi3): Likewise.
204         (sse2_eq<mode>3): Likewise.
205         (sse2_gt<mode>3): Likewise.
206         (*and<mode>3): Likewise.
207         (sse2_nand<mode>3): Likewise.
208         (*ior<mode>3): Likewise.
209         (*xor<mode>3): Likewise.
210         (sse2_packsswb): Likewise.
211         (sse2_packssdw): Likewise.
212         (sse2_packuswb): Likewise.
213         (sse2_punpckhbw): Likewise.
214         (sse2_punpcklbw): Likewise.
215         (sse2_punpckhwd): Likewise.
216         (sse2_punpcklwd): Likewise.
217         (sse2_punpckhdq): Likewise.
218         (sse2_punpckldq): Likewise.
219         (sse2_punpckhqdq): Likewise.
220         (sse2_punpcklqdq): Likewise.
221         (*sse2_pinsrw): Likewise.
222         (*sse2_pextrw): Likewise.
223         (sse2_pshufd_1): Likewise.
224         (sse2_uavgv16qi3): Likewise.
225         (sse2_uavgv8hi3): Likewise.
226         (sse2_psadbw): Likewise.
227         (sse2_pmovmskb): Likewise.
228         (*sse2_maskmovdqu): Likewise.
229         (*sse2_maskmovdqu_rex64): Likewise.
230         (sse4a_extrqi): Likewise.
231         (sse4a_extrq): Likewise.
232         (sse3_lddqu): Set prefix_rep.
233         (sse3_addsubv4sf3): Likewise.
234         (sse3_haddv4sf3): Likewise.
235         (sse3_hsubv4sf3): Likewise.
236         (sse_cvtss2si): Likewise.
237         (sse_cvtss2si_2): Likewise.
238         (sse_cvtss2siq): Likewise.
239         (sse_cvtss2siq_2): Likewise.
240         (sse_cvttss2si): Likewise.
241         (sse_cvttss2siq): Likewise.
242         (sse2_cvttps2dq): Likewise.
243         (sse3_movshdup): Likewise.
244         (sse3_movsldup): Likewise.
245         (sse2_cvtsd2si): Likewise.
246         (sse2_cvtsd2si_2): Likewise.
247         (sse2_cvtsd2siq): Likewise.
248         (sse2_cvtsd2siq_2): Likewise.
249         (sse2_cvttsd2si): Likewise.
250         (sse2_cvttsd2siq): Likewise.
251         (*sse2_cvtpd2dq): Likewise.
252         (*sse2_cvttpd2dq): Likewise.
253         (sse2_pshuflw_1): Likewise.
254         (sse2_pshufhw_1): Likewise.
255         (sse4a_insertqi): Likewise.
256         (sse4a_insertq): Likewise.
257         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
258         (ssse3_phadddv4si3): Likewise.
259         (ssse3_phaddswv8hi3): Likewise.
260         (ssse3_phsubwv8hi3): Likewise.
261         (ssse3_phsubdv4si3): Likewise.
262         (ssse3_phsubswv8hi3): Likewise.
263         (ssse3_pmaddubswv8hi3): Likewise.
264         (ssse3_pmulhrswv8hi3): Likewise.
265         (ssse3_pshufbv16qi3): Likewise.
266         (ssse3_psign<mode>3): Likewise.
267         (ssse3_palignrti): Likewise.
268         (abs<mode>2): Likewise.
269         (ssse3_phaddwv4hi3): Set prefix_extra.
270         (ssse3_phadddv2si3): Likewise.
271         (ssse3_phaddswv4hi3): Likewise.
272         (ssse3_phsubwv4hi3): Likewise.
273         (ssse3_phsubdv2si3): Likewise.
274         (ssse3_phsubswv4hi3): Likewise.
275         (ssse3_pmaddubswv4hi3): Likewise.
276         (ssse3_pmulhrswv4hi3): Likewise.
277         (ssse3_pshufbv8qi3): Likewise.
278         (ssse3_psign<mode>3): Likewise.
279         (ssse3_palignrdi): Likewise.
280         (abs<mode>2): Likewise.
281         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
282         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
283         (sse2_pmovmskb): Set mode to SI instead of V2DF.
284
285 2007-04-23  Nick Clifton  <nickc@redhat.com>
286
287         * params.def: Fix formatting of emacs local variables.
288
289 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
290
291         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
292         move if inter-unit move isn't allowed.
293         Don't split moving the first element of V2DI to DI to inter-unit
294         move if inter-unit move isn't allowed.
295
296 2007-04-23  Richard Guenther  <rguenther@suse.de>
297
298         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
299         and CDI_POST_DOMINATORS separately.
300
301 2007-04-23  Nick Clifton  <nickc@redhat.com>
302
303         * c.opt (Wformat-contains-nul): Add warning attribute.
304
305 2007-04-23  Jan Hubicka  <jh@suse.cz>
306
307         * function.c (init_function_start): Don't init line number info.
308         (expand_function_end): Update.
309         (reset_block_changes, record_block_change, finalize_block_changes,
310         check_block_change, free_block_changes): Kill.
311         * function.h (reset_block_changes, record_block_change,
312         finalize_block_changes, check_block_change, free_block_changes): Remove
313         prototypes.
314         (struct function): Remove ib_boundaries_block.
315         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
316         Use curr_insn_locator to initialize locator.
317         (emit_line_note): Remove.
318         * cfgexpand.c (expand_gimple_cond_expr): Update.
319         (construct_exit_block): Likewise.
320         (tree_expand_cfg): Initialize/finalize locators.
321         * expr.c (expand_expr_real): Update.
322         * cfglayout.c (line_locators_locs, line_locators_lines,
323         file_locators_locs, file_locators_files): Remove.
324         (set_block_levels): Move to cfgexpand.c.
325         (insn_locators_initialize): Remove.
326         (pass_insn_locators_initialize): Remove.
327         (locations_locators_locs, locations_locators_vals): New static vars.
328         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
329         Likewise.
330         (insn_locators_alloc, insn_locators_finalize,
331         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
332         New functions.
333         (locator_location): New.
334         (locator_line, locator_file): Rewrite.
335         * rtl.h (emit_line_note): Kill.
336         (insn_locators_alloc, insn_locators_finalize,
337         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
338         Declare.
339         * tree-inline.c (initialize_cfun): Do not initialize
340         ib_boundaries_block.
341         * passes.c (pass_insn_locators_initialize): Remove.
342
343 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
344
345         PR middle-end/31448
346         * expr.c (reduce_to_bit_field_precision): Handle
347         CONST_INT rtx's.
348
349 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
350
351         PR tree-optimization/24659
352         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
353         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
354         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
355         * genopinit.c (optabs): Rename vec_pack_mod_optab
356         to vec_pack_trunc_optab.
357         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
358         early for scalar floating point operands for NOP_EXPR.
359         (vectorizable_type_promotion): Ditto.
360         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
361         vec_pack_trunc_optab.
362         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
363
364         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
365         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
366         Rename from VEC_PACK_MOD_EXPR.
367         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
368         * expr.c (expand_expr_real_1): Ditto.
369         * tree-inline.c (estimate_num_insns_1): Ditto.
370         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
371
372         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
373         (vec_unpacks_lo_v4sf): Ditto.
374         (vec_pack_trunc_v2df): Ditto.
375         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
376         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
377         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
378
379         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
380         vec_pack_mod_v8hi.
381         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
382
383         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
384         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
385         packing of floating point operands.
386         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
387         represent unpacking of floating point operands.
388         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
389         [vec_unpacks_hi]: Ditto.
390         [vec_unpacks_lo]: Ditto.
391
392 2007-04-22  Jan Hubicka  <jh@suse.cz>
393
394         * final.c (rest_of_handle_final): Call
395         targetm.asm_out.constructor/targetm.asm_out.destructor
396         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
397         proper priority via decl_*_priority_insert.
398         * c-common.c (c_expand_body): Likewise.
399
400 2007-04-22  Richard Guenther  <rguenther@suse.de>
401
402         PR tree-optimization/29789
403         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
404         (rewrite_reciprocal): New helper split out from
405         determine_invariantness_stmt.
406         (rewrite_bittest): Likewise.
407         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
408         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
409         is not.
410
411 2007-04-22  Revital Eres  <eres@il.ibm.com>
412
413         * loop-unroll.c (var_to_expand): New field to support also
414         insns of the form x = something + x.
415         (analyze_insn_to_expand_var): Use it.
416         (expand_var_during_unrolling): Likewise.
417
418 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
419
420         * predict.c: Include pointer-set.h.
421         (bb_predictions): New variable.
422         (tree_predicted_by_p, tree_predict_edge,
423         remove_predictions_associated_with_edge): Use bb_predictions map
424         instead of bb->predictions.
425         (clear_bb_predictions, assert_is_empty): New functions.
426         (combine_predictions_for_bb): Use bb_predictions map.  Call
427         clear_bb_predictions.
428         (tree_estimate_probability): Create and free bb_predictions map.
429         * Makefile.in (predict.o): Add pointer-set.h dependency.
430         * basic-block.h (struct basic_block_def): Remove predictions
431         field.
432         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
433
434 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
435
436         PR target/31480
437         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
438         is null.
439
440 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
441
442         * timevar.c (timevar_print): Change reference of --disable-checking to
443         --enable-checking=release.  Also warn if assert checking is disabled.
444
445 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
446
447         PR C/30265
448         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
449         decl as addressable if the compound literal was marked as
450         addressable.
451         Mark the decl as a gimple register if it is a complex or
452         vector decl and does not live in memory.
453
454 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
455
456         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
457         (GENERIC_NEXT): New function macro.
458         (PHI_CHAIN): Use phi_node's new chain variable.
459         (tree_phi_node): Change tree_common to tree_base
460         and add the chain field.
461         * tree-phinodes.c (make_phi_node): Don't set
462         TREE_TYPE on the new node.
463         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
464         instead of checking GIMPLE_TUPLE_P in chain_next.
465         * tree-vect-transform.c
466         (get_initial_def_for_induction): Look at
467         PHI_RESULT_TREE for the type of the phi node.
468         (update_vuses_to_preheader): Use PHI_CHAIN
469         instead of TREE_CHAIN on the phi node.
470         * tree-ssa-structalias.c (compute_points_to_sets):
471         Likewise.
472         (ipa_pta_execute): Likewise.
473
474 2007-04-21  Richard Guenther  <rguenther@suse.de>
475
476         PR middle-end/31136
477         * fold-const.c (fold_unary): Call fold_convert_const on the
478         original tree.
479
480 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
481
482         * gcse.c (store_killed_in_insn): Handle PARALLELs.
483         (store_killed_in_pat): New.
484
485 2007-04-20  Richard Henderson  <rth@redhat.com>
486
487         PR target/31628
488         * config/i386/i386.c (type_has_variadic_args_p): Look for any
489         TREE_LIST with a void_type_node value, not void_list_node exactly.
490
491 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
492
493         * doc/standards.texi: Re-arrange into language-specific
494         subsections. Add a C++ section, documenting which standards we
495         support.
496
497 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
498
499         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
500         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
501
502 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
503
504         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
505         ecrti.o and crtbegin.o.
506         (LIB_DEFAULT_SPEC): Include -lc.
507         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
508
509 2007-04-20  Richard Henderson  <rth@redhat.com>
510
511         PR target/28623
512         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
513         argument; update all callers.
514         (get_unaligned_offset): New.
515         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
516         get_unaligned_address, just pass on the address directly.
517         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
518         the subreg in the helper patterns.
519         (unaligned_extendqidi_le): Use get_unaligned_offset.
520         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
521         (unaligned_extendhidi_be): Likewise.
522         (unaligned_extendhidi): Tidy.
523         * config/alpha/alpha-protos.h: Update.
524
525 2007-04-20  Richard Henderson  <rth@redhat.com>
526
527         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
528         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
529         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
530         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
531         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
532         (CPP_SPEC): Don't include %(cpp_subtarget).
533         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
534         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
535         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
536
537 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
538
539         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
540         for __builtin_ia32_cmpordss.
541
542         PR tree-optimization/31632
543         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
544         and arg1 for optimizations of comparison against min/max values.
545         Fold arg0 to arg1's type for optimizations of comparison against
546         min+1 and max-1 values.
547
548 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
549
550         * reload.c (combine_reloads): When trying to use a dying register,
551         check whether it's uninitialized and don't use if so.
552
553 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
554
555         * fold-const.c: Remove prototypes for native_encode_expr and
556         native_interpret_expr.
557         (native_encode_expr): Make non-static.
558         (native_interpret_expr): Likewise.
559         * tree.h: Add prototypes for the above.
560
561 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
562
563         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
564         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
565         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
566         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
567         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
568         Add length attributes.
569
570 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
571
572         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
573         not that it is 1.
574
575         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
576         __STDC_WANT_DEC_FP__.
577
578 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
579
580         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
581         for long double compatibility.
582         * configure: Regenerate.
583
584 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
585
586         PR rtl-optimization/29841
587         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
588         trap instructions.
589         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
590         that may cause control flow transfer from being moved.
591
592 2007-04-18  Jan Hubicka  <jh@suse.cz>
593
594         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
595         types.
596
597 2007-04-18  Eric Christopher  <echristo@apple.com>
598
599         * config/rs6000/darwin.md (load_macho_picbase): Use link register
600         only. Update operands.
601         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
602         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
603         link register to pic register.
604
605 2007-04-18  Dirk Mueller  <dmueller@suse.de>
606
607         PR diagnostic/31227
608         * tree-vrp.c (search_for_addr_array): New.
609         (check_array_bounds): Suppress warning about
610         address taken of array refs if its not de-referenced.
611
612 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
613
614         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
615         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
616
617         * tree-vectorizer.h (NITERS_KNOWN_P): New.
618         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
619         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
620
621         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
622         dump print.
623         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
624         print message.
625         (vect_analyze_scalar_cycles): Fix indentation.
626         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
627         (vect_mark_relevant): Include phis in relevance analysis.
628
629         * tree-vect-transform.c (vect_transform_loop): Add an assert.
630
631 2007-04-18  Anatoly Sokolov <aesok@post.ru>
632
633         * config/avr/avr.c (ptrreg_to_str): Replace error() with
634         output_operand_lossage().
635
636 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
637
638         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
639         the unused code for reduction without adjust-in-epilog to simplify the
640         function.
641
642 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
643
644         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
645         (S390_TDC_NEGATIVE_ZERO): New constant.
646         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
647         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
648         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
649         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
650         (S390_TDC_POSITIVE_INFINITY): New constant.
651         (S390_TDC_NEGATIVE_INFINITY): New constant.
652         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
653         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
654         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
655         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
656         (S390_TDC_INFINITY): New constant.
657         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
658         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
659         optimization for UNSPEC_CCZ_TO_INT.
660         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
661         ("*ccz_to_int"): New insn.
662         ("isinf<mode>2"): New insn.
663         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
664         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
665         (UNSPEC_CCZ_TO_INT): New constant.
666
667 2007-04-18  Richard Guenther  <rguenther@suse.de>
668
669         PR tree-optimization/19431
670         PR tree-optimization/21463
671         * tree-pass.h (pass_phiprop): Declare.
672         * passes.c (init_optimization_passes): New phiprop pass.
673         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
674         (phivn_valid_p): New helper function.
675         (phiprop_insert_phi): Likewise.
676         (propagate_with_phi): Likewise.
677         (tree_ssa_phiprop): New propagator propagating loads
678         through phi nodes if profitable.
679
680 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
681
682         * tree-vect-analyze.c (process_use): New function.
683         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
684         Check phis in all bbs.
685         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
686         assert.
687
688 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
689
690         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
691         we use REG_EQUAL.
692
693 2007-04-17  Anatoly Sokolov <aesok@post.ru>
694
695         PR target/30483
696         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
697         error().
698
699 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
700
701         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
702         on "0".
703         (sse_vmmulv4sf3): Likewise.
704         (sse2_vmaddv2df3): Likewise.
705         (sse2_vmmulv2df3): Likewise.
706
707 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
708
709         PR rtl-optimization/31360
710         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
711         (target_reg_cost): New.
712         (init_set_costs): Initialize target_reg_cost.  Add comments
713         regarding the rationale of the costs.
714         (global_cost_for_size): Renamed to...
715         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
716         of register pressure.
717         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
718         estimate_reg_pressure_cost.  Add number of ivs.
719         (determine_set_costs): Dump target_reg_cost.
720         * loop-invariant.c (gain_for_invariant):  Use
721         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
722         (best_gain_for_invariant, find_invariants_to_move): Remove
723         n_inv_uses.
724         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
725         (target_reg_cost): Declare.
726         (global_cost_for_size): Declaration removed.
727         (estimate_reg_pressure_cost): Declare.
728
729 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
730
731         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
732         regnos into even/odd register pairs.
733         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
734         TDmode similar to the other floating point modes.
735         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
736         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
737         define_expand's.
738         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
739         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
740         (movdd_hardfloat64): Use TARGET_MFPGPR.
741
742 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
743
744         * reload1.c (delete_output_reload): Don't count output in n_inherited.
745
746         Revert
747         2005-01-05  Richard Henderson  <rth@redhat.com>
748         PR rtl-opt/10692
749         * reload1.c (do_input_reload): Restrict the optimization deleteing
750         a previous output reload to RELOAD_FOR_INPUT.
751
752 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
753
754         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
755         induc_vec_info_type.
756         (vectorizable_induction): New function declaration.
757         * tree-vect-transform.c (get_initial_def_for_induction): No need to
758         check if already vectorized.  Find first place in BB where new stmts
759         can be inserted.  Takes only one argument.
760         (vectorizable_induction): New function.
761         (vect_transform_stmt): Add case for induc_vec_info_type to call
762         vectorizable_induction.
763         (vect_transform_loop): Consider phis for vectorization.
764         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
765         condition.
766         (analyze_operations): Call vectorizable_induction when analyzing phis.
767         Fix comment.
768         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
769         (vect_mark_relevant): Include phis in relevance analysis.
770         (vect_mark_stmts_to_be_vectorize): Likewise.
771         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
772
773 2007-04-16  Lawrence Crowl  <crowl@google.com>
774
775         * doc/invoke.texi (Debugging Options): Add documentation for the
776         -femit-struct-debug options -femit-struct-debug-baseonly,
777         -femit-struct-debug-reduced, and
778         -femit-struct-debug-detailed[=...].
779
780         * c-opts.c (c_common_handle_option): Add
781         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
782         and OPT_femit_struct_debug_detailed_.
783         * c.opt: Add specifications for
784         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
785         and -femit-struct-debug-detailed[=...].
786         * opts.c (set_struct_debug_option): Parse the
787         -femit-struct-debug-... options.
788         * opts.c (matches_main_base, main_input_basename,
789         main_input_baselength, base_of_path, matches_main_base): Add
790         variables and functions to compare header base name to compilation
791         unit base name.
792         * opts.c (should_emit_struct_debug): Add to determine to emit a
793         structure based on the option.
794         (dump_struct_debug) Also disabled function to debug this
795         function.
796         * opts.c (handle_options): Save the base name of the
797         compilation unit.
798
799         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
800         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
801         This hook indicates if a type is generic.  Set it by default
802         to "never generic".
803         * langhooks.h (struct lang_hooks_for_types): Add a new hook
804         to determine if a struct type is generic or not.
805         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
806         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
807         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
808         with live C++ hook.
809
810         * flags.h (enum debug_info_usage): Add an enumeration to describe
811         a program's use of a structure type.
812         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
813         to indicate the program's usage of the type.  Filter structs based
814         on the -femit-struct-debug-... specification.
815         (gen_type_die): Split into two routines, gen_type_die and
816         gen_type_die_with_usage.  gen_type_die is now a wrapper
817         that assumes direct usage.
818         (gen_type_die_with_usage): Replace calls to gen_type_die
819         with gen_type_die_with_usage adding the program usage of
820         the referenced type.
821         (dwarf2out_imported_module_or_decl): Suppress struct debug
822         information using should_emit_struct_debug when appropriate.
823
824 2007-04-16  Ian Lance Taylor  <iant@google.com>
825
826         PR tree-optimization/31522
827         * tree-vrp.c (vr_phi_edge_counts): New static variable.
828         (vrp_initialize): Allocate vr_phi_edge_counts.
829         (vrp_visit_phi_node): Don't push to infinity if we saw a new
830         executable edge.  Drop test for all constants.
831         (vrp_finalize): Free vrp_phi_edge_counts.
832
833         * doc/cpp.texi (Common Predefined Macros): Clarify description of
834         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
835
836         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
837         predecessors at head rather than tail.
838
839 2007-04-16  Matthias Klose  <doko@debian.org>
840
841         * config/alpha/linux.h (CPP_SPEC): Define.
842         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
843
844 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
845
846         * function.h: Remove sequence_stack extern declaration.
847
848 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
849
850         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
851         TARGET_FIDOA.
852         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
853         defined.
854
855 2007-04-16  Anatoly Sokolov <aesok@post.ru>
856
857         * config/avr/avr.c (avr_arch_types): Rearranging  array.
858         (enum avr_arch): Add.
859         (avr_mcu_types): Use avr_arch enumeration constants instead of
860         numbers.
861         * config/avr/avr.h (LINK_SPEC): Simplify.
862
863 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
864
865         * config/m68k/m68k.c (m68k_libcall_value,
866         m68k_function_value): Use macros for register names more.
867
868         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
869         instead.
870         (M68K_REGNAME): Use A6_REG.
871         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
872
873 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
874
875         PR middle-end/28071
876         * sched-int.h (struct deps): Split field 'pending_lists_length' into
877         'pending_read_list_length' and 'pending_write_list_length'.  Update
878         comment.
879         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
880         to handle two length counters instead of one.  Update all uses.
881         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
882         two length counters instead of one.
883         * sched-rgn.c (propagate_deps): Update to handle two length counters
884         instead of one.
885
886 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
887
888         PR target/31582
889         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
890         copy of source, pass it to ix86_expand_vector_set and return
891         it as target.
892
893 2007-04-16  David Ung  <davidu@mips.com>
894             Joseph Myers  <joseph@codesourcery.com>
895
896         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
897         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
898         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
899         Add 74K processor information.
900         * config/mips/mips.md: Include 74k.md.
901         (cpu): Add 74kc,74kf,74kx.
902         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
903         * config/mips/74k.md: New.
904         * doc/invoke.texi (MIPS Options): Document 74K support.
905
906 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
907
908         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
909         vectorizable_* functions.
910         * tree-vect-transform.c (vectorizable_call): Add check for
911         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
912         (vectorizable_store): likewise.
913         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
914         Add comments.
915         (vectorizable_operation, vectorizable_type_demotion): Likewise.
916         (vectorizable_type_promotion, vectorizable_load): Likewise.
917         (vectorizable_live_operation, vectorizable_condition): Likewise.
918         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
919         STMT_VINFO_LIVE_P.
920         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
921
922 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
923
924         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
925         register numbers more.
926         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
927         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
928         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
929         FUNCTION_VALUE_REGNO_P): Likewise.
930         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
931         STATIC_CHAIN_REGNUM): Likewise.
932         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
933         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
934         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
935         * config/m68k/m68k.md (FP_REG): New.
936
937 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
938
939         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
940         alignment on fido.
941
942 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
943
944         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
945         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
946         comment typos.
947
948 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
949
950         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
951         cold loops.
952
953 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
954
955         PR c/31520
956         * c-decl.c (finish_decl): Grab the type of the decl after the call
957         to store_init_value.
958
959 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
960
961         * common.opt (fforward-propagate): Fix "Optimization" annotation.
962
963 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
964
965         PR c++/25874
966         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
967         post dominators and cleanup cfg before returning.
968
969 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
970
971         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
972         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
973
974 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
975
976         * config.gcc: Recognize fido.
977         * config/m68k/m68k-devices.def (fidoa): New.
978         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
979         __mfido__.
980         (FL_FIDOA, TARGET_FIDOA): New.
981         * config/m68k/m68k.opt (mfidoa): New.
982
983 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
984
985         PR middle-end/31322
986         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
987         when a personality function is used.
988
989 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
990
991         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
992
993 2007-04-13  Mike Stump  <mrs@apple.com>
994
995         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
996         we can...
997         * config/darwin.opt (fapple-kext): Make C++ only.
998         * config/darwin.c (darwin_override_options): Remove code to ensure
999         -fapple-kext is given for C++ only.
1000
1001 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
1002
1003         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
1004         * config/mips/mips.c (override_options): Call
1005         SUBTARGET_OVERRIDE_OPTIONS, if defined.
1006
1007 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
1008
1009         * config/i386/i386.opt (msvr3-shlib): Removed.
1010
1011         * doc/invoke.texi: Remove -msvr3-shlib.
1012
1013 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
1014
1015         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
1016         with "popcnt" instruction.
1017
1018 2007-04-13  Richard Guenther  <rguenther@suse.de>
1019
1020         PR tree-optimization/21258
1021         * tree-vrp.c (compare_case_labels): New helper.
1022         (find_switch_asserts): New function.
1023         (find_assert_locations): Call it for SWITCH_EXPRs.
1024
1025 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
1026
1027         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
1028         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
1029         check is now implied in X87_FLOAT_MODE_P.
1030         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
1031         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
1032         (fix_trunc<mode>_i386_fisttp): Ditto.
1033         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
1034         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
1035         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
1036         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
1037         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
1038         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
1039         (unnamed_splitters): Ditto.
1040         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
1041         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
1042         FIRST_SSE_REG for local functions when SSE math is enabled or
1043         for functions with sseregparm attribute.
1044         (standard_80387_constant_p): Return -1 if mode is not
1045         X87_FLOAT_MODE_P.
1046         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
1047         (ix86_expand_compare): Ditto.
1048         (ix86_expand_carry_flag_compare): Ditto.
1049         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
1050         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
1051         DECIMAL_FLOAT_MODE_P.
1052         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
1053         of SCALAR_FLOAT_MODE_P.
1054         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
1055         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
1056         checks before FLOAT_MODE_P.
1057         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
1058         before FLOAT_MODE_P.
1059         [DIV]: Ditto.
1060         [NEG]: Ditto.
1061         [ABS]: Ditto.
1062         [SQRT]: Ditto.
1063         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
1064
1065 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
1066             Charles Wilson  <libtool@cwilson.fastmail.fm>
1067
1068         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
1069         (libgcc.mvars): Don't depend on them.
1070         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
1071         * exec-tool.in: New.
1072
1073 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
1074
1075         * doc/invoke.text (--help): Document --help=common.
1076
1077 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
1078
1079         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
1080
1081 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1082
1083         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
1084         * genemit.c (main): Emit #include "integrate.h".
1085         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
1086         (LOADGP_RTP): New mips_loadgp_style.
1087         * config/mips/mips.h: Include config/vxworks-dummy.h.
1088         (TARGET_RTP_PIC): New macro.
1089         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
1090         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
1091         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
1092         for TARGET_RTP_PIC.
1093         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
1094         -mvxworks-pic when using -mrtp and a PIC option.
1095         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
1096         for RTP PIC.
1097         (mips_symbolic_constant_p, mips_symbolic_address_p)
1098         (mips_symbol_insns): Handle SYMBOL_HALF.
1099         (override_options): Warn about -G and -mrtp being used together.
1100         Initialize mips_lo_relocs[SYMBOL_HALF].
1101         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
1102         (mips_emit_loadgp): Handle LOADGP_RTP.
1103         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
1104         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
1105         (tablejump): Handle function-relative case table entries if
1106         TARGET_RTP_PIC.
1107         * config/mips/predicates.md (symbol_ref_operand): New predicate.
1108
1109 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1110
1111         * config/mips/mips.md (load_call<mode>): Allow any general register.
1112         destination.
1113         (sibcall_value_internal, sibcall_value_multiple_internal)
1114         (call_value_internal, call_value_split, call_value_multiple_internal)
1115         (call_value_multiple_split): Remove constraints from operand 0.
1116
1117 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1118
1119         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
1120         rather than loadgp_noshared.
1121         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
1122         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
1123         gen_loadgp.
1124         * config/mips/mips.md (loadgp): Rename to...
1125         (loadgp_newabi): ...this.
1126         (loadgp_noshared): Rename to...
1127         (loadgp_absolute): ...this.
1128
1129 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1130
1131         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
1132         false for locally-binding symbols.
1133         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
1134
1135 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1136
1137         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
1138         (SYMBOL_GOT_PAGE_OFST): ...this.
1139         (SYMBOL_GOT_GLOBAL): Rename to...
1140         (SYMBOL_GOT_DISP): ...this.
1141         (SYMBOL_GOTOFF_GLOBAL): Rename to...
1142         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
1143         * config/mips/mips.c (mips_global_symbol_p): New function.
1144         (mips_symbol_binds_local_p): Likewise.
1145         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
1146         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use mips_global_symbol_p
1147         and mips_symbol_binds_local_p.
1148         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
1149         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
1150         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
1151         SYMBOL_GOTOFF_DISP.
1152         (mips_ok_for_lazy_binding_p): New function.
1153         (mips_load_call_address, mips_expand_call): Use it.
1154         (mips_dangerous_for_la25_p): Likewise.
1155         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
1156         (*got_disp<mode>): Use got_disp_operand instead of
1157         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
1158         SYMBOL_GOTOFF_GLOBAL.
1159         (*got_page<mode>): Use got_page_ofst_operand instead of
1160         local_got_operand.
1161         * config/mips/predicates.md (const_call_insn_operand): Use
1162         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
1163         (global_got_operand): Rename to...
1164         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
1165         SYMBOL_GOT_GLOBAL.
1166         (local_got_operand): Rename to...
1167         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
1168         of SYMBOL_GOT_LOCAL.
1169
1170 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1171
1172         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
1173         TARGET_CALL_CLOBBERED_GP.
1174         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
1175         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
1176         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
1177         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
1178         of TARGET_ABICALLS && !TARGET_NEWABI.
1179         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
1180         * config/mips/mips.c (mips_load_call_address): Check
1181         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
1182         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
1183         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
1184         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
1185         TARGET_ABICALLS && TARGET_NEWABI.
1186         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
1187         TARGET_ABICALLS.
1188         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
1189         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
1190         TARGET_ABICALLS && TARGET_NEWABI.
1191         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
1192         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
1193         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
1194         whether indirect calls must use $25.
1195         (mips_extra_live_on_entry): Check TARGET_GOT instead of
1196         TARGET_ABICALLS.
1197         * config/mips/mips.md (jal_macro): Check flag_pic and
1198         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
1199         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
1200         instead of TARGET_ABICALLS.
1201         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
1202         TARGET_ABICALLS && TARGET_OLDABI.
1203         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
1204         (sibcall): In the comment above the define_insn, mention
1205         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
1206         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
1207         instead of TARGET_ABICALLS.
1208
1209 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1210
1211         * doc/md.texi (Blackfin family constraints): Document PA and PB.
1212         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
1213         (MACFLAGS_MATCH_P): New macro.
1214         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
1215         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
1216         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
1217         the other MACFLAG constants.
1218         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
1219         (flag_machi): Tighten constraints.  Renumber some of the operands.
1220         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
1221         output template.
1222         (flag_machi_parts_acconly): New pattern.
1223         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
1224         used.
1225         (flag_macinit1hi): Tighten constraints.
1226         (flag_mul_macv2hi_parts_acconly): New pattern.
1227
1228         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
1229         Use a more efficient implementation.
1230         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
1231         inline sequences when not optimizing for size.
1232
1233         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
1234         movhi_high2low): Delete, merge functionality into...
1235         (packv2hi): ... this pattern.
1236
1237         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
1238         * config/bfin/bfin.opt (msim): New option.
1239         (mcpu=): New option.
1240         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
1241         (bfin_cpu_t): Typedef of enum bfin_cpu.
1242         (bfin_cpu_type): New declaration.
1243         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
1244         -msim and -mcpu= options.
1245         (LIB_SPEC): Likewise.
1246         * config/bfin/bfin.c (bfin_cpu_type): Define.
1247         (bfin_handle_option): Handle -mcpu= option.
1248         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
1249         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
1250         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
1251
1252 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1253
1254         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
1255         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
1256         (powerpc-wrs-vxworksae): Use ${tm_file}.
1257         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
1258         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
1259         * config/i386/vx-common.h: New file.
1260
1261 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
1262
1263         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
1264         of crt0.o%s.
1265
1266 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1267
1268         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
1269         ldxtr.
1270
1271 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
1272
1273         PR c++/31078
1274         PR c++/31103
1275         * c-common.c (c_build_qualified_type): Set canonical type
1276         appropriately.
1277
1278 2007-04-12  Richard Guenther  <rguenther@suse.de>
1279
1280         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
1281         lower bound and element size if lower bound is not zero
1282         or either of the ARRAY_REF operands is set.
1283
1284 2007-04-12  Richard Guenther  <rguenther@suse.de>
1285
1286         PR tree-optimization/24689
1287         PR tree-optimization/31307
1288         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
1289         indices by value.
1290         * gimplify.c (canonicalize_addr_expr): To be consistent with
1291         gimplify_compound_lval only set operands two and three of
1292         ARRAY_REFs if they are not gimple_min_invariant.  This makes
1293         it never at this place.
1294         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1295
1296 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1297
1298         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
1299         null before emitting a .nsubspa directive.
1300
1301 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
1302
1303         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
1304         need_to_partition_p if there are no memory statements in the
1305         function.
1306
1307 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
1308
1309         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
1310         (gcd_of_steps_may_divide_p): New function.
1311         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
1312
1313 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1314
1315         * reload.c (find_reloads_toplev, find_reloads_address,
1316         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
1317         not a pointer equality test, to decide if we need to call
1318         push_reg_equiv_alt_mem.
1319
1320 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
1321
1322         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
1323         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
1324         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
1325
1326 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
1327
1328         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
1329         vector to be positive.
1330
1331 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
1332
1333         PR 30735
1334         PR 31090
1335         * doc/invoke.texi: Document --params max-aliased-vops and
1336         avg-aliased-vops.
1337         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
1338         debug_memory_partitions): Move to tree-flow.h
1339         * params.h (AVG_ALIASED_VOPS): Define.
1340         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
1341         users.
1342         (mp_info_t): Likewise.
1343         (get_mem_sym_stats_for): New.
1344         (set_memory_partition): Move from tree-flow-inline.h.
1345         (mark_non_addressable): Only clear the set of symbols for the
1346         partition if it exists.
1347         (dump_memory_partitions): Move from tree-ssa-operands.c
1348         (debug_memory_partitions): Likewise.
1349         (need_to_partition_p): New.
1350         (dump_mem_ref_stats): New.
1351         (debug_mem_ref_stats): New.
1352         (dump_mem_sym_stats): New.
1353         (debug_mem_sym_stats): New.
1354         (update_mem_sym_stats_from_stmt): New.
1355         (compare_mp_info_entries): New.
1356         (mp_info_cmp): Call it.
1357         (sort_mp_info): Change argument to a list of mem_sym_stats_t
1358         objects.
1359         (get_mpt_for): Move from tree-ssa-operands.c.
1360         (find_partition_for): New.
1361         (create_partition_for): Remove.
1362         (estimate_vop_reduction): New.
1363         (update_reference_counts): New.
1364         (build_mp_info): New.
1365         (compute_memory_partitions): Refactor.
1366         Document new heuristic.
1367         Call build_mp_info, update_reference_counts,
1368         find_partition_for and estimate_vop_reduction.
1369         (compute_may_aliases): Populate virtual operands before
1370         calling debugging dumps.
1371         (delete_mem_sym_stats): New.
1372         (delete_mem_ref_stats): New.
1373         (init_mem_ref_stats): New.
1374         (init_alias_info): Call it.
1375         (maybe_create_global_var): Remove alias_info argument.
1376         Get number of call sites and number of pure/const call sites
1377         from gimple_mem_ref_stats().
1378         (dump_alias_info): Call dump_memory_partitions first.
1379         (dump_points_to_info_for): Show how many times a pointer has
1380         been dereferenced.
1381         * opts.c (decode_options): For -O2 set --param
1382         max-aliased-vops to 500.
1383         For -O3 set --param max-aliased-vops to 1000 and --param
1384         avg-aliased-vops to 3.
1385         * fortran/options.c (gfc_init_options): Remove assignment to
1386         MAX_ALIASED_VOPS.
1387         * tree-flow-inline.h (gimple_mem_ref_stats): New.
1388         * tree-dfa.c (dump_variable): Dump memory reference
1389         statistics.
1390         Dump NO_ALIAS* settings.
1391         (referenced_var_lookup): Tidy.
1392         (mem_sym_stats): New.
1393         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
1394         and ORIG are different SSA names for a memory partition.
1395         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
1396         * tree-flow.h (struct mem_sym_stats_d): Define.
1397         (mem_sym_stats_t): Define.
1398         (struct mem_ref_stats_d): Define.
1399         (struct gimple_df): Add field mem_ref_stats.
1400         (enum noalias_state): Define.
1401         (struct var_ann_d): Add bitfield noalias_state.
1402         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
1403         debug_mem_ref_stats, debug_memory_partitions,
1404         debug_mem_sym_stats): Declare.
1405         * tree-ssa-structalias.c (update_alias_info): Update call
1406         sites, pure/const call sites and asm sites in structure
1407         returned by gimple_mem_ref_stats.
1408         Remove local variable IS_POTENTIAL_DEREF.
1409         Increase NUM_DEREFS if the memory expression is a potential
1410         dereference.
1411         Call update_mem_sym_stats_from_stmt.
1412         If the memory references memory, call
1413         update_mem_sym_stats_from_stmt for all the direct memory
1414         symbol references found.
1415         (intra_create_variable_infos): Set noalias_state field for
1416         pointer arguments according to the value of
1417         flag_argument_noalias.
1418         * tree-ssa-structalias.h (struct alias_info): Remove fields
1419         num_calls_found and num_pure_const_calls_found.
1420         (update_mem_sym_stats_from_stmt): Declare.
1421         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
1422         Set default value to 100.
1423         (PARAM_AVG_ALIASED_VOPS): Define.
1424
1425 2007-04-11  Richard Guenther  <rguenther@suse.de>
1426
1427         PR middle-end/31530
1428         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
1429         a * -b + c as c - a * b if we honor sign dependent rounding.
1430
1431 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1432
1433         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
1434         bfin_expand_strmov.
1435         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
1436         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
1437         variables.
1438         (initialize_trampoline): Don't use old-style function definition.
1439         (bfin_secondary_reload): Mark IN_P argument as unused.
1440
1441 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
1442
1443         PR tree-optimization/31343
1444         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
1445         (build_polynomial_chrec): Return a scalar when the evolution is zero.
1446         * testsuite/gcc.dg/vect/pr31343.c: New.
1447
1448 2007-04-10  Eric Christopher  <echristo@apple.com>
1449
1450         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
1451         * config/i386/i386.md (*cmpfp0): Use.
1452         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
1453         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
1454         (fix_trunc<mode>_i386_fisttp): Ditto.
1455         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
1456         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
1457         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
1458         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
1459         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
1460         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
1461         (unnamed_splitters): Ditto.
1462         * config/i386/i386.c (output_fix_trunc): Assert that
1463         we're not being passed a TFmode operand.
1464
1465 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
1466
1467         PR tree-optimization/31526
1468         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
1469         n_basic_blocks to find newly added blocks.
1470
1471 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
1472
1473         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
1474         alternative.
1475         (fix_trunc<mode>si_sse): Ditto.
1476         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
1477         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
1478         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
1479         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
1480         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
1481         expander using SSEMODEF mode macro.
1482         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
1483         expander using SSEMODEF mode macro.
1484         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
1485         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
1486         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
1487         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
1488         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
1489         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
1490         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
1491         Macroize insn using X87MODEF mode macro.
1492
1493 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1494
1495         * config/i386/sse.md (sse2_pinsrw): Removed.
1496         (sse2_pextrw): Renamed to ...
1497         (*sse2_pextrw): This.
1498
1499 2007-04-09  Jan Hubicka  <jh@suse.cz>
1500
1501         PR target/27869
1502         * config/i386/sse.md
1503         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
1504         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
1505         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
1506         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
1507
1508 2007-04-09  Jan Hubicka  <jh@suse.cz>
1509
1510         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
1511         multiple fields of union.
1512
1513 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
1514
1515         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
1516         (create_preheaders): Check that loops are available.
1517         (fix_loop_structure): Clean up, improve comments.
1518         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
1519         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
1520         state flags.
1521         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
1522         * predict.c (tree_estimate_probability): Do not call
1523         calculate_dominance_info.  Call create_preheaders.
1524         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
1525         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
1526         flags.
1527         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
1528         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
1529         * tree-cfg.c (tree_split_edge): Make an assert more precise.
1530         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
1531         arguments.
1532
1533 2007-04-08  Jan Hubicka  <jh@suse.cz>
1534
1535         * tree.h (maybe_fold_offset_to_component_ref): Declare.
1536         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
1537         * fold-const.c (fold_unary): Use it.
1538
1539 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1540
1541         * varasm.c (assemble_variable): Remove call to
1542         lang_hooks.decls.prepare_assemble_variable.
1543         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
1544         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
1545         * langhooks.h (lang_hooks_for_decls): Remove
1546         prepare_assemble_variable.
1547
1548 2007-04-08  Mike Stump  <mrs@apple.com>
1549
1550         * config/i386/i386.c: Use inc/dec on Core2.
1551
1552 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
1553
1554         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
1555         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
1556         lhd_tree_inlining_end_inlining): Remove.
1557         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
1558         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
1559         end_inlining hooks.
1560         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
1561         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
1562         lhd_tree_inlining_end_inlining): Remove prototypes.
1563         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
1564         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1565         LANG_HOOKS_TREE_INLINING_START_INLINING,
1566         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
1567
1568         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
1569         not set it.
1570
1571 2007-04-08  Anatoly Sokolov <aesok@post.ru>
1572
1573         PR target/29932
1574         * config/avr/predicates.md (io_address_operand): Delete predicate.
1575         (low_io_address_operand): Don't use 'mode' argument.
1576         (higth_io_address_operand): Rename ...
1577         (high_io_address_operand): ... to this. Don't use 'mode' argument.
1578         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
1579         for above change.
1580
1581 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
1582
1583         Revert change removing staticp.
1584
1585 2007-04-07  Anatoly Sokolov <aesok@post.ru>
1586
1587         PR target/30289
1588         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
1589         earlyclobber.
1590
1591 2007-04-07  Bruce Korb  <bkorb@gnu.org>
1592
1593         * c.opt: Add -Wformat-contains-nul.
1594         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
1595           -Wformat setting.
1596         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
1597         the NUL byte warning.
1598
1599 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1600
1601         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
1602
1603 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
1604
1605         * tree.c (staticp): No longer use staticp langhook.
1606         * langhooks.c (lhd_staticp): Removed.
1607         * langhooks.h (struct lang_hooks): Remove staticp.
1608         * c-common.c (c_staticp): Remove.
1609         * c-common.h (c_staticp): Ditto.
1610         * langhooks-defs.h (lhd_staticp): Ditto.
1611         (LHD_HOOKS_STATICP): Ditto
1612         * tree.h (gcc_assert_lowered): New macro.
1613
1614 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
1615
1616         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
1617         argument "reliable".
1618         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
1619         Add argument "reliable".  Propagate it through calls.
1620         (infer_loop_bounds_from_undefined):  Derive number of iterations
1621         estimates from references in blocks that do not dominate loop latch.
1622         (gcov_type_to_double_int): New function.
1623         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
1624         and expected_loop_iterations_unbounded.
1625         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
1626         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
1627         * tree-data-ref.c (estimated_loop_iterations): Export.
1628         (get_references_in_stmt): Fix -- do not return addresses of local
1629         objects.
1630         * cfgloop.h (expected_loop_iterations_unbounded,
1631         estimated_loop_iterations): Declare.
1632
1633 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
1634
1635         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
1636
1637 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
1638
1639         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
1640         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
1641         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
1642         Use output_387_reg_move().
1643         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
1644         expander using X87MODEF12 mode macro.
1645         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
1646         choosing register preferences.  Use output_387_reg_move().
1647         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
1648         instead of "x".  Use output_387_reg_move().
1649         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
1650         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
1651         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
1652         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
1653         Use output_387_reg_move().
1654         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
1655         mode macro.
1656         (*truncxf?f_i387 splitter): Ditto.
1657
1658 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
1659
1660         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1661         LANG_HOOKS_SAFE_FROM_P.
1662         * expr.c (safe_from_p): Remove langhook call.
1663         * langhooks.h (lang_hooks): Remove safe_from_p.
1664         (lhd_safe_from_p): Remove prototype.
1665         * langhooks.c (lhd_safe_from_p): Remove.
1666
1667 2007-04-06  Jan Hubicka  <jh@suse.cz>
1668
1669         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
1670         functions.
1671
1672 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
1673
1674         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
1675         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
1676         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
1677         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
1678         alternative.
1679         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
1680         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
1681
1682 2007-04-05  Richard Henderson  <rth@redhat.com>
1683
1684         * config/alpha/alpha.c (print_operand) [+]: Remove.
1685         (alpha_end_function): Print nop if call at end of function.
1686         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
1687         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
1688         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
1689         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
1690         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
1691         the call pattern. Update peepholes to match.
1692
1693 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
1694
1695         * doc/extend.texi (Other Builtins): Add decimal float variants
1696         of signbit.
1697         * builtins.def: Ditto.
1698         * builtins.c (expand_builtin): Ditto.
1699
1700 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
1701             H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         PR target/31478
1704         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
1705         of V8HImode when calling ix86_binary_operator_ok.
1706         (sse2_pmaddwd): Call ix86_binary_operator_ok.
1707         (sdot_prodv8hi): Operands 1 and 2 must be register.
1708
1709 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
1710
1711         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
1712         initialize align to silence bogus warning.
1713
1714 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
1715
1716         PR middle-end/22156
1717         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
1718         all_no_warning.
1719         (struct sra_walk_fns): Remove use_all parameter from use.
1720         (sra_hash_tree): Handle BIT_FIELD_REFs.
1721         (sra_elt_hash): Don't hash bitfld blocks.
1722         (sra_elt_eq): Skip them in parent compares as well.  Handle
1723         BIT_FIELD_REFs.
1724         (sra_walk_expr): Don't maintain or pass down use_all_p.
1725         (scan_use): Remove use_all parameter.
1726         (scalarize_use): Likewise.  Re-expand assignment to
1727         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
1728         output, and re-scalarize after output.  Don't mark anything
1729         for no warning.
1730         (scalarize_ldst): Adjust.
1731         (scalarize_walk_gimple_modify_statement): Likewise.
1732         (build_element_name_1): Handle BIT_FIELD_REFs.
1733         (instantiate_element): Don't warn for any element whose parent
1734         is used as a whole.
1735         (instantiate_missing_elements_1): Return the sra_elt.
1736         (canon_type_for_field): New.
1737         (try_instantiate_multiple_fields): New.
1738         (instantiate_missing_elemnts): Use them.
1739         (mark_no_warning): Removed.
1740         (generate_one_element_ref): Handle BIT_FIELD_REFs.
1741         (REPLDUP, sra_build_elt_assignment): New.
1742         (generate_copy_inout): Use them.
1743         (generate_element_copy): Likewise.  Handle bitfld differences.
1744         (generate_element_zero): Don't recurse for blocks.  Use
1745         sra_build_elt_assignment.
1746         (generate_one_element_int): Take elt instead of var.  Use
1747         sra_build_elt_assignment.
1748         (generate_element_init_1): Adjust.
1749         (scalarize_use, scalarize_copy): Use REPLDUP.
1750         (scalarize_ldst): Move assert before dereference.
1751         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
1752
1753 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1754
1755         * regmove.c: Fix unused variable warnings due to previous commit.
1756
1757 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1758
1759         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
1760         (regmove_bb_head): Remove.
1761         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
1762         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
1763         problems with fixup_match_1.
1764         Don't initialize/free regmove_bb_head.
1765
1766         (reg_is_remote_constant_p): If an insn is in the same basic block
1767         but not before INSN, consider it remote, too.
1768
1769 2007-04-05  Anatoly Sokolov <aesok@post.ru>
1770
1771         PR target/25448
1772         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
1773         DECL_ASSEMBLER_NAME, not the DECL_NAME.
1774
1775 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
1776
1777         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
1778         (CONDITIONAL_REGISTER_USAGE): Likewise.
1779
1780 2007-04-04  Richard Henderson  <rth@redhat.com>
1781
1782         * config/alpha/lib1funcs.asm: Remove unused file.
1783
1784 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
1785
1786         PR other/31356
1787         * opts.c (print_specific_help): Fix --help=<language>
1788         header line.
1789         (common_handle_option): Support --help=common.
1790
1791 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
1792
1793         PR other/31353
1794         * gcc.c (main): Do not run the linker if
1795         print_subprocess_help indicates that it shouldn't be
1796         run.
1797
1798 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
1799
1800         PR doc/31355
1801         * doc/invoke.texi (--help=): Document <languages> value, fix
1802         formatting in tables of values.
1803
1804 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
1805
1806         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
1807         dllimport attribute of virtual methods.
1808
1809 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
1810
1811         * config/score/crti.asm: Change _bss_start to __bss_start.
1812         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
1813         (OUTGOING_REG_PARM_STACK_SPACE) update.
1814         * config/score/score.opt: add options to make backend support
1815         score5, score5u, score7 and score7d.
1816         * config/score/score.md: Likewise.
1817         * config/score/misc.md: Likewise.
1818         * config/score/mac.md: Likewise.
1819         * doc/invoke.texi: Likewise.
1820         * doc/md.texi: update constraints define.
1821
1822 2007-04-03  Richard Henderson  <rth@redhat.com>
1823
1824         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
1825         an appropriate type, use the mode instead.
1826
1827 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
1828
1829         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
1830         Set the default --with-arch setting to mips2.
1831         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
1832         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
1833         (MULTILIB_OSDIRNAMES): Delete.
1834         (MULTILIB_DIRNAMES): Define.
1835         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
1836         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
1837         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
1838         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
1839         VXWORKS_OS_CPP_BUILTINS.
1840         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
1841         (MIPS_DEBUGGING_INFO): Undefine.
1842         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
1843
1844 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
1845
1846         PR middle-end/30704
1847         * fold-const.c (native_encode_real): Encode real.c provided longs
1848         as a series of 32-bit native integers.
1849         (native_interpret_real): Interpret buffer as a series of 32-bit
1850         native integers.
1851
1852 2007-04-03  Richard Guenther  <rguenther@suse.de>
1853
1854         * genpreds.c (write_insn_constraint_len): Write function
1855         optimized for CONSTRAINT_LEN implementation.
1856         (write_tm_preds_h): Output insn_constraint_len inline and
1857         use it for CONSTRAINT_LEN.
1858         (write_insn_preds_c): Don't output insn_constraint_len.
1859         * doc/md.texi (define_register_constraint): Document multi-letter
1860         constraints shall have the same length if they start with the same
1861         letter.
1862
1863 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
1864
1865         PR target/31175
1866         * config/i386/i386.md (isinf<mode>2): Expand only when
1867         TARGET_C99_FUNCTIONS is set.
1868
1869 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
1870
1871         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
1872         (x86_64-*-linux*): Ditto.
1873         * config/i386/i386.opt (mpc): New option.
1874         * config/i386/i386.c (overrride_options): Handle
1875         ix87_precision_string.
1876         * config/i386/crtprec.c: New file.
1877         * config/i386/t-crtpc: Ditto.
1878         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
1879         and -mpc80 options.
1880         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
1881         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
1882         crtprec32.o, crtprec64.o and crtprec80.o.
1883
1884         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
1885         and -mpc80 options.
1886         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
1887
1888 2007-04-02  Eric Christopher  <echristo@apple.com>
1889
1890         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
1891         limitations on darwin.
1892
1893 2007-04-02  Anatoly Sokolov <aesok@post.ru>
1894
1895         PR target/31137
1896         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
1897
1898 2007-04-02  Dave Korn  <dave.korn@artimi.com>
1899
1900         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
1901
1902 2007-04-02  Dave Korn  <dave.korn@artimi.com>
1903
1904         * libgcc2.h (exception_descriptor): Don't forward-declare.
1905         (__get_eh_table_language, __get_eh_table_version): Delete
1906         prototypes of long-dead functions.
1907
1908 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
1909
1910         * ebitmap.h: New file
1911         * ebitmap.c: New file
1912         * Makefile.in (ebitmap.o): New target.
1913
1914 2007-04-01  Jan Hubicka  <jh@suse.cz>
1915
1916         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
1917         before very first instruction.
1918
1919 2007-04-01  Jan Hubicka  <jh@suse.cz>
1920
1921         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
1922         waring on 64bit hosts.
1923         * bitmap.h: Fix typo in bitmap_head_def.
1924
1925 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1926
1927         PR rtl-optimization/31391
1928         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
1929         into a DELETED_LABEL note, and the label is in an empty basic
1930         block, update BB_END as well as BB_HEAD.
1931
1932 2007-04-01  Richard Henderson  <rth@redhat.com>
1933
1934         PR tree-optimization/31169
1935         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
1936         to varying if the range is outside [0,  prec-1].
1937
1938 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
1939
1940         PR target/31388
1941         * config/mips/mips.md (load_const_gp): New insn.
1942         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
1943         the MIPS16 GP pseudo register if no_new_pseudos.
1944         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
1945
1946 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1947
1948         PR target/31364
1949         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
1950         secureplt.
1951         (call_value): Likewise.
1952
1953 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
1954             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1955
1956         PR 14737
1957         * doc/invoke.texi: (optimization options): Reword description
1958         of -ffast-math. Document its primary purpose.
1959
1960 2007-03-31  Richard Guenther  <rguenther@suse.de>
1961
1962         * omp-low.c (splay-tree.h): Include.
1963         (lookup_decl): Replace splay-tree usage by pointer-map.
1964         (maybe_lookup_decl): Likewise.
1965         (new_omp_context): Likewise.
1966         (delete_omp_context): Likewise.
1967         * gimplify.c (splay-tree.h): Include.
1968         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
1969         pointer-map.
1970         (remap_ssa_name): Likewise.
1971         (remap_decl): Likewise.
1972         (remap_type_1): Likewise.
1973         (remap_type): Likewise.
1974         (copy_body_r): Likewise.
1975         (expand_call_inline): Likewise.
1976         (clone_body): Likewise.
1977         (copy_tree_r): Likewise.
1978         (remap_save_expr): Likewise.
1979         (unsave_r): Likewise.
1980         (unsave_expr_now): Likewise.
1981         (tree_function_versioning): Likewise.
1982         (build_duplicate_type): Likewise.
1983         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
1984         (struct copy_body_data): Replace splay-tree by pointer-map.
1985         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
1986         not $(SPLAY_TREE_H).
1987         (gimplify.o): Depend on $(SPLAY_TREE_H).
1988         (omp-low.p): Likewise.
1989
1990 2007-03-31  Anatoly Sokolov <aesok@post.ru>
1991
1992         * config/avr/predicates.md (even_register_operand,
1993         odd_register_operand): New predicates.
1994         * config/avr/avr.md (movw peephole2): New.
1995         (movw_r peephole2): New.
1996
1997 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
1998
1999         * tree.h (get_signed_or_unsigned_type): New.
2000         * fold-const.c (operand_equal_for_comparison_p): Use
2001         get_signed_or_unsigned_type instead of
2002         lang_hooks.types.signed_or_unsigned_type.
2003         * expr.c (store_expr): Ditto.
2004         * langhooks.c (get_signed_or_unsigned_type): New.
2005         (lhd_signed_or_unsigned_type): New.
2006         * langhooks.h (lhd_signed_or_unsigned_type): New.
2007         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
2008
2009 2007-03-30  Richard Henderson  <rth@redhat.com>
2010
2011         * tree-ssa-loop-ivopts.c: Include target.h.
2012         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
2013         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
2014         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
2015         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
2016
2017 2007-03-30  Richard Henderson  <rth@redhat.com>
2018             Kai Tietz  <kai.tietz@onevision.com>
2019
2020         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
2021         default for 64-bit.
2022         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
2023         (TARGET_64BIT_MS_ABI): New.
2024         (DBX_REGISTER_NUMBER): Handle 64-bit.
2025         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
2026         (LONG_TYPE_SIZE): Force to 32.
2027         (REG_PARM_STACK_SPACE): New.
2028         (OUTGOING_REG_PARM_STACK_SPACE): New.
2029         (REGPARM_MAX, SSE_REGPARM_MAX): New.
2030         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
2031         (STACK_BOUNDARY): Use 128 for 64-bit.
2032         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
2033         Add 64-bit implementation.
2034         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
2035         argument unused.
2036         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
2037         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
2038         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
2039         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
2040         (ix86_handle_cconv_attribute): Don't warn when ignoring if
2041         TARGET_64BIT_MS_ABI.
2042         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
2043         (ix86_pass_by_reference): Likewise.
2044         (ix86_function_value_regno_p): Likewise.
2045         (ix86_build_builtin_va_list): Likewise.
2046         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2047         (function_arg_advance_ms_64): New.
2048         (function_arg_advance): Call it.
2049         (function_arg_ms_64): New.
2050         (function_arg): Call it.
2051         (function_value_ms_64): New.
2052         (ix86_function_value_1): Call it.
2053         (return_in_memory_ms_64): New.
2054         (ix86_return_in_memory): Call it.
2055         (setup_incoming_varargs_ms_64): New.
2056         (ix86_setup_incoming_varargs): Call it.
2057         (ix86_expand_prologue): Handle 64-bit stack probing.
2058         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
2059         (output_pic_addr_const): Likewise.
2060         (x86_this_parameter): Likewise.
2061         (x86_output_mi_thunk): Likewise.
2062         (x86_function_profiler): Likewise.
2063         (TARGET_STRICT_ARGUMENT_NAMING): New.
2064         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
2065         (TARGET_64BIT_MS_ABI): New.
2066         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
2067         * config/i386/i386.md (allocate_stack_worker): Remove.
2068         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
2069         describe the clobber of eax without a match_scratch.
2070         (allocate_stack_worker_postreload): Remove.
2071         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
2072         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
2073         (allocate_stack_worker_rex64_postreload): Remove.
2074         (allocate_stack): Handle 64-bit.
2075         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
2076         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
2077         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
2078         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
2079         (STANDARD_STARTFILE_PREFIX_1): Likewise.
2080         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
2081         * config.build (x86_64-*-mingw*): New host.
2082         * config.host (x86_64-*-mingw*): New host.
2083         * config.gcc (x86_64-*-mingw*): New target.
2084         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
2085
2086 2007-03-30  Richard Henderson  <rth@redhat.com>
2087             Kai Tietz  <kai.tietz@onevision.com>
2088
2089         * c-pragma.c (struct def_pragma_macro_value): New.
2090         (struct def_pragma_macro): New.
2091         (pushed_macro_table): New.
2092         (dpm_hash, dpm_eq): New.
2093         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
2094         (init_pragma): Install them.
2095         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
2096
2097 2007-03-30  Anatoly Sokolov <aesok@post.ru>
2098
2099         * config/avr/avr.c (avr_override_options): Clear
2100         'flag_delete_null_pointer_checks'.
2101
2102 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
2103
2104         PR c++/26099
2105         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
2106         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
2107         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
2108         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
2109         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
2110         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
2111         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
2112         C++ extensions.
2113         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
2114
2115 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
2116
2117         * regmove.c: Move all of pass_stack_adjustments from here...
2118         * combine-stack-adj.c: ...to this new file.
2119         * Makefile.in: Add rules for combine-stack-adj.o.
2120
2121 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
2122
2123         PR tree-optimization/31383
2124         * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
2125         to have the same length.
2126
2127 2007-03-30  Jan Hubicka  <jh@suse.cz>
2128
2129         PR middle-end/30700
2130         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
2131         availablility; add more sanity checking; ask varpool only about
2132         VAR_DECL.
2133
2134 2007-03-29  Richard Henderson  <rth@redhat.com>
2135
2136         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
2137         to decide, but __SIZEOF_LONG_LONG__.
2138
2139 2007-03-29  Richard Henderson  <rth@redhat.com>
2140
2141         * emutls.c (struct __emutls_array): New.
2142         (emutls_destroy): Use it instead of casting element 0 from void*.
2143         (__emutls_get_address): Likewise.
2144
2145 2007-03-29  Richard Henderson  <rth@redhat.com>
2146
2147         * varasm.c (initializer_constant_valid_p): Don't deny
2148         DECL_DLLIMPORT_P on functions.
2149
2150         * config/i386/cygming.h: Remove function declarations.
2151         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
2152         (ASM_OUTPUT_LABELREF): Remove.
2153         (COMMON_ASM_OP): Remove.
2154         (ASM_OUTPUT_COMMON): Remove.
2155         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
2156         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
2157         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2158         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
2159         Rename from TARGET_ENCODE_SECTION_INFO.
2160         * config/i386/netware.h: Likewise.
2161         * config/i386/i386-protos.h: Update.
2162         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
2163         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
2164         (legitimate_constant_p): Reject dllimports.
2165         (dllimport_map, get_dllimport_decl): New.
2166         (legitimize_dllimport_symbol): New.
2167         (legitimize_address, ix86_expand_move): Use it.
2168         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
2169         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
2170         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
2171         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
2172         * config/i386/predicates.md (constant_call_address_operand): Only
2173         accept symbols; reject dllimport_p symbols.
2174         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
2175         i386_pe_maybe_record_exported_symbol.
2176         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
2177         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
2178         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
2179         trust the setting of DECL_DLLIMPORT_P.
2180         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
2181         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
2182         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
2183         tidy the argument scanning loop.
2184         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
2185         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
2186         (i386_pe_strip_name_encoding): Remove.
2187         (i386_pe_binds_local_p): New.
2188         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
2189         (i386_pe_output_labelref): Remove.
2190         (i386_pe_asm_output_aligned_decl_common): New.
2191         (i386_pe_maybe_record_exported_symbol): Rename from
2192         i386_pe_record_exported_symbol; check for dllexported symbols.
2193
2194 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
2195
2196         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
2197         add comment explaining why vsnprintf cannot be used.
2198
2199 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
2200
2201         PR tree-optimization/30666
2202         * tree.c (build_complex_type): When creating type names for DWARF2
2203         debug info, create TYPE_DECLs for TYPE_NAME instead of
2204         IDENTIFIER_NODEs.
2205         (build_common_tree_nodes_2): Use build_complex_type when building
2206         predefined complex types, to preserve canonical types.
2207
2208 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2209
2210         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
2211         (noce_get_alt_condition): Look at it to determine whether to
2212         reverse the condition or not.
2213         (noce_get_condition): Substitute the truth for lies.
2214         (noce_find_if_block): Set the then_else_reversed field.
2215
2216 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
2217
2218         * config/fr30/fr30.md (movdi): Do not accept immediates as the
2219         destination of this insn.
2220         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
2221         than calling gen_rtx_SET directly.  Use r0 to hold the value of
2222         'address + 4' rather than a stack based temporary which can be
2223         mis-optimized away.
2224
2225 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2226
2227         * config/s390/s390.c (s390_secondary_input_reload_class,
2228         s390_secondary_output_reload_class): Functions removed.
2229         (s390_secondary_reload): New function.
2230         (TARGET_SECONDARY_RELOAD): Target macro defined.
2231         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
2232         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
2233         * config/s390/s390.md ("reload_outti", "reload_outdi",
2234         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
2235         "reload_out<mode>"): Expanders removed.
2236         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
2237         "reload<mode>_nonoffmem_out"): Expanders added.
2238
2239 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2240
2241         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
2242         SRC->DEST replacement failed anyway.
2243
2244 2007-03-28  Mike Stump  <mrs@apple.com>
2245
2246         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
2247         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
2248         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
2249
2250 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2251
2252         * config.gcc: Accept barcelona as a variant of amdfam10.
2253         * config/i386/i386.c (override_options): Likewise.
2254         * doc/invoke.texi: Likewise.
2255
2256 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2257
2258         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
2259         offsets for BIT_FIELD_REF and COMPONENT_REF.
2260
2261 2007-03-28  Richard Guenther  <rguenther@suse.de>
2262
2263         * tree.c (is_global_var): Move ...
2264         * tree-flow-inline.h (is_global_var): ... here.
2265         * tree.h (is_global_var): Remove declaration.
2266
2267 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
2268
2269         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
2270         option.
2271         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
2272         * config/i386/i386.c (ix86_tune_features): Initialize new
2273         tuning option.
2274         * config/i386/predicates.md (promotable_binary_operator): Use
2275         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
2276
2277 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
2278
2279         PR target/31380
2280         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
2281
2282 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
2283
2284         * config/fr30/fr30.md (movsi_internal): Change destination
2285         constraint from m to V and add m to the end.
2286
2287 2007-03-28  Christian Bruel  <christian.bruel@st.com>
2288
2289         * config/sh/sh.md (movsi_i): Fix type attribute.
2290
2291 2007-03-28  Christian Bruel  <christian.bruel@st.com>
2292
2293         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
2294         (movsf_ie): Likewise.
2295
2296 2007-03-28  Christian Bruel  <christian.bruel@st.com>
2297
2298         * config.gcc: Add sh4-300 to multilib.
2299         * config/sh/t-mlib-sh4-300: New file.
2300
2301 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2302
2303         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
2304         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
2305         fix_trunc<mode>di2.
2306         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
2307         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
2308         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
2309         "fixuns_trunctddi2"): Whitespace fix.
2310
2311 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2312
2313         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
2314         the definition of struct sh_args.
2315         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
2316         CALL_COOKIE_INT_REG_GET): Likewise.
2317
2318 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
2319
2320         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
2321         transformations are applied successfully.
2322
2323 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
2324
2325         * tree.c (tree_contains_struct): Permit 512 tree codes.
2326         * tree.h (tree_contains_struct): Ditto.
2327         (MAX_TREE_CODES): Ditto.
2328         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
2329         SPARE member to store remaining padding bits.
2330
2331 2007-03-27  Anatoly Sokolov <aesok@post.ru>
2332
2333         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
2334         architecture.
2335
2336 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
2337
2338         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
2339         * configure: Regenerate.
2340
2341         * configure: Regenerate using the correct version of autoconf.
2342
2343 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
2344
2345         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
2346         pointer regs.
2347         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
2348         regs to "__SP_L__" and "__SP_H__".
2349
2350 2007-03-27  Richard Guenther  <rguenther@suse.de>
2351
2352         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
2353         computations with it with a HOST_WIDE_INT variable.
2354
2355 2007-03-26  Mike Stump  <mrs@apple.com>
2356
2357         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
2358         objective-c-header, objective-c++-header and objc++-cpp-output
2359         support.
2360         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
2361
2362 2007-03-26  Richard Henderson  <rth@redhat.com>
2363
2364         PR target/31361
2365         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
2366         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
2367         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
2368         IX86_BUILTIN_PSRLQ128): New.
2369         (ix86_init_mmx_sse_builtins): Add them.
2370         (ix86_expand_builtin): Expand them.
2371         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
2372         operand 2 be TImode.
2373         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
2374         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
2375         _mm_srli_epi64): Mark __B const.
2376         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
2377         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
2378         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
2379         new two-vector shift builtins.
2380
2381 2007-03-26  Ian Lance Taylor  <iant@google.com>
2382
2383         PR tree-optimization/31345
2384         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
2385         [+INF, +INF(OVF)] into VARYING.
2386
2387 2007-03-26  Zack Weinberg  <zackw@panix.com>
2388
2389         * gengtype-parse.c: New file.
2390         * gengtype-yacc.y: Delete.
2391         * gengtype-lex.l: Don't include gengtype-yacc.h.
2392         Define YY_DECL and yyterminate appropriately for recursive
2393         descent parser.  yylval is now a string out-parameter to yylex.
2394         (HWS, EOID): New shorthand.
2395         (IWORD): Add a couple more types.
2396         (yylex): Add a setup stanza.  Remove the complex rules for
2397         detecting GTY'ed types and typedefs; replace with simple
2398         keyword detectors.  Adjust everything for the changed
2399         definition of yylval.  Ignore all pp-directives, not just #define.
2400         (yyerror): Delete.
2401         (parse_file): Rename yybegin; do not call yyparse.
2402         (yyend): New.
2403         * gengtype.c (xasprintf): Export again.
2404         (this_file): New.  Use everywhere __FILE__ was being used.
2405         (get_lang_bitmap): Special case types defined in gengtype.c.
2406         (do_typedef, new_structure): Suppress definition of certain types.
2407         (new_structure): Improve diagnostics of duplicate definitions.
2408         Make sure location_s is associated with input.h.
2409         (nreverse_pairs, define_location_structures): New functions.
2410         (main): Improve tagging of kludge types.  Remove old kludges
2411         for input.h types; use define_location_structures.
2412         * gengtype.h: Update prototypes.  Define token codes here.
2413         * Makefile.in: Remove all references to gengtype-yacc.
2414         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
2415         and gengtype.
2416         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
2417         add GTY((skip)) to the field that's only conditionally there.
2418         * doc/install.texi: Document that Bison is no longer required
2419         unless building treelang.
2420
2421         * gengtype.c: Don't include gtyp-gen.h.
2422         (srcdir): Declare here.
2423         (base_files, lang_dir_names): Allocate dynamically.
2424         (gt_files, num_gt_files, num_lang_dirs): New globals.
2425         (measure_input_list, read_input_line, read_input_list)
2426         (set_lang_bitmap): New functions.
2427         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
2428         simplify, relying on read_input_list to set up the bitmaps.
2429         (main): Arguments are no longer unused.  Check for correct number
2430         of command line arguments, set srcdir and srcdir_len, then call
2431         read_input_list, before doing anything else.  No need to worry
2432         about duplicates in main loop.
2433         * configure.ac: Simplify the calculation of all_gtfiles.
2434         Put language tags in there.  Don't set or substitute
2435         all_gtfiles_files_langs or all_gtfiles_files_frags.
2436         * Makefile.in: Revamp the way gengtype is invoked, now that it
2437         takes a file on its command line with a much simpler format.
2438         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
2439         (GTFILES): Remove duplicates and C source files.
2440         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
2441         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
2442         * configure: Regenerate.
2443
2444         * gengtype.h: Remove all type definitions to gengtype.c; leave
2445         only definitions of options_p, type_p, and pair_p as opaque
2446         pointers.  Update prototypes.
2447         * gengtype.c: Many type definitions moved here from gengtype.h.
2448         Consolidate type definitions at the top of the file.
2449         (xvasprintf): Delete.
2450         (xasprintf): Make static.
2451         (create_nested_pointer_option): Add 'next' parameter.
2452         (create_field_all, create_field_at): New functions.
2453         (create_field): Now a thin wrapper around create_field_all.
2454         (create_optional_field): Rename create_optional_field_ and add
2455         line argument.  Original name is now a macro which supplies
2456         __LINE__.
2457         (oprintf): Use vsnprintf directly.
2458         (close_output_files): Use fatal rather than perror/exit.
2459         (note_def_vec, note_def_vec_alloc): Use create_field_at.
2460         (main): Set progname.  Don't use exit.
2461         * gengtype-yacc.y (struct_fields): Use create_field_at.
2462         (option, optionseqopt): Delete.
2463         (optionseq): Consolidate productions from option here so we
2464         can use the first argument to create_option.
2465
2466         * gengtype-lex.l: Distinguish unions from structures in the
2467         token type.  Don't call find_structure; return the tag as a string.
2468         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
2469         Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
2470         Reorganize typedef_struct production accordingly.
2471         Use create_nested_ptr_option.
2472         * gengtype.c (create_nested_ptr_option): New function.
2473         * gengtype.h: Declare it.
2474
2475         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
2476         (string_type): Don't declare.
2477         (do_scalar_typedef): Declare.
2478         (create_scalar_type): Update prototype.
2479         * gengtype.c (string_type): Make static.
2480         (scalar_nonchar, scalar_char): New.
2481         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
2482         (resolve_typedef): Use scalar_nonchar for error recovery.
2483         (create_scalar_type): Remove name_len field.  Return scalar_char
2484         or scalar_nonchar as appropriate.
2485         (adjust_field_type): Look at scalar_is_char boolean to decide whether
2486         to use string_type.
2487         (throughout): Use scalar_nonchar instead of calling create_scalar_type,
2488         whenever possible.
2489         (main): Initialize scalar_char and scalar_nonchar before calling
2490         gen_rtx_next.
2491         * gengtype-lex.l: Adjust for removal of second argument to
2492         create_scalar_type.  Use yylval.s instead of yylval.t when
2493         returning SCALAR.
2494         * gengtype-yacc.y: Type of SCALAR is string.  Call
2495         create_scalar_type from type:SCALAR rule.  Adjust for removal of
2496         second argument to create_scalar_type.
2497
2498         * vec.h: Remove all #if IN_GENGTYPE blocks.
2499         Add comment saying that changes may require adjustments to gengtype.
2500         * gengtype.c: Don't include coretypes.h or tm.h.
2501         Add comment to inclusion of errors.h.
2502         (note_def_vec, note_def_vec_alloc): New functions.
2503         * gengtype.h: Declare new functions.
2504         * gengtype-lex.l: Don't include coretypes.h.
2505         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
2506         Delete.
2507         (update_lineno): Remove unnecessary prototype.
2508         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
2509         (VEC rule): Just return VEC_TOKEN.
2510         * gengtype-yacc.y (VEC_TOKEN): New token type.
2511         (type): Add a production for VEC(a,b).
2512         * Makefile.in: Update dependencies.
2513
2514         * gengtype-lex.l: Remove rules for parsing pointer-to-function
2515         typedefs that use the old PARAMS macro.
2516
2517         * gengtype-lex.l: Remove all rules and states relating to yacc
2518         input files.
2519         * gengtype-yacc.y: Similarly.
2520         * gengtype.c (note_yacc_type): Delete function.
2521         * gengtype.h: Update prototypes.
2522
2523 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
2524
2525         * tree-pretty-print.c (dump_generic_node): Report precision of
2526         unnamed integer types.
2527
2528 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
2529
2530         * ifcvt.c (noce_try_store_flag_constants): Don't check
2531         no_new_pseudos here.
2532         (noce_try_store_flag_constants): Don't check no_new_pseudos.
2533         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
2534         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
2535         noce_try_sign_mask): Likewise.
2536         (if_convert): Check no_new_pseudos here.
2537
2538         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
2539         Remove prototypes.
2540         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
2541         (noce_get_condition): Handle new then_else_reversed argument.
2542         (noce_init_if_info): Remove, fold into noce_find_if_block.
2543         (noce_process_if_block): Take a struct noce_if_info as the
2544         argument.  Don't set up one based on ce_if_info.  Update pointer
2545         references accordingly.
2546         (cond_move_process_if_block): Likewise.
2547         (process_if_block): Removed.
2548         (find_if_block): Removed.  Move functionality two new functions,
2549         noce_find_if_block and cond_exec_find_if_block.
2550         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
2551         blocks and the symmetric IF-ELSE-JOIN case.
2552         (cond_exec_find_if_block): Also new function mostly based on old
2553         find_if_block and process_if_block.
2554         (find_if_header): Replace find_if_block call with separately
2555         guarded calls to noce_find_if_block and cond_exec_find_if_block.
2556         (find_cond_trap): Update noce_get_condition call.
2557         (dead_or_predicable): Likewise.
2558
2559 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
2560
2561         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
2562         Remove.
2563         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
2564         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
2565         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
2566         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
2567         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
2568         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
2569         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
2570         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
2571         __builtin_ia32_psrad128 builtins.
2572
2573 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
2574
2575         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
2576         * config/i386/constraints.md
2577         (define_constraint "I"): Use IN_RANGE macro.
2578         (define_constraint "J"): Ditto.
2579         (define_constraint "K"): Ditto.
2580         (define_constraint "M"): Ditto.
2581         (define_constraint "N"): Ditto.
2582         (define_constraint "O"): Ditto.
2583         * config/i386/predicates.md
2584         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
2585         (define_predicate "const_0_to_3_operand"): Ditto.
2586         (define_predicate "const_0_to_7_operand"): Ditto.
2587         (define_predicate "const_0_to_15_operand"): Ditto.
2588         (define_predicate "const_0_to_63_operand"): Ditto.
2589         (define_predicate "const_0_to_255_operand"): Ditto.
2590         (define_predicate "const_1_to_31_operand"): Ditto.
2591         (define_predicate "const_2_to_3_operand"): Ditto.
2592         (define_predicate "const_4_to_7_operand"): Ditto.
2593
2594 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
2595
2596         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
2597         in SImode for save_world.
2598         * config/rs6000/altivec.md (save_world, restore_world): Convert to
2599         LR hard reg.
2600
2601 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
2602
2603         PR tree-optimization/30784
2604         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
2605         BIT_FIELD_REF.
2606
2607 2007-03-25  Revital Eres  <eres@il.ibm.com>
2608
2609         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
2610           Fold movement_possibility function into it.
2611
2612 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
2613
2614         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
2615         (load_macho_picbase_{si,di}): Convert to LR hard reg.
2616         (call_indirect_nonlocal_darwin64): Same.
2617         (call_nonlocal_darwin64): Same.
2618         (call_value_indirect_nonlocal_darwin64): Same.
2619         (call_value_nonlocal_darwin64): Same.
2620         (sibcall_nonlocal_darwin64): Same.
2621         (sibcall_value_nonlocal_darwin64): Same.
2622         (sibcall_symbolic_64): Same.
2623         (sibcall_value_symbolic_64): Same.
2624         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
2625         LR pseudo.
2626         (rs6000_emit_load_toc_table): Same.
2627         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
2628         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
2629         (mull_call): Same.
2630         (divss_call): Same.
2631         (divus_call): Same.
2632         (quoss_call): Same.
2633         (quous_call): Same.
2634         (load_toc_v4_pic_si): Same
2635         (load_toc_v4_PIC_1): Same.
2636         (load_toc_v4_PIC_1b): Same.
2637         (call_indirect_aix{32,64}): Same.
2638         (call_value_indirect_aix{32,64}): Same.
2639         (call): Same.
2640         (call_value): Same.
2641         (call_local{32,64}): Same.
2642         (call_value_local{32,64}): Same.
2643         (call_indirect_nonlocal_aix{32,64}): Same.
2644         (call_nonlocal_aix{32,64}): Same.
2645         (call_value_indirect_nonlocal_aix{32,64}): Same.
2646         (call_value_nonlocal_aix{32,64}): Same.
2647         (call_indirect_nonlocal_sysv<mode>): Same.
2648         (call_nonlocal_sysv<mode>): Same.
2649         (call_value_indirect_nonlocal_sysv<mode>): Same.
2650         (call_value_nonlocal_sysv<mode>): Same.
2651         (sibcall): Same.
2652         (sibcall_local{32,64}): Same.
2653         (sibcall_value_local{32,64}): Same.
2654         (sibcall_nonlocal_aix{32,64}): Same.
2655         (sibcall_value_nonlocal_aix{32,64}): Same.
2656         (sibcall_nonlocal_sysv<mode>): Same.
2657         (sibcall_value): Same.
2658         (sibcall_value_nonlocal_sysv<mode>): Same.
2659
2660 2007-03-24  Paul Brook  <paul@codesourcery.com>
2661
2662         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
2663         * config/arm/linux-eabi.h: Remove legacy syscall hack.
2664
2665 2007-03-24  Richard Henderson  <rth@redhat.com>
2666
2667         * config/ia64/constraints.md: New file.
2668         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
2669         satisfies_constraint_?.
2670         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
2671         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
2672         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
2673         ia64_output_mi_thunk): Likewise.
2674         (ia64_const_ok_for_letter_p): Remove.
2675         (ia64_const_double_ok_for_letter_p): Remove.
2676         (ia64_extra_constraint): Remove.
2677         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
2678         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
2679         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
2680         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
2681         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
2682         EXTRA_MEMORY_CONSTRAINT): Remove.
2683         * config/ia64/ia64.md: Include constriants.md.  Replace
2684         CONST_OK_FOR_? with satisfies_constraint_?.
2685
2686 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
2687             H.J. Lu  <hongjiu.lu@intel.com>
2688
2689         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
2690         DPD or BID name.
2691         (name macros): Use DPD_BID_NAME to convert names properly.
2692
2693         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
2694         decimal floating point format.
2695         (init_floating_libfuncs): Change decimal functions so that they
2696         have a "bid_" prefix if the decimal system uses the BID format,
2697         and "dpd_" prefix if the decimal system uses the DPD format.
2698         (init_interclass_conv_libfuncs): Ditto.
2699         (init_intraclass_conv_libfuncs): Ditto.
2700
2701         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
2702         using the BID format.
2703
2704         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
2705         whether we are using the BID decimal format.
2706         * configure: Regenerate.
2707
2708         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
2709         the compiler has decimal floating point enabled.  Define
2710         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
2711         instead of DPD.
2712
2713         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
2714         using the BID format.
2715
2716         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
2717         whether we are using the BID decimal format.
2718         * configure: Regenerate.
2719
2720         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
2721         the compiler has decimal floating point enabled.  Define
2722         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
2723         instead of DPD.
2724
2725         * doc/install.texi (--enable-decimal-float): Document BID and DPD
2726         options, and that it is enabled for i386/x86_64 systems.
2727
2728         * Makefile.in (enable_decimal_float): New.
2729         (DECNUMFMT): New.
2730         (DECNUMINC): Add  -I$(DECNUMFMT).
2731         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
2732         to $(DECNUMFMT) from $(DECNUM).
2733
2734         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
2735         Substitute enable_decimal_float.
2736         * configure: Regenerated.
2737
2738         PR other/30529
2739         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
2740         unsigned long.
2741
2742         * configure.ac: Enable decimal float for x86_64-*-linux*.
2743         * configure: Regenerated.
2744
2745         PR other/30530
2746         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
2747         decimal128ClearSign to flip and clear the sign bit in decimal128.
2748         (decimal_real_maxval): Set decimal128SetSign to set the sign
2749         bit in decimal128.
2750
2751 2007-03-23  Ian Lance Taylor  <iant@google.com>
2752
2753         * fold-const.c (fold_binary): Correct warning for X - c >= X.
2754
2755 2007-03-23  Ian Lance Taylor  <iant@google.com>
2756
2757         * tree-dump.c (dump_files): Correct comment.
2758
2759 2007-03-23  Ian Lance Taylor  <iant@google.com>
2760
2761         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
2762
2763 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
2764
2765         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
2766         in cfglayout mode.  Don't go into and out of cfglayout mode.
2767         Link the blocks in the order of the constructed traces.
2768         (rest_of_handle_tracer): Adjust call to tracer.
2769         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
2770         Don't go into cfglayout mode.
2771         (rtl_loop_done): Don't go out of cfglayout mode.
2772         * cfglayout.c (relink_block_chain): New function, split out from...
2773         (fixup_reorder_chain): ...here.  Remove redundant checking.
2774         (cfg_layout_finalize): Don't clear the header, footer, and aux
2775         fields here, move the code to do so to relink_block_chain.  Likewise
2776         for free_original_copy_tables.
2777         * rtl.h (tracer): Update prototype.
2778         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
2779         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
2780         mode.  Use relink_block_chain to serialize the CFG according to the
2781         new basic block order.  Move targetm.cannot_modify_jumps_p check from
2782         here...
2783         (gate_handle_reorder_blocks): ...to here.
2784         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
2785         from here...
2786         (gate_duplicate_computed_gotos): ...to here.
2787         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
2788         something always changes when going into and out of cfglayout mode.
2789         Perform an expensive cfg cleanup while going into cfglayout mode.
2790         Always update liveness information on HAVE_conditional_execution
2791         targets.  Reserialize the basic blocks and go out of cfglayout mode.
2792         * reg-stack.c: Include cfglayout.h.
2793         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
2794         the call to reorder_basic_blocks.
2795         * basic-block.h (reorder_basic_blocks): Update prototype.
2796         (relink_block_chain): New prototype.
2797         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
2798
2799 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
2800
2801         * config/mips/mips.md (type, hazard, *movdi_32bit,
2802         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
2803         *movhi_internal, *movqi_internal, *movsf_hardfloat,
2804         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
2805         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
2806         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
2807         applicable.
2808         (movcc): Change first xfer to multi.
2809         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
2810         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
2811         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
2812         config/mips/generic.md: Change reservations using "xfer" to use
2813         "mfc,mtc".
2814         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
2815         using match_operand.
2816         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
2817         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
2818         examining mode.
2819         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
2820
2821 2007-03-22  Richard Henderson  <rth@redhat.com>
2822
2823         * config/i386/i386.c: Remove unnecessary function declarations.
2824         Move targetm definition, and all related macros, to the end of
2825         the file.  Resort some functions to put definitions before uses.
2826         (ix86_attribute_table): Make static.  Move to end of file.
2827         (ix86_gimplify_va_arg): Make static.
2828
2829 2007-03-22  Richard Henderson  <rth@redhat.com>
2830
2831         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
2832         don't increase local_regparm with force_align_arg_pointer check.
2833         (ix86_function_sseregparm): Assert 32-bit.
2834         (type_has_variadic_args_p): New.
2835         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
2836         type_has_variadic_args_p.
2837         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
2838         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
2839         use memset instead.  Do maybe_vaarg check first; skip attribute
2840         tests if true; skip attribute tests for 64-bit.
2841         (construct_container): Remove TARGET_DEBUG_ARG.
2842         (function_arg_advance_32, function_arg_advance_64): Split out ...
2843         (function_arg_advance): ... from here.
2844         (function_arg_32, function_arg_64): Split out ...
2845         (function_arg): ... from here.
2846         (ix86_pass_by_reference): Tidy.
2847         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
2848         (function_value_32): New, from parts of ix86_function_value
2849         and ix86_value_regno.
2850         (function_value_64): New, from parts of ix86_function_value
2851         and ix86_libcall_value.
2852         (ix86_function_value_1): New.
2853         (ix86_function_value, ix86_libcall_value): Use it.
2854         (return_in_memory_32, return_in_memory_64): Split out ...
2855         (ix86_return_in_memory): ... from here.
2856         (ix86_struct_value_rtx): Skip for 64-bit.
2857         (ix86_libcall_value, ix86_value_regno): Remove.
2858         (setup_incoming_varargs_64): Split out ...
2859         (ix86_setup_incoming_varargs): ... from here.
2860         (ix86_va_start): Remove TARGET_DEBUG_ARG.
2861         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
2862         * config/i386/i386-protos.h (ix86_function_value): Remove.
2863         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
2864
2865 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2866
2867         PR other/23572
2868         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
2869         infinities not supported, otherwise emit warning if -Woverflow. On
2870         underflow, emit warning if -Woverflow.
2871         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
2872         and 0 otherwise.
2873         * real.h (real_from_string): Update declaration
2874
2875 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
2876             Richard Henderson  <rth@redhat.com>
2877
2878         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
2879         * calls.c (compute_argument_block_size, expand_call,
2880         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
2881         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2882         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
2883         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
2884         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
2885         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
2886         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
2887         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
2888         Set to 1.
2889
2890 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
2891
2892         * c-incpath.c (add_sysroot_to_chain): New.
2893         (merge_include_chains): Add sysroot argument.  Call
2894         add_sysroot_to_chain if sysrooted.
2895         (register_include_chains): Update call to merge_include_chains.
2896         * doc/cppopts.texi: Document use of '=' in include directory
2897         arguments.
2898
2899 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
2900
2901         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
2902         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
2903         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
2904         insn pattern using X87MODEF12 mode macro.
2905
2906 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
2907
2908         * regmove.c (regmove_optimize): Use reg_mentioned_p
2909         instead of reg_overlap_mentioned_p for DST.
2910
2911 2007-03-21  Mike Stump  <mrs@apple.com>
2912
2913         * c.opt: Fixup for Objective-C/C++.
2914
2915 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
2916
2917         * explow.c (convert_memory_address): Fold memory reference when
2918         POINTERS_EXTEND_UNSIGNED < 0
2919
2920 2007-03-21  Richard Henderson  <rth@redhat.com>
2921
2922         PR target/31245
2923         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
2924         * config/i386/mmintrin.h (__m64): Likewise.
2925         * config/i386/xmmintrin.h (__m128): Likewise.
2926
2927 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
2928
2929         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
2930         (VXWORKS_OS_CPP_BUILTINS): Define.
2931         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
2932         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
2933
2934 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
2935
2936         * rtl.h (constant_pool_reference_p): Delete.
2937         (find_constant_src): Declare.
2938         * rtlanal.c (find_constant_src): New function.
2939         * simplify-rtx.c (constant_pool_reference_p): Delete.
2940         * config/i386/i386.md: Use find_constant_src instead of
2941         constant_pool_reference_p/avoid_constant_pool_reference pairs.
2942
2943 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
2944
2945         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
2946         * c-cppbuiltin.c (c_cpp_builtins): Define them.
2947
2948 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
2949
2950         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
2951         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
2952         (arm_elf_asm_constructor): Use it.
2953         (arm_elf_asm_destructor): New function.
2954
2955 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2956
2957         * jump.c (mark_jump_label): Treat SEQUENCE specially.
2958
2959 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
2960
2961         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
2962
2963 2007-03-19  Andrew Haley  <aph@redhat.com>
2964
2965         PR tree-optimization/31264
2966         * tree-vrp.c (register_edge_assert_for_1): Don't look though
2967         VIEW_CONVERT_EXPRs.
2968
2969 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
2970
2971         PR rtl-optimization/30907
2972         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
2973         (fwprop_init): Always call loop_optimizer_initialize.
2974         (fwprop_done): Always call loop_optimizer_finalize.
2975         (fwprop): We always have loop info now.
2976         (gate_fwprop_addr): Remove.
2977         (pass_fwprop_addr): Use gate_fwprop as gate.
2978
2979         PR rtl-optimization/30841
2980         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
2981         df_chain_alloc): Call df_reorganize_refs unconditionally.
2982         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
2983         refs_organized to refs_organized_size.
2984         (df_ref_create_structure): Use refs_organized_size instead of
2985         bitmap_size if refs had been organized, and keep refs_organized_size
2986         up-to-date.
2987         * df.h (struct df_ref_info): Change refs_organized to
2988         refs_organized_size.
2989         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
2990         bitmap_size.
2991
2992 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
2993
2994         * except.c (output_function_exception_table): Do not reference the
2995         EH personality routine for functions that do not require an
2996         exception table.
2997
2998 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
2999
3000         PR c/30762
3001         * c-typeck.c (convert_for_assignment): Call comptypes for
3002         RECORD_TYPE or UNION_TYPE.
3003
3004         PR inline-asm/30505
3005         * reload1.c (reload): Do invalid ASM checking after
3006         cleanup_subreg_operands.
3007
3008 2007-03-19  Jeff Law  <law@redhat.com>
3009
3010         * tree-cfg.c (find_taken_edge): Tighten conditions for
3011         optimizing computed gotos.
3012
3013 2007-03-19  Michael Matz  <matz@suse.de>
3014
3015         * builtins.c (expand_builtin_sync_operation,
3016         expand_builtin_compare_and_swap,
3017         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
3018         correctly.
3019
3020         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
3021         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
3022         for operand 3.
3023
3024 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3025
3026         * doc/tm.texi: Add brackets around the return type of
3027         TARGET_SECONDARY_RELOAD.
3028
3029 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3030         Richard Guenther  <rguenther@suse.de>
3031
3032         PR tree-optimization/31254
3033         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
3034         Use handled_component_p () where appropriate.  Continue
3035         propagating into the rhs if we propagated into an INDIRECT_REF
3036         on the lhs.
3037
3038 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3039
3040         * config/s390/s390.md (op_type attribute): RRR instruction type added.
3041         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
3042         (xde, xdee): Mode attributes adjusted to support DFP modes.
3043         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
3044         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
3045         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
3046         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
3047         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
3048         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
3049         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
3050         numbers.
3051         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
3052         "movsf"): Insn definitions removed.
3053         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
3054         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
3055         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
3056         definitions added.
3057         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
3058         "reload_in<mode>", "reload_out<mode>"): Expander added.
3059         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
3060         Expander removed.
3061
3062 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3063
3064         * config/s390/s390.md: Only non-functional changes.  Renamed
3065         FPR mode macro to BFP all over the file.
3066
3067 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3068
3069         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
3070         (op_type attribute): RRF instruction type added.
3071         (fT0): New mode attribute.
3072         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
3073         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
3074         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
3075         no secondary memory is needed when moving DFmode values between GPRs
3076         and FPRs.
3077
3078 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3079
3080         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
3081         inverted and documentation adjusted.
3082         ("mhard-dfp", "msoft-dfp"): New options.
3083         * config/s390/s390.c (s390_handle_arch_option): New architecture
3084         switch: z9-ec.
3085         (override_options): Sanity checks for the new options added.
3086         * config.gcc: New architecture switch: z9-ec.
3087         * config/s390/s390.h (processor_flags): PF_DFP added.
3088         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
3089         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
3090         when the bit is NOT set so remove it from the defaults.
3091
3092 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3093
3094         * genemit.c (main): Print include statement for dfp.h.
3095         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
3096         is not available.
3097
3098 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
3099
3100         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
3101
3102 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3103
3104         PR target/31022
3105         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
3106         instead of PATTERN.
3107
3108 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3109
3110         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
3111         attr_length_call, output_call, output_indirect_call): Cleanup
3112         formatting of targetm calls.
3113
3114 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
3115
3116         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
3117
3118 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3119
3120         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
3121         reservation, bypass and anti-bypass descriptions for these instructions.
3122         Update move patterns.
3123         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
3124         TYPE_FPSTORE.
3125
3126 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
3127
3128         * tree-vect-transform.c (get_initial_def_for_induction): Replace
3129         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
3130         (get_initial_def_for_reduction): Likewise.
3131
3132 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
3133
3134         Fix PR tree-optimization/29922
3135         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
3136         (get_representative): Removed.
3137         (value_dies_in_block_x): Update for rvuse removal.
3138         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
3139         (compute_antic_aux): Handle when PHI nodes appear in
3140         non-single-successors.
3141         (dump_bitmap_of_names): Removed.
3142         (compute_antic_safe): Renamed and removed rvuse calculation.
3143         Calculate only antic safe.
3144         (insert_into_preds_of_block): Remove assert.
3145         (execute_pre): Update for renamed functions.
3146         (defer_or_phi_translate_block): New function.
3147
3148 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
3149
3150         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
3151         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
3152         typos.
3153         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
3154         Follow spelling conventions.
3155
3156         * tree-data-ref.h: Remove the prototype for analyze_array.
3157
3158 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
3159
3160         PR tree-optimization/31041
3161         * tree-vect-transform.c (get_initial_def_for_induction): Call
3162         force_gimple_operand.
3163
3164 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
3165
3166         * ipa-type-escape.c (look_for_casts) : Revert code to use
3167         handled_component_p due to ada test a-numaux.adb.
3168
3169 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
3170
3171         * final.c (final_scan_insn): Alter the condition of a
3172         conditional trap if we have nonstandard CC.
3173
3174 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
3175
3176         * configure.ac: Remove excess quoting from asm line 0 test.
3177         * configure: Rebuilt.
3178
3179 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3180
3181         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
3182         * c-common.c (convert_and_check): Move warning logic to...
3183         (warnings_for_convert_and_check): ...here. Define.
3184         * c-common.h (warnings_for_convert_and_check): Declare.
3185
3186 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3187
3188         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
3189         (output_call): Likewise.
3190
3191 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
3192
3193         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
3194
3195 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
3196
3197         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
3198
3199 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
3200
3201         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
3202         opteron, athlon-64 and athlon-fx processor_alias_table entries.
3203
3204 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
3205
3206         PR tree-optimization/31183
3207         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
3208         Use double_int instead of unsigned int for representing access_strides.
3209         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
3210
3211 2007-03-16  Richard Guenther  <rguenther@suse.de>
3212
3213         PR tree-optimization/31146
3214         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
3215         to allow recursion of forward_propagate_addr_expr.
3216         (forward_propagate_addr_into_variable_array_index): Likewise.
3217         (forward_propagate_addr_expr): Likewise.
3218         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3219         (forward_propagate_addr_expr_1): Recurse on simple copies
3220         instead of propagating into them.  Do so for useless conversions
3221         as well.
3222         (forward_propagate_addr_expr): Clean up unused statements after
3223         recursion.
3224
3225 2007-03-16  Richard Guenther  <rguenther@suse.de>
3226
3227         * builtins.c (expand_builtin_cexpi): Use the right argument
3228         for the expansion via cexp.
3229
3230 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
3231
3232         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
3233         * configure: Rebuilt.
3234
3235 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
3236
3237         PR debug/29906
3238         * dwarf2out.c (force_type_die): Adjust comment.
3239         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
3240
3241 2007-03-15  DJ Delorie  <dj@redhat.com>
3242
3243         * config/frv/predicates.md (minmax_operator): Don't check operands
3244         here.
3245
3246 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
3247
3248         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
3249         Update constant estimates of number of iterations.
3250         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
3251         argument renamed to "realistic".
3252         (compute_estimated_nb_iterations): Removed.
3253         (record_niter_bound): New function.
3254         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
3255         call record_nonwrapping_iv with upper = false.
3256         (infer_loop_bounds_from_signedness): Pass upper argument to
3257         record_nonwrapping_iv.
3258         (estimate_numbers_of_iterations_loop): Do not call
3259         compute_estimated_nb_iterations.  Record estimate based on profile
3260         information.  Initialize the constant estimates of number of
3261         iterations.
3262         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
3263         estimates.
3264         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
3265         number of iterations is too small.
3266         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
3267         (EST_NOT_AVAILABLE): Removed.
3268         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
3269         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
3270         fields.
3271
3272 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
3273
3274         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
3275         Handle NE_EXPR guards.
3276
3277 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3278
3279         PR c++/24924
3280         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
3281         Set also -pedantic-errors by default for the  preprocessor unless
3282         -fpermissive is given.
3283
3284 2007-03-15  Richard Guenther  <rguenther@suse.de>
3285
3286         PR middle-end/29719
3287         PR middle-end/31161
3288         * builtins.c (expand_builtin_cexpi): As a fallback if we
3289         don't have builtins for sincos or cexp create a function
3290         declaration for cexp and expand to a call to that.
3291         (expand_builtin_int_roundingfn): Always fall
3292         back to floor/ceil and its variants even if they may be
3293         not available.
3294
3295 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
3296
3297         PR middle-end/31159
3298         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
3299         jump tables, move the call to delete_dead_jumptables from here...
3300         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
3301         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
3302         don't allow merging of blocks that try_redirect_by_replacing_jump
3303         also does not handle when not optimizing.
3304
3305 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
3306             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3307
3308         * config/i386/i386.md (x86_sahf_1): Correctly handle
3309         HAVE_AS_IX86_SAHF.
3310
3311 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
3312
3313         PR target/31167
3314         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
3315         x86_64_general_operand as operand[2] predicate.  Remove "iF"
3316         from operand constraints and use "e" constraint instead.
3317         (*subti3_1, *subti3_1 splitter): Ditto.
3318         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
3319         operand[1] predicate.
3320
3321 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
3322
3323         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
3324         arrays, multiply the access strides by the size of the sub-array.
3325         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
3326
3327 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
3328
3329         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
3330         the configured assembler supports the sahf mnemonic.
3331         * configure: Regenerate.
3332         * config.in: Regenerate.
3333
3334         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
3335         emit "sahf" or ".byte\t0x9e" as asm template.
3336
3337 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
3338
3339         PR 31018
3340         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
3341         option to replace hard coded TARGET_xxx in md file.
3342         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
3343         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
3344         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
3345         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
3346         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
3347         (X86_TUNE_NOT_VECTORMODE): Ditto.
3348         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
3349         (TUNE_AVOID_VECTOR_DECODE): Ditto.
3350         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
3351         (TUNE_SLOW_IMUL_IMM8): Ditto.
3352         (TUNE_MOVE_M1_VIA_OR): Ditto.
3353         (TUNE_NOT_UNPAIRABLE): Ditto.
3354         (TUNE_NOT_VECTORMODE): Ditto.
3355
3356         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
3357         options.
3358
3359         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
3360         tuning options instead of hard coded TARGET_xxx.
3361         (fix ssemode peephole2's): Ditto.
3362         (imul peephole2's): Ditto.
3363         (movsi_or): Ditto.
3364         (movdi_or_rex64): Ditto.
3365         (move peephole2): Ditto.
3366         (not peephole2's): Ditto.
3367
3368 2007-03-14  Dirk Mueller  <dmueller@suse.de>
3369
3370         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
3371         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
3372         * c-parser.c (c_parser_if_body): Always add an empty statement in case
3373         of empty body.
3374         * c-parser.c (c_parser_do_statement): Warn about empty body in
3375         do/while statement.
3376         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
3377         * doc/invoke.texi (-Wempty-body): Update documentation.
3378
3379 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3380
3381         PR c/21438
3382         * c-common.h (warn_for_div_by_zero): Declare.
3383         * c-common.c (warn_for_div_by_zero): Define.
3384         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
3385         warning.
3386
3387 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
3388
3389         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
3390         to PREFIX and STANDARD_PREFIX.
3391
3392 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
3393             Phil Edwards  <phil@codesourcery.com>
3394
3395         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
3396         (__gthread_once_t): Remove busy field for RTPs.
3397         (__GTHREAD_ONCE_INIT): Update accordingly.
3398
3399 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
3400
3401         * doc/invoke.texi: Document VxWorks options.
3402
3403 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
3404
3405         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
3406
3407 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
3408
3409         PR tree-optimization/30590
3410         * tree-nrv.c (tree_nrv): Check for the partial update of the
3411         return value.
3412