OSDN Git Service

2007-09-10 Janis Johnson <janis187@us.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
2             Ben Elliston  <bje@au.ibm.com>
3
4         * dfp.c: Include decimal128Local.h; 
5         (dfp_byte_swap): Remove.
6         (encode_decimal32, decode_decimal32): Don't handle endianness.
7         (encode_decimal64, decode_decimal64): Ditto.
8         (encode_decimal128, decode_decimal128): Ditto.
9         * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
10         (__swap64): Remove.
11         (host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
12          (__swap128): Remove
13         (host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
14         * Makefile.in (DECNUM_H): Add decimal128Local.h.
15
16 2007-09-10  David Daney  <ddaney@avtrex.com>
17
18         * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
19         define_constants.
20         (memory_barrier): Rewrote as an insn that clobbers memory.
21
22 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
23
24         * config/mips/mips.c (mips_global_pointer): Check
25         call_really_used_regs instead of call_used_regs.
26         (mips_save_reg_p): Likewise.  Save all call-saved registers
27         if current_function_saves_all_registers.  Fix indentation.
28         No longer treat $18 as a special case.
29         (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
30
31 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
32
33         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
34         * config/mips/mips.c (mips_cpu_info_table): Mention it in the
35         the introductory comment.
36         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
37         (override_options): Don't test for it.
38         * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
39         (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
40         * config/mips/vr.h: As for config/mips/sde.h.
41
42 2007-09-10  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
43             Revital Eres  <eres@il.ibm.com>
44
45         * target.h (struct gcc_target.sched): New field: sms_res_mii.
46         (struct ddg): Define.
47         * target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
48         (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
49         * config/spu/spu.c: Include ddg.h.
50         (TARGET_SCHED_SMS_RES_MII): Define.
51         (spu_sms_res_mii): New function to calculate mii.
52         * modulo-sched (res_MII): Use it.
53         * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.
54
55 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
56
57         * config/s390/s390.c (s390_dump_pool): Create copy of constant
58         pool entries since they might hold values that must not be shared.
59
60 2007-09-10  Uros Bizjak  <ubizjak@gmail.com>
61
62         PR target/33369
63         * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
64         Use 'N' operand constraint for op2.
65         (lshr<mode>3): Ditto.
66         (ashl<mode>3): Ditto.
67         (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
68         (vec_shr_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
69
70         * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
71         IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
72
73 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
74
75         * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
76         Change mode macro in the last real_2expN parameter to uppercase.
77
78 2007-09-10  Michael Matz  <matz@suse.de>
79
80         * tree-pass.h (pass_cselim): Declare new pass.
81         * passes.c (init_optimization_passes): Link in pass_cselim.
82         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
83         tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
84         cond_store_replacement.
85         (condstoretemp): New static variable.
86         (cond_store_replacement): New function.
87         (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
88         tree_ssa_phiopt_worker.
89         (struct name_to_bb): New.
90         (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
91         nt_init_block, nt_fini_block): New static functions.
92         (seen_ssa_names, nontrap_set): New static variables.
93         (gate_cselim, pass_cselim): Define new pass.
94         * common.opt (ftree-cselim): New flag.
95         * toplev.c (process_options): Set flag_tree_cselim if required.
96
97 2007-09-10  Hans-Peter Nilsson  <hp@axis.com>
98
99         * simplify-rtx.c (simplify_relational_operation_1): For recent
100         canonicalization, don't recurse if op1 equals both PLUS arguments.
101
102 2007-09-09  David Daney  <ddaney@avtrex.com>
103
104         * optabs.c (expand_sync_operation):  Use plus insn if minus
105         CONST_INT_P(val).
106         (expand_sync_fetch_operation):  Ditto.
107
108 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
109
110         * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
111         of cvtpq2ps.
112         (*floatsisf2_sse_vector): Likewise.
113
114 2007-09-09  Krister Walfridsson  <cato@df.lth.se>
115
116         * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
117
118 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
119
120         * config/i386/i386.h (ix86_tune_indices): Rename
121         X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
122         (TARGET_USE_VECTOR_CONVERTS): Updated.
123         * config/i386/i386.c: Likewise.
124
125 2007-09-09  Sandra Loosemore  <sandra@codesourcery.com>
126             Nigel Stephens <nigel@mips.com>
127
128         * doc/invoke.texi (Overall Options):  Add .sx file extension
129         as a synonym for .S.
130         * cppspec.c (known_suffixes): Likewise.
131         * gcc.c (default_compilers): Likewise.
132
133 2007-09-09  Rask Ingemann Lambertsen  <rask@sygehus.dk>
134
135         PR target/30315
136         * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
137         * simplify-rtx.c (simplify_relational_operation_1): Add the
138         canonicalization from i386.h.
139         * doc/md.texi (Canonicalization of Instructions): Document it.
140
141 2007-09-09  Jan Hubicka  <jh@suse.cz>
142             Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
143
144         * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
145         (TARGET_USE_VECTOR_CONVERTS): New.
146         * i386.md: New post-reload splitters for converting SF to DF and DF to
147         SF.
148         (floatsi* expander): Special case vector conversions.
149         (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
150         floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
151         floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
152         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
153         Disable when doing vector converts.
154         (floatsi<mode>2_i387): Disable when
155         * sse.md (vec_dupv2df): Export.
156         * i386.c (ix86_tune_features): Enable SSE conversions.
157
158 2007-09-09  Richard Guenther  <rguenther@suse.de>
159
160         * tree-ssa-operands.c (add_virtual_operand): Only mark
161         stores as has_volatile_ops if alias information is not available.
162
163 2007-09-09  Revital Eres  <eres@il.ibm.com>
164
165         * doc/contrib.texi: Add myself.
166
167 2007-09-09  Ira Rosen  <irar@il.ibm.com>
168
169         * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
170         stmt_vinfo_set_outside_of_loop_cost): New functions.
171         * tree-vect-transform.c (vect_get_cost_fields): Remove.
172         (vect_model_simple_cost): Call
173         stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
174         field instead of calling vect_get_cost_fields.
175         (vect_model_store_cost, vect_model_load_cost): Likewise.
176
177 2007-09-09  Revital Eres  <eres@il.ibm.com>
178
179         * config/rs6000/rs6000.c (paired_init_builtins): Add const
180         declaration to bdesc_paired_preds variable.
181         (paired_expand_builtin): Likewise.
182
183 2007-09-09  Revital Eres  <eres@il.ibm.com>
184
185         * dbgcnt.def (sms_sched_loop): New counter.
186         * modulo-sched.c: Use sms_sched_loop instead of
187         MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
188         perform swing modulo scheduling on.  Include dbgcnt.h.
189         * Makefile.in: Add DBGCNT_H to modulo-sched.o.
190         * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
191
192 2007-09-09  Uros Bizjak  <ubizjak@gmail.com>
193
194         * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
195         Substitute all uses with ...
196         (MODEF): New mode iterator.
197
198         (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
199         from pre-regalloc define_insn_and_split splitter pattern.
200         (*fix_trunc<mode>_i387_1): Ditto.
201         (*fistdi2_1): Ditto.
202         (*fist<mode>2_1): Ditto.
203         (frndintxf2_floor): Ditto.
204         (*fist<mode>2_floor_1): Ditto.
205         (frndintxf2_ceil): Ditto.
206         (*fist<mode>2_ceil_1): Ditto.
207         (frndintxf2_trunc): Ditto.
208         (frndintxf2_mask_pm): Ditto.
209
210         (prologue): Use (const_int 0) as never generated filler insn.
211         (epilogue): Ditto.
212         (sibcall_epilogue): Ditto.
213         (eh_return_si): Ditto.
214         (eh_return_di): Ditto.
215
216         (add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
217         using MODEF mode iterator.
218         (sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
219         using MODEF mode iterator.
220         (mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
221         using MODEF mode iterator.
222         (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
223         Macroize expander using MODEF mode iterator.
224
225         (zero_extendsidi2): Remove operand constraints from expander.
226         (smuldi3_highpart): Ditto.
227         (indirect_jump): Ditto.
228         (tablejump): Ditto.
229         (rsqrtsf2): Ditto.
230         * config/i386/sse.md (storentv4sf): Ditto.
231         (storentv2df): Ditto.
232         (storentv2di): Ditto.
233         (storentsi): Ditto.
234         (sse2_cvtpd2ps): Ditto.
235         (vec_interleave_highv16qi): Ditto.
236         (vec_interleave_lowv16qi): Ditto.
237         (vec_interleave_highv8hi): Ditto.
238         (vec_interleave_lowv8hi): Ditto.
239         (vec_interleave_highv4si): Ditto.
240         (vec_interleave_lowv4si): Ditto.
241         (vec_interleave_highv2di): Ditto.
242         (vec_interleave_lowv2di): Ditto.
243         (sse2_maskmovdqu): Ditto.
244         * config/i386/mmx.md (mmx_maskmovq): Ditto.
245
246 2007-09-09  Ira Rosen  <irar@il.ibm.com>
247
248         * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
249         (struct _slp_tree, struct _slp_instance): Define new data structures
250         along macros for their access.
251         (struct _loop_vec_info): Define new fields: strided_stores,
252         slp_instances, and slp_unrolling_factor along macros for their access.
253         (enum slp_vect_type): New.
254         (struct _stmt_vec_info): Define new field, slp_type, and macros for its
255         access.
256         (STMT_VINFO_STRIDED_ACCESS): New macro.
257         (vect_free_slp_tree): Declare.
258         (vectorizable_load): Add an argument of type slp_tree.
259         (vectorizable_store, vectorizable_operation, vectorizable_conversion,
260         vectorizable_assignment): Likewise.
261         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
262         Declare (make extern).
263         * tree-vectorizer.c (new_stmt_vec_info): Initiliaze the new field.
264         (new_loop_vec_info): Likewise.
265         (destroy_loop_vec_info): Free memory allocated for SLP structures.
266         * tree-vect-analyze.c: Include recog.h.
267         (vect_update_slp_costs_according_to_vf): New.
268         (vect_analyze_operations): Add argument for calls to vectorizable_ ()
269         functions. For not pure SLP stmts with strided access check that the
270         group size is power of 2. Update the vectorization factor according to
271         SLP. Call vect_update_slp_costs_according_to_vf.
272         (vect_analyze_group_access): New.
273         (vect_analyze_data_ref_access): Call vect_analyze_group_access.
274         (vect_free_slp_tree): New functions.
275         (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
276         vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
277         vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
278         vect_detect_hybrid_slp): Likewise.
279         (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
280         and vect_detect_hybrid_slp.
281         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
282         SLP costs into account.
283         (vect_get_cost_fields): New function.
284         (vect_model_simple_cost): Make extern, add SLP parameter and handle
285         SLP.
286         (vect_model_store_cost, vect_model_load_cost): Likewise.
287         (vect_get_constant_vectors): New function.
288         (vect_get_slp_vect_defs, vect_get_slp_defs,
289         vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
290         vect_get_vec_defs): Likewise.
291         (vectorizable_reduction): Don't handle SLP for now.
292         (vectorizable_call): Don't handle SLP for now. Add argument to
293         vect_model_simple_cost.
294         (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
295         get SLPed and vectorized defs). Fix indentation and spacing.
296         (vectorizable_assignment): Handle SLP.
297         (vectorizable_induction): Don't handle SLP for now.
298         (vectorizable_operation): Likewise.
299         (vectorizable_type_demotion): Add argument to
300         vect_model_simple_cost.
301         (vectorizable_type_promotion): Likewise.
302         (vectorizable_store, vectorizable_load): Handle SLP.
303         (vectorizable_condition): Don't handle SLP for now.
304         (vect_transform_stmt): Add a new argument for SLP. Check that there is
305         no SLP transformation required for unsupported cases. Add SLP
306         argument for supported cases.
307         (vect_remove_stores): New function.
308         (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
309         (vect_transform_loop): Schedule SLP instances.
310         * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
311
312 2007-09-09  Andrew Haley  <aph@redhat.com>
313
314         * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the
315         fake signed optab.
316
317 2007-09-09  Hans-Peter Nilsson  <hp@axis.com>
318
319         Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
320         * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
321         Similar for what label_refs can go in the JUMP_TARGET field.  Split
322         REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
323         * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
324         REG_LABEL when replacing an operand with a LABEL_REF for a
325         non-jump insn.
326         (subst_reloads): When replacing a LABEL_REG with a register,
327         instead of generating a REG_LABEL note, assert that there already
328         is one or that the label is a known target for the insn.
329         * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
330         note, check the JUMP_LABEL field.  Remove "else" after return.
331         * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
332         cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
333         (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
334         REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
335         insns.  Iterate over all notes; don't assume there's only one.
336         * cse.c (recorded_label_ref): Adjust comment to refer to
337         REG_LABEL_OPERAND.
338         (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
339         insns, not just NONJUMP_INSN_P.
340         (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
341         isn't a jump target.
342         * jump.c (rebuild_jump_labels): Adjust head comment.
343         (init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
344         don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
345         (mark_all_labels): For JUMP_P insns without a target, check if the
346         the target is noted on the previous nonjump insn.
347         (mark_jump_label_1): New function, guts from mark_jump_label.
348         <case IF_THEN_ELSE>: Handle first operand as a non-target when
349         marking jump target labels.
350         <case LABEL_REF>: Adjust for whether to generate a
351         REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
352         For 'E' format rtl, iterate in descending element order.
353         (delete_related_insns): Handle both REG_LABEL_TARGET and
354         REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
355         reference count, delete and fallthrough.  Move finding-next-
356         non-deleted insn last in the function.  Look at all INSN_P insns
357         for REG_LABEL_OPERAND notes.
358         (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
359         JUMP.
360         * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
361         JUMP_LABEL, output the INSN_UID of it.
362         * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
363         and/or REG_LABEL_TARGET.
364         (add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
365         with jump.c copy by only adding notes for labels actually
366         referenced in the insn.
367         * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
368         usage count increment; handle all INSN_P trial insns.
369         (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
370         notes.
371         * rtl.h (struct rtx_def) <volatil>: Adjust to mention
372         REG_LABEL_TARGET and REG_LABEL_OPERAND.
373         (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
374         REG_LABEL_OPERAND.
375         * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
376         JUMP_P insns and REG_LABEL_OPERAND everywhere.
377         * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
378         on all INSN_P insns.
379         * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
380         * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
381         REG_LABEL_OPERAND notes.
382         * reload1.c (calculate_needs_all_insns): Adjust comments.
383         (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
384         * config/alpha/alpha.md (split for load of an address into a
385         four-insn sequence on Unicos/Mk): Adjust to use
386         REG_LABEL_OPERAND.
387         * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
388
389 2007-09-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
390
391         Revert:
392         2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
393         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
394         FOR_BB_INSNS_SAFE instead of for loop.
395         * cse.c (cse_extended_basic_block): Likewise.
396         * postreload.c (reload_cse_regs_1): New variable next. Make sure
397         that the for loop does not invoke NEXT_INSN on a deleted insn.
398         * function.c (instantiate_virtual_regs): Likewise.
399         * lower-subreg.c (remove_retval_note): Likewise.
400         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
401         FOR_BB_INSNS.
402         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
403         a deleted insn.
404         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
405         insn, if it's a jump.
406         (try_redirect_by_replacing_jump): New variable jump_p. Call
407         tablejump_p before delete_insn_chain.
408         * reload1.c (reload): New variable next. Make sure that the for
409         loop does not invoke NEXT_INSN on a deleted insn.
410         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
411         (delete_output_reload): New variable prev. Make sure the the for
412         loops do not invoke PREV_INSN on a deleted insn.
413
414 2007-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
415
416         * pa/constraints.md: Remove 'X' from unused letters comment.
417
418 2007-09-08  Richard Guenther  <rguenther@suse.de>
419
420         * tree-tailcall.c (find_tail_calls): If we don't have aliases
421         computed check stmt_ann->references_memory instead of counting
422         virtual operands.
423  
424 2007-09-08  Segher Boessenkool  <segher@kernel.crashing.org>
425
426         * cse.c (fold_rtx): Use validate_unshare_change() instead of
427         validate_change() in one more case.
428
429 2007-09-08  Zdenek Dvorak  <ook@ucw.cz>
430
431         PR tree-optimization/32283
432         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
433         estimated_loop_iterations.
434         (determine_use_iv_cost_condition): Decrease cost of expressions
435         used in iv elimination.
436
437 2007-09-08  Richard Guenther  <rguenther@suse.de>
438
439         * tree-cfg.c (verify_gimple_expr): Avoid building new
440         pointer types, use TYPE_POINTER_TO if available instead.
441
442 2007-09-08  Uros Bizjak  <ubizjak@gmail.com>
443
444         PR target/33329
445         PR rtl-optimization/26449
446         * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
447         (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
448         split1 pass.
449         (mulv16qi3): Implement as define_insn_and_split pattern instead of
450         define_expand.  Split insn in split1 pass.
451         (mulv2di3): Ditto.
452
453 2007-09-08  Dorit Nuzman  <dorit@il.ibm.com>
454
455         PR tree-optimization/33301
456         * tree-vect-analyze (analyze_operations): Look at the type of the rhs
457         when relevant.
458
459 2007-09-07  Zdenek Dvorak  <ook@ucw.cz>
460
461         PR tree-optimization/32183
462         * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
463
464         * tree-ssa-reassoc.c: Include cfgloop.h.
465         (is_reassociable_op): Add a loop argument and return true only
466         for inside loop.
467         (linearize_expr): Updated.
468         (should_break_up_subtract): Likewise.
469         (linearize_expr_tree): Likewise.
470         (init_reassoc): Call loop_optimizer_init with
471         AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
472         with CDI_DOMINATORS.
473         (fini_reassoc): Call loop_optimizer_finalize.
474
475 2007-09-07  Sterling Augustine  <sterling@tensilica.com>
476
477         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
478         if there is no i-cache.
479
480 2007-09-07  Richard Guenther  <rguenther@suse.de>
481
482         Reapply
483         2007-09-06  Richard Guenther  <rguenther@suse.de>
484
485         PR tree-optimization/32586
486         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
487         folding if nothing changed.
488         (simplify_unary_expression): New function.  Do tree combining
489         on conversion like codes.
490         (try_to_simplify): Call it.
491
492 2007-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
493
494         PR target/33286
495         * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
496         (__gthread_active,__gthread_start, __gthread_active_init): New.
497         * gthr-posix95.h: Likewise.
498
499 2007-09-07  Roman Zippel <zippel@linux-m68k.org>
500
501         * function.h (struct function): Rename calls_unwind_init
502         to saves_all_registers.
503         (current_function_saves_all_registers): Renamed from
504         current_function_calls_unwind_init.
505         * reload1.c (reload): Set current_function_saves_all_registers.
506         * except.c (expand_builtin_unwind_init): Likewise.
507         * config/m68k/m68k.c (m68k_save_reg): Use
508         current_function_saves_all_registers to save pic register.
509
510 2007-09-07  Janis Johnson  <janis187@us.ibm.com>
511
512         config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
513         config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
514
515         Reapply reverted changes:
516
517         2007-09-06  Jan Hubicka  <jh@suse.cz>
518  
519         * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
520         real_2expN.
521
522         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
523
524         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
525         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
526
527         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
528
529         * optabs.c (expand_float): Convert unsigned integer as signed only
530         if it provides sufficient accuracy; add mode argument to real_2expN.
531         (expand_fix): Fix comment typos; extend binary float into mode
532         wider than destination for converion to unsigned integer; add mode
533         argument to real_2expN.
534         * real.c (real_2expN): Add mode argument to special-case decimal
535         float values.
536         * real.h (real_2expN): Ditto.
537         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
538         real_2expN.
539         (fixed_from_string): Ditto.
540         (fixed_to_decimal): Ditto.
541         (fixed_convert_from_real): Ditto.
542         (real_convert_from_fixed): Ditto.
543         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
544         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
545         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
546         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
547
548 2007-09-07  Diego Novillo  <dnovillo@google.com>
549
550         * tree-flow.h (const_block_stmt_iterator): Remove.
551         Update all users to use block_stmt_iterator.
552         * tree-iterator.h (const_tree_stmt_iterator): Remove.
553         Update all users to use tree_stmt_iterator.
554
555 2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>
556
557         * config/mips/mips.c (mips_set_current_function): Temporarily
558         make this a no-op to fix bootstrap errors, pending rewrite.
559
560 2007-09-07  Jan Hubicka  <jh@suse.cz>
561
562         * reorg.c (dbr_schedule): Move code removing placeholder USEs later
563         in the pass.
564
565 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
566
567         PR tree-optimization/33299
568         * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
569         uses for all relevant loop-exit phis, not just the first.
570
571 2007-09-07  Richard Guenther  <rguenther@suse.de>
572
573         PR middle-end/33330
574         * tree-ssa-operands.c (access_can_touch_variable): An access
575         of the form (*p)[0] can touch a variable of same size.
576
577 2007-09-07  Jan Hubicka  <jh@suse.cz>
578
579         * passes.c (init_optimization_passes): Add simple dce and addressable
580         passes.
581         * tree-ssa.c (execute_update_addresses_taken): New function.
582         (pass_update_address_taken): New.
583         * tree-ssa-dse.c (execute_simple_dse): New function.
584         (pass_simple_dse): New.
585         * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
586
587 2007-09-07  Tobias Burnus  <burnus@net-b.de>
588
589         PR middle-end/33321
590         * doc/invoke.texi: Fix -Wstrict-overflow= table.
591
592 2007-09-07  Richard Guenther  <rguenther@suse.de>
593
594         Revert
595         2007-09-06  Richard Guenther  <rguenther@suse.de>
596
597         PR tree-optimization/32586
598         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
599         folding if nothing changed.
600         (simplify_unary_expression): New function.  Do tree combining
601         on conversion like codes.
602         (try_to_simplify): Call it.
603
604 2007-09-07  Richard Guenther  <rguenther@suse.de>
605             Uros Bizjak  <ubizjak@gmail.com>
606
607         PR tree-optimization/32821
608         * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
609         NULL in the call to set_bb_stmt_list.
610
611 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
612
613         * config/mips/mips.c (build_mips16_call_stub): Emit all direct
614         float calls here, rather than leaving some to the caller.
615         Use call_internal_direct and call_value_internal_direct.
616         * config/mips/mips.md (call_internal_direct): New pattern.
617         (call_value_internal_direct): Likewise.
618
619 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
620
621         * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
622         (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
623         to 0 for MIPS16.
624         (override_options): Set mips_base_move_loop_invariants.
625
626 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
627
628         * config/mips/mips.opt (mcode-readable=): Move to keep list
629         alphabetical.
630
631 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
632
633         * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
634         and -mgpopt options.  Adjust the -G documentation to match.
635         * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
636         * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
637         function, split out from mips_classify_symbol.  Return false for
638         !TARGET_LOCAL_SDATA.
639         (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
640         Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
641         (override_options): Check whether the -mgpopt setting is consistent
642         with the other flags.
643         (symbolic_expression_p): Delete.
644         (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
645         and default_elf_select_rtx_section.
646         (mips_in_small_data_p): Honor section attributes for MIPS16 too.
647         Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
648         external data and TARGET_EXTERN_SDATA.
649
650 2007-09-07  Tobias Burnus  <burnus@net-b.de>
651
652         PR fortran/33303
653         * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
654
655 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
656
657         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
658         FOR_BB_INSNS_SAFE instead of for loop.
659         * cse.c (cse_extended_basic_block): Likewise.
660         * postreload.c (reload_cse_regs_1): New variable next. Make sure
661         that the for loop does not invoke NEXT_INSN on a deleted insn.
662         * function.c (instantiate_virtual_regs): Likewise.
663         * lower-subreg.c (remove_retval_note): Likewise.
664         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
665         FOR_BB_INSNS.
666         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
667         a deleted insn.
668         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
669         insn, if it's a jump.
670         (try_redirect_by_replacing_jump): New variable jump_p. Call
671         tablejump_p before delete_insn_chain.
672         * reload1.c (reload): New variable next. Make sure that the for
673         loop does not invoke NEXT_INSN on a deleted insn.
674         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
675         (delete_output_reload): New variable prev. Make sure the the for
676         loops do not invoke PREV_INSN on a deleted insn.
677
678 2007-09-06  Zdenek Dvorak  <ook@ucw.cz>
679
680         * cgraphbuild.c (rebuild_cgraph_edges): Export.
681         * cgraph.h (rebuild_cgraph_edges): Declare.
682         * tree-pass.h (pass_expand_omp_ssa): New.
683         * omp-low.c (find_omp_clause): Export.
684         (copy_var_decl): Split from omp_copy_decl_2.
685         (build_omp_barrier): Return the call to emit instead of emitting
686         it directly.
687         (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
688         build_omp_barrier.
689         (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
690         expand_omp_for_generic, expand_omp_for_static_nochunk,
691         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
692         Adapted to work on SSA form.
693         (execute_expand_omp): Do not invalidate dominance information.
694         (gate_expand_omp): Do not run with -fopenmp-ssa flag.
695         (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
696         * gimplify.c (gimplify_omp_for): Ensure that the control variable is
697         a gimple_reg.
698         (force_gimple_operand): Allow gimplifying code expressions without
699         value.
700         * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
701         * common.opt (fopenmp-ssa): New.
702         * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
703         * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
704         * tree-cfg.c: Include tree-inline.h.
705         (struct move_stmt_d): Replace vars_to_remove by vars_map field.
706         (replace_by_duplicate_decl, replace_ssa_name,
707         mark_virtual_ops_in_region): New functions.
708         (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
709         to work on SSA form.
710         * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
711         * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
712         constructs.
713
714 2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
715
716         * tree-loop-linear.c: Include obstack.h.
717         (linear_transform_loops): New obstack lambda_obstack.
718         Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
719         lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
720         and free afterwards.
721         * lambda.h (struct obstack): New forward declaration.
722         (lambda_linear_expression_new): New parameter of type struct
723         obstack *.
724         (lambda_loopnest_new): Likewise.
725         (lambda_loopnest_transform): Likewise.
726         (lambda_body_vector_new): Likewise.
727         (lambda_body_vector_compute_new): Likewise.
728         (gcc_loopnest_to_lambda_loopnest): Likewise.
729         (lambda_loopnest_to_gcc_loopnest): Likewise.
730         * lambda-code.c: Include obstack.h.
731         (lambda_lattice_new): New parameter lambda_obstack.  Use it for
732         allocation of ret.
733         (lambda_body_vector_new): Likewise.
734         (lambda_linear_expression_new): Likewise.
735         (lambda_lattice_new): Likewise.
736         (lambda_loopnest_new): Likewise.  Additionally use obstack to
737         allocate LN_LOOPS(ret).
738         (lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
739         it to lambda_lattice_new.
740         (lambda_body_vector_compute_new): New parameter lambda_obstack.
741         Pass it to lambda_body_vector_new.
742         (lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
743         it to lambda_lattice_new.
744         (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
745         Pass it to lambda_loopnest_new, lambda_linear_expression_new.
746         (lambda_compute_target_space): Likewise.
747         (lambda_compute_auxillary_space): New parameter lambda_obstack.
748         Pass it to lambda_lattice_compute_base and
749         compute_nest_using_fourieer_motzkin.
750         (lambda_loopnest_transform): New parameter lambda_obstack.  Pass
751         it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
752         and lambda_lattice_compute_target_space.
753         (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
754         Pass it to lambda_linear_expression_new.
755         (gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
756         to gcc_tree_to_linear_expression.
757         (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
758         Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
759         (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
760         Pass it to lambda_body_vector_new and
761         lambda_body_vector_compute_new.
762         * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
763         (lambda-code.o): Likewise.
764
765 2007-09-06  Chao-ying Fu  <fu@mips.com>
766
767         * ginclude/stdfix.h: New file.
768         * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
769         (convert.o): Add dependence on fixed-value.h.
770         * c-convert.c (convert): Support FIXED_POINT_TYPE.
771         * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
772         to define fixed-point constants.
773         (c_cpp_builtins): Define fixed-point constants.
774         * convert.c (fixed-value.h): New include.
775         (convert_to_real): Update comment to include fixed-point.
776         Support FIXED_POINT_TYPE.
777         (convert_to_integer): Update comment to include fixed-point.
778         Support FIXED_POINT_TYPE.
779         (convert_to_complex): Support FIXED_POINT_TYPE.
780         (convert_to_fixed): New function.
781         * convert.h (convert_to_fixed): Declare.
782         * genopinit.c: Add comment about $Q for only fixed-point modes.
783         (optabs): Add fract_optab, fractuns_optab, satfract_optab,
784         satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
785         sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
786         ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
787         usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
788         usneg_optab for fixed-point modes.
789         (gen_insn): Add force_fixed to track the $Q format for all fixed-point
790         modes.
791         * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
792         PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
793         unsigned saturation optabs, when type is saturating.
794         (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
795         (expand_fixed_convert): New function.
796         (gen_fixed_libfunc, gen_signed_fixed_libfunc,
797         gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
798         gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
799         gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
800         gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
801         gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
802         functions.
803         (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
804         ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
805         usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
806         ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
807         usneg_optab, fract_optab, fractuns_optab, satfract_optab,
808         satfractuns_optab.
809         Initialize fixed-point libraries, including add, ssadd, usadd, sub,
810         sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
811         ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
812         fractuns, satfractuns.
813         * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
814         OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
815         OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
816         OTI_ssmsub_widen,  OTI_usmsub_widen.
817         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
818         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
819         ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
820         umsub_widen_optab, usmsub_widen_optab): Define.
821         (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
822         COI_satfractuns.
823         (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
824         Define.
825         (expand_fixed_convert): Declare.
826         * expr.c (convert_move): Support the move of fixed-point modes.
827         (emit_move_insn_1): Handle fixed-point mode to move via integer.
828         (categorize_ctor_elements_1): Handle FIXED_CST.
829         (count_type_elements): Handle FIXED_POINT_TYPE.
830         (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
831         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
832         Support FIXED_CST.
833         For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
834         multiply and add/subtract for fixed-point types.
835         For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
836         mode, we jump to binop directly.
837         Support FIXED_CONVERT_EXPR.
838         (do_store_flag): Check FIXED_CST to put a constant second.
839         (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
840         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
841         (const_vector_from_tree): Support FIXED_CST.
842         * doc/extend.texi (Fixed-Point): New node.
843         * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
844         ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
845         satfract, fractuns, satfractuns): Document them.
846
847 2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
848
849         * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
850         addresses into I registers.
851
852 2007-09-06  Jan Hubicka  <jh@suse.cz>
853             Andreas Tobler  <a.tobler@schweiz.org>
854
855         * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
856         sharing.
857         (machopic_legitimize_pic_address): Likewise.
858
859 2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
860             Jan Hubicka  <jh@suse.cz>
861
862         * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
863         instead of ufloat_optab->handlers directly.
864         (floatdidf2): Likewise.
865
866 2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>
867
868         * config/mips/mips.c:  Include diagnostic.h.
869         (mips_set_current_function): Check errorcount and sorrycount 
870         before generating RTL.
871
872 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
873
874         PR target/33256
875         * config/mips/mips.c (mips_classify_symbolic_expression): New function.
876         (mips_classify_address): Use it instead of mips_symbolic_constant_p.
877         (print_operand_reloc): Likewise.
878
879 2007-09-06  Janis Johnson  <janis187@us.ibm.com>
880
881         Revert:
882
883         2007-09-06  Jan Hubicka  <jh@suse.cz>
884  
885         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
886         real_2expN.
887
888         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
889
890         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
891         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
892
893         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
894
895         * optabs.c (expand_float): Convert unsigned integer as signed only
896         if it provides sufficient accuracy; add mode argument to real_2expN.
897         (expand_fix): Fix comment typos; extend binary float into mode
898         wider than destination for converion to unsigned integer; add mode
899         argument to real_2expN.
900         * real.c (real_2expN): Add mode argument to special-case decimal
901         float values.
902         * real.h (real_2expN): Ditto.
903         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
904         real_2expN.
905         (fixed_from_string): Ditto.
906         (fixed_to_decimal): Ditto.
907         (fixed_convert_from_real): Ditto.
908         (real_convert_from_fixed): Ditto.
909         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
910         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
911         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
912         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
913
914 2007-09-06  Tom Tromey  <tromey@redhat.com>
915
916         * tree-cfg.c (remove_bb): Only warn if line is non-zero.
917         * c-pch.c (c_common_read_pch): Restore current location after
918         reading PCH file.
919         * tree.c (expand_location): Update.
920         (expr_filename): Changed return type.  Unified the two cases.
921         (expr_lineno): Likewise.
922         (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
923         as lvalues.
924         * toplev.c (line_table): Changed type.
925         (general_init): Update.
926         (realloc_for_line_map): New function.
927         (general_init): Allocate line_table using GC.
928         * fix-header.c (line_table): Changed type.
929         (read_scan_file): Update.
930         (read_scan_file): Update.
931         * c-ppoutput.c (maybe_print_line): Update.
932         (print_line): Update.
933         (cb_line_change): Update.
934         (cb_define): Update.
935         (pp_file_change): Update.
936         * c-opts.c (c_common_init_options): Update.
937         (finish_options): Update.
938         (push_command_line_include): Update.
939         * c-lex.c (cb_line_change): Update.
940         (cb_def_pragma): Update.
941         (cb_define): Update.
942         (cb_undef): Update.
943         (c_lex_with_flags): Use cpp_get_token_with_location.
944         * input.h (line_table): Changed type.
945         (location_from_locus): New macro.
946         * tree.h (EXPR_FILENAME): No longer an lvalue.
947         (EXPR_LINENO): Likewise.
948         (expr_locus, set_expr_locus): Declare separately for
949         USE_MAPPED_LOCATION.
950         (expr_filename, expr_lineno): Changed return type.
951         * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
952         * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
953         (expand_gimple_basic_block): Likewise.
954         * final.c (final_scan_insn): Use expanded_location.
955
956 2007-09-06  Richard Guenther  <rguenther@suse.de>
957
958         PR tree-optimization/32586
959         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
960         folding if nothing changed.
961         (simplify_unary_expression): New function.  Do tree combining
962         on conversion like codes.
963         (try_to_simplify): Call it.
964         * builtins.c (fold_builtin_cexp): Fold the built expressions.
965         * fold-const.c (fold_unary): Test result of get_callee_fndecl().
966
967 2007-09-06  Jan Hubicka  <jh@suse.cz>
968
969         PR target/33318
970         * cse.c (fold_rtx): Avoid invalid sharing.
971
972 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
973
974         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
975         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
976
977 2007-09-06  Revital Eres  <eres@il.ibm.com>
978
979         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
980         Fix offsettable memory reference for 750CL.
981
982 2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>
983
984         * reload.c (find_reloads_address_1): Try to preserve original
985         base/index regclass of operands.
986         * regrename.c (scan_rtx_address): Likewise.
987         (replace_oldest_value_addr): Likewise.
988
989 2007-09-06  Richard Guenther  <rguenther@suse.de>
990
991         PR tree-optimization/33302
992         * domwalk.c (walk_dominator_tree): The exit block is
993         interesting even if it is not reachable.
994
995 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
996
997         PR middle-end/33306
998         * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
999
1000 2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
1001
1002         * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
1003         robustness.
1004
1005 2007-09-05  Ian Lance Taylor  <iant@google.com>
1006
1007         * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
1008         when printing.
1009         (dump_generic_node): Likewise.
1010         * print-rtl.c (print_decl_name): Likewise.
1011         * print-tree.c (print_node_brief): Likewise.
1012         (print_node): Likewise.
1013         * Makefile.in (RTL_BASE_H): Add alias.h.
1014         (TREE_H): Likewise.
1015
1016 2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
1017
1018         * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
1019         Defined.
1020         * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
1021         * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
1022
1023 2007-09-06  Jie Zhang  <jie.zhang@analog.com>
1024
1025         * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
1026         (tm_defines): Define UCLIBC_DEFAULT to 1.
1027         (extra_options): Add linux.opt.
1028         * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
1029         (CRT_CALL_STATIC_FUNCTION): Likewise.
1030         (NO_IMPLICIT_EXTERN_C): Likewise.
1031         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
1032         * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
1033         * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
1034         (ENDFILE_SPEC): Don't define.
1035         (LIB_SPEC): Likewise.
1036         (CRT_CALL_STATIC_FUNCTION): Likewise.
1037         (NO_IMPLICIT_EXTERN_C): Likewise.
1038         (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
1039         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
1040
1041 2007-09-06  Jan Hubicka  <jh@suse.cz>
1042
1043         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
1044         real_2expN.
1045
1046 2007-09-06  Jan Hubicka  <jh@suse.cz>
1047
1048         * opts.c (common_handle_option): Enable inlining functions for
1049         -fprofile-generate.
1050
1051 2007-09-06  Jakub Jelinek  <jakub@redhat.com>
1052
1053         * builtin-attrs.def (ATTR_NONNULL_3): New.
1054         (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
1055         ATTR_NOTHROW_NONNULL_##FA.
1056         (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
1057         (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
1058         ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
1059         ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
1060         ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
1061         ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
1062         ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
1063         New.
1064         (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
1065         ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
1066         ATTR_FORMAT_NOTHROW_3_4): Remove.
1067         * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
1068         vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
1069         __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
1070         instead of ATTR_FORMAT_*_*.
1071
1072 2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
1073
1074         * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
1075         parts re-used for REG_FRAME_RELATED_EXPR.
1076
1077 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
1078
1079         * optabs.c (expand_float): Convert unsigned integer as signed only
1080         if it provides sufficient accuracy; add mode argument to real_2expN.
1081         (expand_fix): Fix comment typos; extend binary float into mode
1082         wider than destination for converion to unsigned integer; add mode
1083         argument to real_2expN.
1084         * real.c (real_2expN): Add mode argument to special-case decimal
1085         float values.
1086         * real.h (real_2expN): Ditto.
1087         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
1088         real_2expN.
1089         (fixed_from_string): Ditto.
1090         (fixed_to_decimal): Ditto.
1091         (fixed_convert_from_real): Ditto.
1092         (real_convert_from_fixed): Ditto.
1093         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
1094         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
1095         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
1096         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
1097
1098 2007-09-05  Ian Lance Taylor  <iant@google.com>
1099
1100         * init-regs.c (initialize_uninitialized_regs): Call
1101         emit_insn_before rather than add_insn_before.
1102
1103 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
1104
1105         * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
1106         * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
1107         * tree-inline.h (copy_body_data): Add call_expr field.
1108         * tree-inline.c (expand_call_inline): Initialize call_expr.
1109         (copy_bb): Append anonymous inline fn arguments to arguments
1110         when inlining a CALL_EXPR_VA_ARG_PACK call.
1111         * builtins.c (expand_builtin): Issue an error if
1112         BUILT_IN_VA_ARG_PACK is seen during expand.
1113         (fold_call_expr, fold_builtin_call_array): Don't fold
1114         CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
1115         __builtin_va_arg_pack () call as last argument.
1116         * gimplify.c (gimplify_call_expr): If last argument to a vararg
1117         function is __builtin_va_arg_pack (), decrease number of call
1118         arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
1119         * expr.c (expand_expr_real_1): Issue an error if
1120         CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
1121         * tree-pretty-print.c (dump_generic_node): Handle printing
1122         CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
1123         * doc/extend.texi (__builtin_va_arg_pack): Document.
1124
1125 2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
1126
1127         PR tree-optimization/21513
1128         * builtins.c (build_builtin_expect_predicate): New function.
1129         (fold_builtin_expect): Add argument for expected value.
1130         Distribute __builtin_expect over short-circuiting operations.
1131         Fold nested builtin_expects.
1132         (fold_builtin_2): Adjust call to fold_builtin_expect.
1133
1134 2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1135
1136         PR web/32965
1137         PR tree-optimization/13756
1138         * doc/invoke.texi (Options That Control Optimization): Document
1139         -ftree-dse.
1140
1141 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
1142
1143         * gcc/config/i386/cpuid.h: New file.
1144         * gcc/config/i386/driver-i386.c: Include cpuid.h.
1145         (describe_cache): Shrink size and line strings to 100 bytes.
1146         (detect_caches_amd): Return "" for unsupported max_ext_level.
1147         Use __cpuid function.
1148         (detect_caches_intel): Return "" for unsupported max_level.
1149         Use __cpuid function.
1150         (host_detect_local_cpu): Change feature flag variables to
1151         unsigned int.  Initialize only extended feature flag variables.
1152         Use __get_cpuid_max to determine max supported cpuid level.
1153         Use __cpuid function to determine supported features.  Fix
1154         calculation of family id.  Remove is_amd and check signature
1155         directly.  Check for Geode signature.  Handle family 4 id.
1156         [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
1157         cpu discovery code to lower part of the function.
1158         [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
1159         for sub-architecture.
1160         [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
1161         [PROCESSOR_K8]: Add k8-sse3 architecture.
1162         [PROCESSOR_NOCONA]: Remove.
1163         [PROCESSOR_GENERIC64]: Ditto.
1164         * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
1165         * gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
1166         to check for SSE and FXSAVE support.
1167         * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
1168         Add -minline-all-stringops.
1169         * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
1170         (x86_64-*-*): Ditto.
1171
1172 2007-09-05  Jie Zhang  <jie.zhang@analog.com>
1173
1174         * config/bfin/linux-unwind.h: New file.
1175         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
1176         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
1177
1178 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1179
1180         * Makefile.in (stmt.o): Add alloc-pool.h dependency.
1181         * stmt.c: Include alloc-pool.h.
1182         (struct case_node): Remove GTY marker.
1183         (add_case_node): New parameter case_node_pool.  Use it for
1184         allocation of r.
1185         (expand_case): New allocation pool case_node_pool.  Initialize it,
1186         pass to add_case_node and free it.
1187
1188 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1189             David Ung  <davidu@mips.com>
1190             Nigel Stephens <nigel@mips.com>
1191
1192         Add mips16/nomips16 function attributes and -mflip-mips16 option
1193         for testing mixed-mode compilation.
1194
1195         * config/mips/mips.opt (mflip-mips16): New.
1196
1197         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
1198         (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
1199
1200         * config/mips/mips.c (mips_base_target_flags): New.
1201         (mips_base_mips16): New.
1202         (mips_base_schedule_insns): New.
1203         (mips_base_reorder_blocks_and_partition): New.
1204         (mips_base_align_loops): New.
1205         (mips_base_align_jumps): New.
1206         (mips_base_align_functions): New.
1207         (mips16_flipper): New.
1208         (mips_attribute_table): Add "mips16" and "nomips16" entries.
1209         (TARGET_SET_CURRENT_FUNCTION): Define.
1210         (mips_mips16_type_p, mips_nomips16_type_p): New.
1211         (mips_comp_type_attributes): Check mips16/nomips16 attributes.
1212         (mips_function_ok_for_sibcall): Make it deal with functions with
1213         mips16 attributes.
1214         (mips_init_split_addresses): New, split out from override_options.
1215         (mips_init_relocs): New, split out from override_options.
1216         (was_mips16_p): New.
1217         (mips_set_mips16_mode): New, split out from override_options.
1218         (mips_set_current_function): New.
1219         (override_options): Add sorry for unsupported mips16/pic
1220         combination.  Remove error for mips16/dsp combination.  Save
1221         base option settings.  
1222         (mips_file_start): Move mips16 mode setting output from here....
1223         (mips_output_function_prologue): ....to here.
1224         (mips_output_mi_thunk): Check for mips16 function.
1225         (build_mips16_function_stub): Don't set .mips16 here.
1226         (build_mips16_call_stub): Likewise.
1227         (mips_expand_builtin): Error in mips16 mode.
1228         (mips_use_mips16_mode_p): New.
1229         (mips_encode_section_info): Check for mips16 function, and set
1230         SYMBOL_REF_FLAGS accordingly.
1231
1232         * doc/extend.texi (Function Attributes): Document new
1233         mips16/nomips16 attributes.
1234         * doc/invoke.texi (Option Summary): Add -mflip-mips16.
1235         (MIPS Options): Document -mflip-mips16.
1236
1237 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1238
1239         * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
1240         if we encounter TLS address in MIPS16 mode.
1241         (mips_legitimize_const_move): Check cannot_force_const_mem for
1242         the (const (plus symbol offset)) case; this forces invalid TLS
1243         address in MIPS16 mode to be caught by the above call to sorry.
1244         (override_options): Don't reset targetm.have_tls in MIPS16 mode,
1245         because that now enables emutls, which is not ABI compatible
1246         with native TLS in non-MIPS16 mode.
1247
1248 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1249
1250         Add target hook invoked when cfun changes.
1251
1252         * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
1253         * target.h (struct gcc_target): Add set_current_function.
1254         * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
1255         (TARGET_INITIALIZER): Add initializer for set_current_function.
1256         * tree.h (push_struct_function): New.
1257         * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
1258         * function.h: Here.
1259         (set_cfun): Declare.
1260         * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
1261         * function.c: Here.
1262         (push_function_context_to): Use allocate_struct_function
1263         to create null context, not init_dummy_function_start.  Use set_cfun.
1264         (pop_function_context_from): Use set_cfun.
1265         (in_dummy_function): New.
1266         (invoke_set_current_function_hook): New.
1267         (set_cfun): New.
1268         (push_cfun, pop_cfun): Use set_cfun.
1269         (push_struct_function): New.
1270         (allocate_struct_function): Call invoke_set_current_function_hook
1271         before returning.
1272         (prepare_function_start): Don't set cfun here.  Remove unused
1273         argument; fix all callers.
1274         (init_dummy_function_start): Fiddle with in_dummy_function.  Call
1275         push_struct_function.
1276         (init_function_start): Set cfun here.
1277         (expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
1278         * omp-low.c (create_omp_child_function): Use push_struct_function
1279         and pop_cfun to save/restore state.
1280         (expand_omp_parallel): Remove unused saved_cfun variable.
1281         * cgraphunit.c (ipa_passes): Use set_cfun.
1282         * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
1283         * dwarf2out.c (dwarf2out_abstract_function): Likewise.
1284         * matrix-reorg.c (transform_allocation_sites): Likewise.
1285         (matrix_reorg): Use set_cfun.
1286         * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
1287         * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
1288         assignment to cfun; use set_cfun for the other.
1289         * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
1290         (dump_function_to_file): Use push_cfun/pop_cfun here.
1291         * c-decl.c (finish_function): Use set_cfun.
1292
1293 2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1294
1295         * regrename.c (rerename_optimize): Use deferred rescanning and
1296         insert explicit calls to rescan insns when changed.
1297         
1298 2007-09-05  Jan Hubicka  <jh@suse.cz>
1299
1300         * optabs.c (libfunc_entry): Change optab to integer.
1301         (hash_libfunc, convert_optab_libfunc, optab_libfunc,
1302         set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
1303         of pointers for hashing.
1304
1305 2007-09-05  Jan Hubicka  <jh@suse.cz>
1306
1307         * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
1308         verifier.
1309         * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
1310         * see.c (pass_see): Likewise.
1311         * tracer.c (pass_tracer): Likewise.
1312         * postreload-gcse.c (pass_gcse2): Likewise.
1313         * postreload.c (pass_postreload_cse): Likewise.
1314         * mode-switching.c (pass_mode_switching): Likewise.
1315         * modulo-sched.c (pass_sms): Likewise.
1316         * cse.c (cse_insn): Likewise.
1317         * web.c (pass_web): Likweise.
1318         * combine-stack-adj.c (pass_stack_adjustments): Likewise.
1319         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
1320         * loop-init.c (pass_rtl_loop_init): Likewise.
1321         (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
1322         pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
1323         * global.c (pass_global_alloc): Likewise.
1324         * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
1325         pass_if_after_reload): Likewise.
1326         * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
1327         * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
1328         * regmove.c (pass_regmove): Likewise.
1329         * function.c (pass_thread_prologugues_epilogues): Likewise.
1330         * gcse.c (pass_gcse): Likewise.
1331         * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
1332         * lower-subreg.c (pass_lower_subreg2): Likewise.
1333         * bt-load.c (pass_branch_target_load): Likewise.
1334         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
1335         * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
1336         * combine.c (pass_combine): Likewise.
1337         * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
1338         (pass_partition_blocks): Likewise.
1339         * var-tracking.c (pass_variable_track): Likewise.
1340         * reg-stack.c (pass_stack_regs_run): Likewise.
1341         * sched-rgn.c (pass_sched, pass_sched2): Likewise.
1342         * passes.c (pass_postreload): Likewise.
1343         (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
1344         * tree-pass.h (TODO_verify_rtl_sharing): New.
1345         (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
1346         TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
1347         TODO_set_props, TODO_df_finish, TODO_df_verify,
1348         TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
1349
1350 2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1351
1352         * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
1353         fold_real_zero_addition_p, reorder_operands_p,
1354         div_if_zero_remainder, fold_undefer_overflow_warnings,
1355         int_binop_types_match_p, fold_convert_const_int_from_int,
1356         fold_convert_const_int_from_real,
1357         fold_convert_const_int_from_fixed,
1358         fold_convert_const_real_from_real,
1359         fold_convert_const_real_from_fixed,
1360         fold_convert_const_fixed_from_fixed,
1361         fold_convert_const_fixed_from_int,
1362         fold_convert_const_fixed_from_real, maybe_lvalue_p,
1363         fold_checksum_tree, fold_check_failed, print_fold_checksum,
1364         debug_fold_checksum, multiple_of_p): Constify.
1365         * tree-flow-inline.h (get_lineno): Likewise.
1366         * tree-flow.h (get_lineno): Likewise.
1367         * tree-object-size.c (compute_object_offset, addr_object_size,
1368         alloc_object_size, pass_through_call): Likewise.
1369         * tree-pretty-print.c (op_symbol, print_call_name,
1370         print_struct_decl, do_niy): Likewise.
1371         * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
1372         debug_fold_checksum): Likewise.
1373
1374 2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>
1375
1376         PR middle-end/33029
1377         * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
1378         note, remove the associated REG_RETVAL note.
1379
1380 2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1381
1382         * config.gcc (powerpc*-*-*): Install
1383         spu2vmx.h, vec_types.h, and si2vmx.h headers.
1384         * config/rs6000/spu2vmx.h: New header.
1385         * config/rs6000/si2vmx.h: New header.
1386         * config/rs6000/vec_types.h: New header.
1387
1388 2007-09-05  Ben Elliston  <bje@au.ibm.com>
1389
1390         * varasm.c (initializer_constant_valid_p): Fix comment typo.
1391
1392 2007-09-05  Ben Elliston  <bje@au.ibm.com>
1393
1394         * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
1395         not `m' for *ptrp.
1396         (__stdcx): Make asm volatile.
1397         (__stwcx, __stdcx): Return only 0 or 1.
1398
1399 2007-09-05  Jan Hubicka  <jh@suse.cz>
1400
1401         Revert:
1402
1403         2007-09-04  Jan Hubicka  <jh@suse.cz>
1404         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
1405
1406         2007-09-04  Richard Guenther  <rguenther@suse.de>
1407         * tree-ssa-operands.c (add_virtual_operand): Only mark
1408         stores as has_volatile_ops if alias information is not available.
1409
1410 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
1411
1412         * config/rs6000/tramp.asm: Include config.h.
1413         Check __PIC__ or __pic__ macro instead of SHARED.
1414
1415         PR rtl-optimization/32300
1416         * see.c (see_copy_insn): New function.
1417         (see_def_extension_not_merged, see_merge_one_use_extension,
1418         see_merge_one_def_extension): Use it.  Avoid changing
1419         PREV_INSN/NEXT_INSN chains directly, insted emit insns
1420         into sequences.  Call df_insn_delete on temporary insns
1421         that won't be emitted into the insn stream.
1422         (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
1423         and run df_process_deferred_rescans () before run_fast_dce.
1424
1425         PR tree-optimization/33017
1426         * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
1427         recurse for pure or const function calls.
1428
1429 2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1430
1431         * c-format.c: Include alloc-pool.h.
1432         (check_format_info_main): New argument fwt_alloc.  Use allocation
1433         pool instead of GC.  Remove GC deallocation code.
1434         (check_format_arg): Create allocation pool, pass it to
1435         check_format_info_main and free it afterwards.
1436         * Makefile.in (c-format.o): Add alloc-pool.h dependency.
1437
1438 2007-09-05  Ben Elliston  <bje@au.ibm.com>
1439
1440         * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
1441         Rename count macro arugment for clarity.
1442         (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
1443         (__protected_stream_set): Likewise, pass 0.
1444
1445 2007-09-04  Jan Hubicka  <jh@suse.cz>
1446
1447         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
1448
1449 2007-09-04  Jan Hubicka  <jh@suse.cz>
1450
1451         * invoke.texi (-finline-small-functions): Document.
1452         * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
1453         when deciding what is inlinable.
1454         (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
1455         (cgraph_decide_inlining_of_small_function): Handle new flags.
1456         (cgraph_decide_inlining_incrementally): Likewise.
1457         * opts.c (decode_options): Enable flag_inline_small_functions at -O2
1458         * common.opt (finline-small-functions): New.
1459         * Makefile.in (build/gengtype.o-warn): Work around PR29478
1460
1461 2007-09-04  Richard Guenther  <rguenther@suse.de>
1462
1463         * tree-ssa-operands.c (add_virtual_operand): Only mark
1464         stores as has_volatile_ops if alias information is not available.
1465
1466 2007-09-04  Andrew Haley  <aph@redhat.com>
1467
1468         * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
1469
1470 2007-09-04  Andrew Haley  <aph@redhat.com>
1471
1472         * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
1473         * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
1474         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
1475
1476 2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>
1477
1478         PR c++/14178
1479         * common.opt: Mention ABI version 2 in comment.
1480
1481 2007-09-04  Jan Hubicka  <jh@suse.cz>
1482
1483         * optabs.c (debug_optab_libfunc): Update; make available to gdb.
1484         (libfunc_entry): New structure.
1485         (libfunc_hash): New hashtable.
1486         (hash_libfunc): New function.
1487         (eq_libfunc): New function.
1488         (convert_optab_libfunc): New function.
1489         (optab_libfunc): New function.
1490         (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
1491         expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
1492         expand_float, expand_fix, new_optab, new_convert_optab):
1493          Update for new libfunc API.
1494         (init_libfunc, init_integral_libfuncs,
1495         init_floating_libfuncs, init_interclass_conv_libfuncs
1496         init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
1497         (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
1498         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1499         gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
1500         gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
1501         gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
1502         gen_extend_conv_libfunc): New.
1503         (init_one_libfunc): Revamp for hashtables.
1504         (set_conv_libfunc): Likewise.
1505         (init_optabs): Initialize hashtable; use lazy initialization where
1506         possible.
1507         * optabs.h (optab_handlers): Move out of GGC.
1508         (optab, convert_optab): Move out of GGC; add lazy gen info.
1509         (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
1510         (optab_libfunc, convert_optab_libfunc): New.
1511         * builtins.c (expand_builtin_powi): Update for new API.
1512         * expr.c (convert_move): Likewise.
1513         * expmed.c (expand_divmod): Likewise.
1514
1515 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
1516
1517         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
1518         GOT pointer only if there is a constant pool.  Use the allocated space
1519         for SPE also.
1520
1521 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
1522
1523         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
1524         typo for AltiVec.
1525
1526 2007-09-04  Revital Eres  <eres@il.ibm.com>
1527             Richard Guenther  <rguenther@suse.de>
1528             R. Clint Whaley  <whaley@cs.utsa.edu>
1529
1530         * doc/invoke.texi (-fassociative-math, -freciprocal-math):
1531         Document new flags.
1532         * tree-tailcall.c (process_assignment): Use -fassociative-math
1533         when reodering operands of floating-point type.
1534         * fold-const.c (fold_comparison, fold_binary): Use
1535         -fassociative-math and -freciprocal-math instead of
1536         -funsafe-math-optimization flag.
1537         * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
1538         * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
1539         -freciprocal-math instead of -funsafe-math-optimizations.
1540         * opts.c (set_fast_math_flags): Set -freciprocal-math and
1541         -fassociative-math when -ffast-math is set.
1542         (set_unsafe_math_optimizations_flags): New Function
1543         to set -freciprocal-math and -fassociative-math when
1544         -funsafe-math-optimizations is set.
1545         (common_handle_option): Call it.
1546         * tree-vectorizer.c (vect_is_simple_reduction): Use
1547         -fassociative-math when doing reduction on floats.
1548         * loop-unroll.c (analyze_insn_to_expand_var): Use
1549         -fassociative-math when expanding an accumulator of type float.
1550         * simplify-rtx.c (simplify_binary_operation_1): Use
1551         -fassociative-math and -freciprocal-math when reordeing operands
1552         of floating-point type.
1553         * combine.c (combine_simplify_rtx): Likewise.
1554         * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
1555         Likewise.
1556         * common.opt (-fassociative-math, -freciprocal-math): New flags.
1557
1558 2007-09-04  Paolo Carlini  <pcarlini@suse.de>
1559
1560         PR c++/18608
1561         * doc/install.texi (--enable-__cxa_atexit): Fix typo.
1562
1563 2007-09-04  Jan Hubicka  <jh@suse.cz>
1564
1565         * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
1566
1567 2007-09-04  Jan Hubicka  <jh@suse.cz>
1568
1569         * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
1570         and corresponding MATCH_DUP.
1571
1572 2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
1573
1574         PR middle-end/33187
1575         * combine.c (subst): Do not try to simplify X if it represents load
1576         of FP constant from the constant pool via float extension.
1577
1578 2007-09-04  Ben Elliston  <bje@au.ibm.com>
1579
1580         * c-opts.c: Include "tm_p.h".
1581         * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
1582
1583 2007-09-04  Richard Guenther  <rguenther@suse.de>
1584
1585         PR tree-optimization/33291
1586         * tree-pretty-print.c (dump_generic_node): Dump all
1587         qualifiers for pointer types, not only first.  Dump
1588         qualifiers for aggregate types as well.
1589         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
1590         use the canonical type for building ARRAY_REFs.
1591         * gimplify.c (canonicalize_addr_expr): Clean up.  The
1592         correct validness check is compatibility of the pointer
1593         types.  Always use the canonical type for building
1594         ARRAY_REFs and ADDR_EXPRs.
1595         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
1596         change that disabled propagation of ADDR_EXPRs into statements
1597         with volatile ops.
1598
1599 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1600
1601         * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
1602         (umulsi3_highpart): Make into expanders; existing insns are
1603         now named *[insn]_nov6.  Add stars to existing [insn]_v6
1604         counterparts' names.
1605
1606 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
1607
1608         * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
1609         (unprotoize.o): Remove SHLIB_MULTILIB.
1610
1611 2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
1612
1613         * doc/extend.texi: Document progmem attribute for AVR.
1614
1615 2007-09-03  Anatoly Sokolov <aesok@post.ru>
1616
1617         PR target/28902
1618         * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
1619
1620 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1621
1622         * optabs.c (expand_ffs): Initialize val and defined_at_zero
1623         to avoid warnings.
1624
1625         * optabs.c: Remove unnecessary forward declarations.
1626         (expand_unop_direct): New, broken out of expand_unop.
1627         (expand_doubleword_clz): New.
1628         (expand_ctz): Move above expand_ffs.  Use
1629         start_sequence, end_sequence, add_equal_note, and
1630         expand_unop_direct.  Add more commentary.
1631         (expand_ffs): Try both ctz optab and expand_ctz.
1632         Generate a test and branch if the hardware doesn't give us
1633         a useful value for input zero.  Style improvements similar to
1634         expand_ctz.
1635
1636         * config/arm/arm.md (ffssi2, ctzsi2): Delete.
1637
1638 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1639
1640         * config.gcc: Delete stanza for arm-semi-aof and
1641         armel-semi-aof targets.
1642         * config/arm/arm-protos.h
1643         * config/arm/arm.c
1644         * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
1645         make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
1646         delete aof_pic_label and remove mention of AOF in comments.
1647         * config/arm/arm.md: Delete patterns used only for AOF assembly.
1648         * config/arm/aof.h
1649         * config/arm/semiaof.h
1650         * config/arm/t-semi: Delete file.
1651
1652 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1653
1654         * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
1655         CONST_CAST_BB): New macros for type-specific casts.
1656         (CONST_CAST): Add a TYPE parameter and define it in terms of
1657         CONST_CAST2.
1658
1659         * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
1660         * c-lex.c (cb_ident, lex_string): Likewise,
1661         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
1662         * config/i386/i386.c (ix86_function_regparm,
1663         ix86_function_sseregparm): Use CONST_CAST_TREE.
1664         * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
1665         CONST_CAST.
1666         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
1667         give_switch, set_multilib_dir): Likewise,
1668         * gengtype-parse.c (string_seq, typedef_name): Likewise,
1669         * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
1670         * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
1671         * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
1672         * prefix.c (update_path): Likewise,
1673         * pretty-print.c (pp_base_destroy_prefix): Likewise,
1674         * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
1675         * tree-cfg.c (tree_can_merge_blocks_p,
1676         tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
1677         * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
1678         * tree.c (build_string): Supply a TYPE for CONST_CAST.
1679         (attribute_list_contained): Use CONST_CAST_TREE.
1680
1681 2007-09-03  Krister Walfridsson  <cato@df.lth.se>
1682
1683         * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
1684
1685 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
1686
1687         PR middle-end/33290
1688         * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
1689         before forcing them into a register.
1690
1691 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
1692
1693         * config/mips/mips.md (fetchop_bit): Use define_code_iterator
1694         rather than define_code_macro.
1695
1696 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1697
1698         * gcc.c (xputenv): New function.
1699         (putenv_from_prefixes): Use xputenv instead of putenv.
1700         (process_command): Use xputenv instead of putenv.
1701         (set_collect_gcc_options): Use xputenv instead of putenv.
1702         (main): Use xputenv instead of putenv.
1703
1704 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
1705
1706         * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
1707         availability of swap instruction.
1708         * config/cris/cris.md (bswapsi2): Implement using swap instruction.
1709
1710 2007-09-03  Revital Eres  <eres@il.ibm.com>
1711
1712         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
1713         Documentation.
1714
1715 2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
1716             Ayal Zaks  <zaks@il.ibm.com>
1717             Revital Eres  <eres@il.ibm.com>
1718
1719         * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
1720         compute_split_row): New functions.
1721         (ps_unschedule_node): Remove.
1722         (normalize_sched_times): Iterate over the already scheduled
1723         insns instead of the number of nodes.
1724         (MAX_SPLIT_NUM): New definition.
1725         (sms_schedule_by_order): Change the scheduling heuristic to
1726         avoid useless increases of initiation interval ii.
1727         (get_sched_window): Add dump printouts.
1728
1729 2007-09-02  David Daney  <ddaney@avtrex.com>
1730
1731         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
1732         UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
1733         (optab, insn): Add more attributes.
1734         (fetchop_bit): New code macro.
1735         (immediate_insn): New code macro attribute.
1736         (sync): Change condition to ISA_HAS_SYNC.
1737         (rdhwr): Change predicate for operand 0 to register_operand.
1738         (memory_barrier): New expand.
1739         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
1740         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1741         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1742         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1743         sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
1744         * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
1745         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
1746         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1747         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
1748         
1749 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
1750             Hans-Peter Nilsson  <hp@axis.com>
1751
1752         * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
1753         Defined to describe availability and behavior of CLZ.
1754         * config/cris/cris.md (clzsi2): Implement using lz instruction.
1755         * config/cris/cris.opt: Tweak comment for "-metrax4".
1756         * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
1757         * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
1758         (count_leading_zeros): Define.
1759
1760 2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1761
1762         * ggc-page.c (ggc_pch_read): Call validate_free_objects.
1763
1764 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
1765
1766         PR middle-end/33272
1767         * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
1768         decayed from array.
1769
1770 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
1771
1772         * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
1773         config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
1774         ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
1775         sched-deps.c, sched-int.h, system.h, target.h,
1776         tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
1777         tree.def: Fix comment typos.
1778
1779 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
1780
1781         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
1782         (override_options): Turn on -mstrict-align on non-ColdFire
1783         targets.
1784         * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
1785
1786 2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1787
1788         * c-common.c (const_strip_array_types): Delete.
1789         * c-common.h (const_strip_array_types): Likewise.
1790         * emit-rtl.c (const_next_insn, const_previous_insn,
1791         const_next_nonnote_insn, const_prev_nonnote_insn,
1792         const_next_real_insn, const_prev_real_insn,
1793         const_next_active_insn, const_prev_active_insn, const_next_label,
1794         const_prev_label): Delete.
1795         * gimple-low.c (block_may_fallthru): Use expr_last.
1796         * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
1797         * rtl.h (const_previous_insn, const_next_insn,
1798         const_prev_nonnote_insn, const_next_nonnote_insn,
1799         const_prev_real_insn, const_next_real_insn,
1800         const_prev_active_insn, const_next_active_insn, const_prev_label,
1801         const_next_label): Delete.
1802         * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
1803         * system.h (CONST_CAST): Update comment.
1804         * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
1805         (const_first_stmt, const_last_stmt): Delete.
1806         (tree_block_ends_with_condjump_p): Use last_stmt.
1807         * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
1808         * tree-iterator.c (const_expr_first, const_expr_last,
1809         const_expr_only): Delete.
1810         * tree.c (const_lookup_attribute): Likewise.
1811         (attribute_list_contained): Use lookup_attribute.
1812         * tree.h (const_lookup_attribute, const_expr_first,
1813         const_expr_last, const_expr_only): Delete.
1814
1815 2007-09-01  Richard Guenther  <rguenther@suse.de>
1816
1817         * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
1818         instead of TREE_THIS_VOLATILE.
1819         * tree-ssa-operands.c (add_virtual_operand): Do not set
1820         has_volatile_ops.  Do not check s_ann for NULL.
1821         (get_indirect_ref_operands): Likewise.
1822         (get_expr_operands): Likewise.  For all reference trees
1823         set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
1824         check base of reference for TREE_THIS_VOLATILE.
1825
1826 2007-09-01  Richard Guenther  <rguenther@suse.de>
1827
1828         * tree-cfg.c (verify_gimple_expr): Fix check for conversions
1829         between integral types.  Also allow conversions between
1830         pointer types.
1831
1832 2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1833
1834         * optabs.c (prepare_float_lib_cmp): Use
1835         libgcc_cmp_return_mode instead of word_mode.
1836         * config/dfp-bit.h: Likewise.
1837         * config/fp-bit.h: Likewise.
1838         * config/spu/spu.c (spu_libgcc_cmp_return_mode):
1839         New function.
1840         (spu_libgcc_shift_count_mode): New function.
1841         (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
1842         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
1843
1844 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
1845
1846         * tree-pretty-print.c: Include output.h.
1847         (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
1848         HOST_WIDE_INT_PRINT_DEC.
1849         * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
1850
1851 2007-08-31  Zdenek Dvorak  <ook@ucw.cz>
1852
1853         PR rtl-optimization/33224
1854         * loop-iv.c (latch_dominating_def): Check that the definition belongs
1855         to the analysed region.
1856
1857 2007-08-31  Richard Guenther  <rguenther@suse.de>
1858
1859         * function.c (allocate_struct_function): Do not set
1860         current_function_returns_pointer.
1861         * function.h (struct var_refs_queue): Remove.
1862         (struct simple_obstack_stack): Likewise.
1863         (struct function): Remove fixup_var_refs_queue member.
1864         Remove returns_pointer flag.
1865         (current_function_returns_pointer): Remove define.
1866
1867 2007-08-31  Nick Clifton  <nickc@redhat.com>
1868
1869         * tree-ssa-coalesce.c (compare_pairs): Use the elements as
1870         secondary keys in order to obtain a stable sort.
1871
1872 2007-08-31  Nick Clifton  <nickc@redhat.com>
1873
1874         PR target/33132
1875         * config/m32r/constraints.md: Add W constraint for integer zero.
1876         * config/m32r/m32r.md (get_pc): Use W and i constraints.
1877         Fix length calculation by using alternatives.
1878
1879 2007-08-31  Richard Sandiford  <richard@codesourcery.com>
1880
1881         * optabs.c (shift_optab_p, commutative_optab_p): New functions,
1882         split out from expand_binop.
1883         (avoid_expensive_constant): New function.
1884         (expand_binop_directly): Remove commutative_op argument and
1885         (expand_binop_directly): Remove commutative_op argument and
1886         call cummutative_optab_p instead.  Do not change op0 or op1
1887         when swapping xop0 and xop1.  Apply avoid_expensive_constant
1888         to each argument after potential swapping.  Enforce the
1889         canonical order of commutative operands.
1890         (expand_binop): Use shift_optab_p and commutative_optab_p.
1891         Update the calls to expand_binop_directly.  Only force constants
1892         into registers when widening an operation.  Only swap operands
1893         once a direct expansion has been rejected.
1894         (expand_twoval_binop): Only force constants into registers when
1895         using a direct expansion.
1896
1897 2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>
1898
1899         * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
1900         (sched_analyze_insn): Don't postprocess speculative dependencies when
1901         target has no scheduling.
1902         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
1903         'uninitialized' warning.
1904
1905 2007-08-31  Richard Guenther  <rguenther@suse.de>
1906
1907         * tree.c (build_complex_type): Always set TYPE_NAME for
1908         comples types.
1909
1910 2007-08-31  Olivier Hainque  <hainque@adacore.com>
1911
1912         * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
1913         internal macro. Default alignment factor for csect directives, chosen
1914         to match what BIGGEST_ALIGNMENT allows.
1915         (DATA_SECTION_ASM_OP): Use it.
1916         * config/rs6000/rs6000.c
1917         (rs6000_xcoff_output_readonly_section_asm_op):
1918         Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
1919         (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
1920         
1921 2007-08-31  Olivier Hainque  <hainque@adacore.com>
1922
1923         * dbxout.c (dbxout_block): Move declaration within the first
1924         #if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
1925         block to include the definition, together with the associated
1926         helpers.
1927
1928 2007-08-31  David Edelsohn  <edelsohn@gnu.org>
1929             Revital Eres  <eres@il.ibm.com>
1930
1931         * doc/invoke.texi (-mpaired): Document flag.
1932         * config.gcc: Include paired.h in powerpc extra_headers and
1933         750cl.h in powerpc-*-linux*paired*.
1934         * config/rs6000/rs6000.opt (-mpaired): New flag.
1935         * config/rs6000/rs6000.c (paired_init_builtins,
1936         paired_expand_builtin, paired_expand_lv_builtin,
1937         paired_expand_stv_builtin, paired_expand_predicate_builtin):
1938         New functions to support the paired single builtin functions.
1939         (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
1940         (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
1941         single builtins.
1942         (bdesc_paired_preds): New structure for paired predicate
1943         instructions.
1944         (rs6000_expand_builtin): Expand paired single builtins.
1945         (rs6000_init_builtins): Init paired single builtins.
1946         (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
1947         Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
1948         and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
1949         v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
1950         (rs6000_vector_mode_supported_p): Support paired vector mode.
1951         * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
1952         PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
1953         New.
1954         (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
1955         (DATA_ALIGNMENT): Likewise.
1956         (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
1957         (rs6000_builtins): Add PAIRED builtins.
1958         * config/rs6000/rs6000.md: Include paired.md.
1959         * config/rs6000/paired.h: New.
1960         * config/rs6000/paired.md: New.
1961         * config/rs6000/750cl.h: New.
1962         * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
1963
1964 2007-08-30  Ollie Wild  <aaw@google.com>
1965
1966         * c-opts.c (c_common_handle_option): Support -fno-directives-only.
1967         * gcc.c (default_compilers): Add -fno-directives-only to
1968         @assembler-with-cpp.
1969
1970 2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
1971
1972         PR middle-end/33211
1973
1974         * regclass.c (initial_fixed_regs): Revert previous change and make
1975         it const again.
1976         (initial_call_used_regs): Likewise.
1977         (initial_call_really_used_regs): Delete, reverting previous addition.
1978         (initial_reg_names): Likewise.
1979         (init_reg_sets): Revert previous change.
1980         (saved_fixed_regs): New.
1981         (saved_call_used_regs): New.
1982         (saved_call_really_used_regs): New.
1983         (saved_reg_names): New.
1984         (save_register_info): New.
1985         (restore_register_info): New.
1986         (init_reg_sets_1): Replace reset of register info with call to
1987         restore_register_info.
1988         * rtl.h (save_register_info): Declare.
1989         * toplev.c (backend_init): Call save_register_info.
1990
1991 2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1992
1993         * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
1994         from the original statement.
1995
1996 2007-08-30  Chao-ying Fu  <fu@mips.com>
1997
1998         * c-lex.c (interpret_fixed): Declare.
1999         (interpret_float): Process _Fract and _Accum.
2000         (interpret_fixed): New function.
2001         * final.c (output_addr_const): Process CONST_FIXED.
2002         * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
2003         (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
2004         SS_DIV, US_DIV.
2005         (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
2006         US_DIV, US_ASHIFT.
2007         (simplify_immed_subreg): Support CONST_FIXED.
2008         Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
2009         (simplify_subreg): Support CONST_FIXED.
2010
2011 2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2012
2013         * config/rs6000/ppu_intrinsics.h: New file.
2014         * config.gcc (powerpc*-*-* <extra_headers>): Install
2015         ppu_intrinsics.h.
2016
2017 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2018
2019         * cfg.c (dump_flow_info): Change to also print entry and exit
2020         block info.
2021         * print-rtl.c (print_rtl_single): Allow to print rtl with
2022         -fdump-unnumbered.
2023         
2024 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2025
2026         * df-core.h (df_dump_region): New function.
2027         * df.h (df_dump_region): New function.
2028         * loop-invariant.c (find_defs): Add call to df_dump_region.
2029         * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
2030         df_dump_region.
2031         
2032 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR target/33168
2035         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
2036         true if any of the compare_section_name calls returned true,
2037         rather than if any returned false.
2038
2039 2007-08-30  Richard Guenther  <rguenther@suse.de>
2040
2041         PR tree-optimization/33199
2042         * tree-ssa-structalias.c (handle_lhs_call): New function.
2043         (find_func_aliases): In non-IPA mode make sure that for
2044         calls that return a pointer we add a constraint for the
2045         result to point to anything.
2046
2047 2007-08-30  Richard Guenther  <rguenther@suse.de>
2048
2049         * doc/invoke.texi (-mveclibabi): Document new target option.
2050         * config/i386/i386.opt (-mveclibabi): New target option.
2051         * config/i386/i386.c (ix86_veclib_handler): Handler for
2052         vectorization library support.
2053         (override_options): Handle the -mveclibabi option, initialize
2054         the vectorization library handler.
2055         (ix86_builtin_vectorized_function): As fallback call the
2056         vectorization library handler, if set.
2057         (ix86_veclibabi_acml): New static function for ACML ABI style
2058         vectorization support.
2059
2060 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
2061
2062         * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
2063         used_m, even if it is 32-bit aligned, adjust used_m MEM to have
2064         SImode and update m.  Don't run gen_lowpart_common on arbitrary
2065         memory address, force it to register first.
2066
2067         PR middle-end/32758
2068         * dce.c (dce_process_block): Don't delete setters of
2069         artificially used registers.
2070
2071 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2072
2073         * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
2074         "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
2075         "*add<mode>3_alc_carry2_cconly"): New insn definitions.
2076
2077 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2078
2079         * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
2080         pattern.
2081         * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
2082         "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
2083
2084 2007-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2085
2086         * system.h: Activate -Wcast-qual as warning-only.
2087
2088 2007-08-29  Paolo Bonzini  <bonzini@gnu.org>
2089
2090         PR target/33168
2091         * config/rs6000/rs6000.c (compare_section_name): New function.
2092         (rs6000_elf_in_small_data_p): Compare section prefixes instead
2093         of full name.
2094
2095 2007-08-29  Olivier Hainque  <hainque@adacore.com>
2096
2097         * xcoffout.c: #include debug.h.
2098         * Makefile.in (xcoffout.o): Add debug.h dependency.
2099
2100 2007-08-29  Uros Bizjak  <ubizjak@gmail.com>
2101
2102         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
2103         Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
2104
2105 2007-08-29  Richard Guenther  <rguenther@suse.de>
2106
2107         * tree-pretty-print.c (dump_generic_node): Print
2108         label DECL_UID as D.%u.
2109         * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
2110
2111 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2112
2113         * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
2114         * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
2115
2116 2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>
2117
2118         PR c++/33194
2119         * tree.c (build_type_attribute_qual_variant): Set canonical types
2120         on the final, unqualified attribute variant before building the
2121         qualified version.
2122
2123 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
2124
2125         * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
2126         order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
2127
2128 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
2129
2130         Revert
2131         2007-08-29  Jie Zhang  <jie.zhang@analog.com>
2132         * config/bfin/bfin.md (composev2hi): Put operands into vector
2133         with correct order.
2134
2135 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
2136
2137         * config/bfin/bfin.md (composev2hi): Put operands into vector
2138         with correct order.
2139
2140 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
2141
2142         * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
2143         attribute when appropriate.
2144         (bfin_handle_l1_text_attribute): New.
2145         (bfin_handle_l1_data_attribute): New.
2146         (bfin_attribute_table): Add attributes: l1_text, l1_data,
2147         l1_data_A and l1_data_B.
2148         * doc/extend.texi (node Function Attributes): Document l1_text
2149         function attribute.
2150         (Variable Attributes): Add Blackfin subsection. Document l1_data,
2151         l1_data_A and l1_data_B variable attributes.
2152
2153 2007-08-28  Jie Zhang  <jie.zhang@analog.com>
2154
2155         * config/bfin/bfin.opt (minline-plt): Add.
2156         * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
2157         call to global functions.
2158         * doc/invoke.texi (Option Summary): Mention -minline-plt.
2159         (Blackfin Options): Document -minline-plt.
2160
2161 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
2162
2163         * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
2164         given a non-function.
2165         (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
2166
2167 2007-08-28  DJ Delorie  <dj@redhat.com>
2168
2169         * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
2170
2171 2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2172
2173         * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
2174
2175 2007-08-28  Richard Guenther  <rguenther@suse.de>
2176
2177         * tree.h (struct tree_function_decl): Increase size of
2178         function_code bitfield.
2179
2180 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
2181             Kazu Hirata  <kazu@codesourcery.com>
2182
2183         * gcc/config/m68k/linux.h
2184         (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
2185         * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
2186         (m68k_return_in_memory): New.
2187         * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
2188         New.
2189
2190 2007-08-28  Uros Bizjak  <ubizjak@gmail.com>
2191
2192         PR target/32661
2193         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
2194         Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
2195         operand) when top VEC_SELECT extracts scalar element.
2196         * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
2197         (*vec_extract_v4sf_mem): Ditto.
2198
2199 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
2200
2201         PR middle-end/32370
2202         * passes.c (init_optimization_passes): Move pass_df_finish
2203         after pass_postreload sublist.
2204
2205         PR rtl-optimization/33148
2206         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
2207         (neg (lt X 0)) if X has scalar int mode.
2208
2209         PR debug/32914
2210         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
2211         initializer, use build_vector_from_ctor if possible to create
2212         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
2213         even after this, return NULL.
2214
2215 2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2216
2217         * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
2218
2219 2007-08-28  Richard Guenther  <rguenther@suse.de>
2220
2221         * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
2222         (struct tree_function_decl): Make function_code a bitfield.
2223         Add disregard_inline_limits flag.
2224         * cgraphunit.c (cgraph_process_new_functions): Check
2225         DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
2226         (cgraph_preserve_function_body_p): Likewise.
2227         * ipa-inline.c (compute_inline_parameters): Likewise.
2228         * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
2229         for GNU C extern inline functions.
2230         (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
2231         * tree-inline.c (disregard_inline_limits_p): Remove.
2232         * tree-inline.h (disregard_inline_limits_p): Likewise.
2233         * c-common.c (handle_always_inline_attribute): Set
2234         DECL_DISREGARD_INLINE_LIMITS.
2235         * langhooks.c (add_builtin_function): Verify the function code
2236         fits in the bitfield.
2237
2238 2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
2239             Vladimir Yanovsky  <yanov@il.ibm.com>
2240             Revital Eres  <eres@il.ibm.com>
2241             Andrey Belevantsev  <abel@ispras.ru>
2242
2243         * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
2244         is set.
2245         * modulo-sched.c: Add documentation regarding do-loop.
2246         (doloop_register_get): Change number of arguments to support
2247         the new do-loop pattern and check whether COUNT_REG has no other
2248         occurences in the loop besides in the control part.
2249         (duplicate_insns_of_cycles): Do not duplicate the insn which
2250         changes count_reg as it is already adjusted.
2251         (generate_prolog_epilog): New argument to support the new
2252         do-loop pattern.  Change the subtract instruction to use
2253         expand_simple_binop.  Call duplicate_insns_of_cycles with new
2254         argument.
2255         (sms_schedule): Call doloop_register_get and
2256         generate_prolog_epilog with new argument.  Do not handle loops
2257         with single sets insns with subreg in their lhs.
2258         * loop-doloop.c (doloop_optimize): Support for another do-loop
2259         pattern.
2260         (doloop_condition_get): Gets an instruction instead of a pattern
2261         and change the return condition when the do-loop pattern is
2262         not parallel.
2263         * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
2264         deps when considering to not create edges.
2265
2266 2007-08-27  Alexandre Oliva  <aoliva@redhat.com>
2267
2268         * doc/extend.texi (gnu_inline funtion attribute): Document C++
2269         behavior.
2270
2271 2007-08-27  Jason Merrill  <jason@redhat.com>
2272
2273         PR c++/31337
2274         * gimplify.c (gimplify_modify_expr): Discard the assignment of 
2275         zero-sized types after calling gimplify_modify_expr_rhs.
2276
2277 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
2278
2279         * regclass.c (init_reg_autoinc): Fix typo.
2280
2281 2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
2282         
2283         Fix PR tree-optimization/33173
2284         * tree-ssa-alias.c (find_used_portions): Fix reversed test.
2285
2286 2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>
2287
2288         PR target/31385
2289         * config/i386/i386.h (VALID_DFP_MODE_P): New.
2290         * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
2291         GPR.
2292
2293 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
2294             David Ung  <davidu@mips.com>
2295             Nigel Stephens <nigel@mips.com>
2296
2297         Separate target-specific initialization from general
2298         back-end initialization.
2299
2300         * toplev.c (init_alignments): New, split out from...
2301         (process_options): ...here.
2302         (backend_init_target): New, split out from...
2303         (backend_init): ...here.
2304         (lang_dependent_init_target): New, split out from...
2305         (lang_dependent_init): ...here.
2306         (target_reinit): New.
2307         * toplev.h (target_reinit): Declare.
2308         * expr.c (init_expr_target): Renamed from init_expr_once, since it
2309         now can be called more than once.  Update comments.
2310         * expr.h (init_expr_target): Likewise.
2311         * alias.c (init_alias_target): Renamed from init_alias_once, since it
2312         now can be called more than once.  Explicitly zero
2313         static_reg_base_value.
2314         * emit-rtl.c (init_emit_regs): New, split out from...
2315         (init_emit_once): Here.
2316         * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
2317         non-const, so that changes from command-line arguments can overwrite
2318         values provided by the static initializers.
2319         (initial_call_really_used_regs): New, used similarly to the above.
2320         (initial_reg_names): Likewise.
2321         (last_mode_for_init_move_cost): Promoted function-local static to
2322         file-scope static to make it accessible outside init_move_cost.
2323         (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
2324         Do not initialize inv_reg_alloc_order yet, either.  Do initialize
2325         reg_names since it is needed for parsing command-line options.
2326         (init_move_cost): Use last_mode_for_init_move_cost instead of
2327         function-local static.
2328         (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
2329         call_really_used_regs now.  Reinitialize reg_names.  Also
2330         initialize inv_reg_alloc_order.  Zero reg_class_subunion and
2331         reg_class_superunion.  Clear losing_caller_save_reg_set.
2332         Preserve global registers if called more than once.  Reset
2333         move cost, may_move_in_cost, may_move_out_cost, and
2334         last_mode_for_init_move_cost.
2335         (init_reg_modes_target): Renamed from init_reg_modes_once, since it
2336         can now be invoked more than once.  Update comments.
2337         (init_regs): Update comments.
2338         (fix_register): Update initial_fixed_regs, initial_call_used_regs,
2339         and initial_call_really_used_regs, instead of the non-initial 
2340         variables.  This allows us to save the command-line register settings
2341         after target reinitialization.
2342         (init_reg_autoinc): Zero forbidden_inc_dec_classes.
2343         * rtl.h (init_emit_regs): Declare.
2344         (init_reg_modes_target, init_alias_target): Renamed as described
2345         above.
2346         * reload1.c (init_reload): Update comments.
2347         * optabs.c (init_optabs): Likewise.
2348         * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
2349         
2350 2007-08-26  Chao-ying Fu  <fu@mips.com>
2351
2352         * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
2353         __typeof().
2354
2355 2007-08-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2356
2357         * alias.c (memory_modified_1, memory_modified_in_insn_p):
2358         Constify.
2359         * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
2360         Likewise.
2361         * bb-reorder.c (copy_bb_p): Likewise.
2362         * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
2363         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
2364         block_ends_with_condjump_p): Likewise.
2365         * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
2366         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
2367         block_ends_with_condjump_p): Likewise.
2368         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
2369         * cfgrtl.c (can_delete_note_p, can_delete_label_p,
2370         rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
2371         rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
2372         need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
2373         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
2374         debug_true_const_tree instad of debug_true_tree.
2375         * debug.c (do_nothing_debug_hooks): Likewise.
2376         * debug.h (ignore_block, debug_true_const_tree): Constify.
2377         * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
2378         dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
2379         decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
2380         same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
2381         dbx_reg_number, is_based_loc, field_type,
2382         simple_type_align_in_bits, simple_decl_align_in_bits,
2383         simple_type_size_in_bits, field_byte_offset, insert_float,
2384         type_tag, member_declared_type, is_redundant_typedef,
2385         secname_for_decl, is_inlined_entry_point): Likewise.
2386         * emit-rtl.c (const_next_insn, const_previous_insn,
2387         const_next_nonnote_insn, const_prev_nonnote_insn,
2388         const_next_real_insn, const_prev_real_insn,
2389         const_next_active_insn, const_prev_active_insn, const_next_label,
2390         const_prev_label): Likewise.
2391         * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
2392         Likewise.
2393         * haifa-sched.c (may_trap_exp, haifa_classify_insn,
2394         find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
2395         sched_insn_is_legitimate_for_speculation_p): Likewise.
2396         * jump.c (reversed_comparison_code_parts,
2397         reversed_comparison_code, reversed_comparison, condjump_label):
2398         Likewise.
2399         * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
2400         * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
2401         Likewise.
2402         * rtl.h (const_previous_insn, const_next_insn,
2403         const_prev_nonnote_insn, const_next_nonnote_insn,
2404         const_prev_real_insn, const_next_real_insn,
2405         const_prev_active_insn, const_next_active_insn, const_prev_label,
2406         const_next_label, modified_between_p, modified_in_p,
2407         const_note_storeskeep_with_call_p, condjump_label,
2408         reversed_comparison, reversed_comparison_code,
2409         reversed_comparison_code_parts, memory_modified_in_insn_p,
2410         stack_regs_mentioned): Likewise.
2411         * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
2412         keep_with_call_p): Likewise.
2413         * sched-deps.c (deps_may_trap_p, sched_get_condition,
2414         conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
2415         sd_lists_size, sd_lists_empty_p): Likewise.
2416         * sched-int.h (sched_insns_conditions_mutex_p,
2417         haifa_classify_insn, no_real_insns_p,
2418         sched_insn_is_legitimate_for_speculation_p, sd_next_list,
2419         sd_lists_size, sd_lists_empty_p): Likewise.
2420         * sdbout.c (sdb_debug_hooks): Likewise.
2421         * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
2422         stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
2423         -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
2424         Likewise.
2425         * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
2426         tree_can_throw_internal): Likewise.
2427         * tree-flow-inline.h (phi_nodes): Likewise.
2428         * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
2429         tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
2430         * tree-gimple.c (const_get_call_expr_in): Likewise.
2431         * tree-gimple.h (const_get_call_expr_in): Likewise.
2432         * tree.c (const_lookup_attribute, attribute_list_equal,
2433         attribute_list_contained): Likewise.
2434         * tree.h (attribute_list_equal, attribute_list_contained,
2435         const_lookup_attribute): Likewise.
2436         * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
2437
2438 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
2439
2440         * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
2441         tree-ssa-pre.c: Remove unnecessary trailing whitespace.
2442
2443 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
2444
2445         PR target/32991
2446         * config/alpha/constraints.md: Delete "svn:mime-type" property
2447         with svn propdel "svn:mime-type".
2448
2449 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
2450
2451         PR middle-end/33181
2452         * ifcvt.c (noce_get_alt_condition): Make sure that the previous
2453         non NOTE insn doesn't cross basic block.
2454         (noce_try_abs): Likewise.
2455         (noce_process_if_block): Likewise.
2456
2457 2007-08-26  David Edelsohn  <edelsohn@gnu.org>
2458
2459         PR target/33151
2460         * config/rs6000/predicates.md (offsettable_mem_operand): Memory
2461         operand without auto-inc-dec.
2462         * config/rs6000/rs6000.md (floatsidf2_internal): Use
2463         offsettable_mem_operand.
2464         (floatunssidf2_internal): Same.
2465         (fix_truncdfsi2_internal): Same.
2466         (floatsidf_ppc64): Same.
2467         (floatunssidf_ppc64): Same.
2468         (fix_trunctfsi2_internal): Same.
2469
2470 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
2471
2472         PR bootstrap/30620
2473         * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
2474         pass defines needed for version.c.
2475
2476 2007-08-25  Joseph Myers  <joseph@codesourcery.com>
2477
2478         * configure.ac (--debug-prefix-map check): Change assembler
2479         version presumed to have feature to 2.18.
2480         * configure: Regenerate.
2481
2482 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2483
2484         * c-common.c (vector_types_convertible_p,
2485         decl_with_nonnull_addr_p, c_promoting_integer_type_p,
2486         self_promoting_args_p): Constify.
2487         * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
2488         c_promoting_integer_type_p, self_promoting_args_p,
2489         anon_aggr_type_p, vector_types_convertible_p): Likewise.
2490         * c-decl.c (anon_aggr_type_p): Likewise.
2491         * * c-dump.c (dump_stmt): Likewise.
2492         * c-objc-common.c (has_c_linkage): Likewise.
2493         * c-tree.h (same_translation_unit_p): Likewise.
2494         * c-typeck.c (null_pointer_constant_p,
2495         tagged_types_tu_compatible_p, function_types_compatible_p,
2496         type_lists_compatible_p, lvalue_or_else, lvalue_p,
2497         comptypes_internal, struct tagged_tu_seen_cache,
2498         same_translation_unit_p, alloc_tagged_tu_seen_cache,
2499         c_size_in_bytes): Likewise.
2500         * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
2501         hash_ptr, eq_ptr): Likewise.
2502         * langhooks-def.h (lhd_decl_ok_for_sibcall,
2503         LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
2504         * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
2505         * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
2506         Likewise.
2507         * optabs.c (optab_for_tree_code): Likewise.
2508         * optabs.h (optab_for_tree_code): Likewise.
2509         * rtl.h (simplify_rtx): Likewise.
2510         * simplify-rtx.c (simplify_rtx): Likewise.
2511         * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
2512         dump_flag, dump_node): Likewise.
2513         * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
2514         queue_and_dump_type, dump_flag): Likewise.
2515         * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
2516         * tree-pass.h (dump_node): Likewise.
2517         * tree-vectorizer.c (vect_can_force_dr_alignment_p,
2518         supportable_narrowing_operation): Likewise.
2519         * tree-vectorizer.h (vect_can_force_dr_alignment_p,
2520         supportable_narrowing_operation): Likewise.
2521         * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
2522         is_negative_overflow_infinity, is_positive_overflow_infinity,
2523         is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
2524         nonnull_arg_p, get_value_range, vrp_operand_equal_p,
2525         update_value_range, add_equivalence, ssa_name_nonnegative_p,
2526         ssa_name_nonzero_p, fp_predicate): Likewise.
2527         * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
2528         * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
2529         ssa_name_nonnegative_p): Likewise.
2530
2531 2007-08-25  Hans Kester  <hans.kester@ellips.nl>
2532
2533         * config.gcc : Add x86_64-elf target.
2534
2535 2007-08-25  Jakub Jelinek  <jakub@redhat.com>
2536
2537         * expr.c (store_expr): Fix order of store_by_pieces arguments.
2538
2539 2007-08-24  Sandra Loosemore  <sandra@codesourcery.com>
2540             Nigel Stephens <nigel@mips.com>
2541
2542         PR target/11787
2543
2544         * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
2545         (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
2546         * expr.c (SET_BY_PIECES_P): Define.
2547         (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
2548         it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
2549         (store_expr): Pass MEMSETP argument to can_store_by_pieces and
2550         store_by_pieces.
2551         * expr.h (SET_RATIO): Define.
2552         (can_store_by_pieces, store_by_pieces): Update prototypes.
2553         * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
2554         can_store_by_pieces/store_by_pieces.
2555         (expand_builtin_memcpy_args): Likewise.
2556         (expand_builtin_strncpy): Likewise.
2557         (expand_builtin_memset_args): Likewise.  Also remove special case
2558         for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
2559         decide what to do instead.
2560         * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
2561         to can_store_by_pieces.
2562
2563         * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
2564         * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
2565
2566         * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
2567         * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
2568         * config/mips/mips.h (MIPS_CALL_RATIO): Define.
2569         (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
2570         (STORE_BY_PIECES_P): Define.
2571
2572 2007-08-24  Tom Tromey  <tromey@redhat.com>
2573
2574         * varpool.c (varpool_last_needed_node): Fix comment typo.
2575         * c-decl.c (duplicate_decls): Fix comment typo.
2576         (clone_underlying_type): Update comment.
2577
2578 2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2579
2580         * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
2581         alpha_in_small_data_p, alpha_split_complex_arg,
2582         alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2583         Constify.
2584         * config/arm/arm-protos.h (arm_mangle_type): Likewise.
2585         * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
2586         Likewise.
2587         * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
2588         TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2589         * config/darwin-protos.h (darwin_binds_local_p): Likewise.
2590         * config/darwin.c (darwin_binds_local_p): Likewise.
2591         * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
2592         Likewise.
2593         * config/i386/i386-protos.h (i386_pe_binds_local_p,
2594         i386_pe_valid_dllimport_attribute_p): Likewise.
2595         * config/i386/i386.c (ix86_function_regparm,
2596         ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
2597         x86_can_output_mi_thunk, ix86_mangle_type,
2598         TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2599         * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
2600         i386_pe_binds_local_p): Likewise.
2601         * config/ia64/ia64.c
2602         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2603         ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
2604         ia64_invalid_conversion, ia64_invalid_unary_op,
2605         ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2606         Likewise.
2607         * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
2608         * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
2609         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2610         * config/mips/mips.c (mips_use_blocks_for_constant_p,
2611         mips_in_small_data_p, mips_use_anchors_for_symbol_p,
2612         mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2613         mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
2614         mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
2615         * config/pa/pa.c (pa_commutative_p): Likewise.
2616         * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
2617         Likewise.
2618         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
2619         rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
2620         rs6000_use_blocks_for_constant_p,
2621         rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
2622         invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2623         TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
2624         * config/s390/s390.c (s390_mangle_type,
2625         TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
2626         Likewise.
2627         * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2628         th_in_small_data_p): Likewise.
2629         * config/sh/sh.c (sh_ms_bitfield_layout_p,
2630         sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2631         Likewise.
2632         * config/sparc/sparc.c (sparc_can_output_mi_thunk,
2633         sparc_mangle_type): Likewise.
2634         * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
2635         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
2636         * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
2637         Likewise.
2638         * hooks.c (hook_bool_mode_const_rtx_false,
2639         hook_bool_mode_const_rtx_true,
2640         hook_bool_const_tree_hwi_hwi_const_tree_false,
2641         hook_bool_const_tree_hwi_hwi_const_tree_true,
2642         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2643         hook_constcharptr_const_tree_null,
2644         hook_constcharptr_const_rtx_null,
2645         hook_constcharptr_const_tree_const_tree_null,
2646         hook_constcharptr_int_const_tree_null,
2647         hook_constcharptr_int_const_tree_const_tree_null): New.
2648         (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2649         hook_bool_tree_hwi_hwi_tree_false,
2650         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2651         hook_int_tree_tree_1, hook_constcharptr_tree_null,
2652         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2653         hook_constcharptr_int_tree_null,
2654         hook_constcharptr_int_tree_tree_null): Delete.
2655         (default_can_output_mi_thunk_no_vcall): Constify.
2656         * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2657         hook_bool_tree_hwi_hwi_tree_false,
2658         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2659         hook_int_tree_tree_1, hook_constcharptr_tree_null,
2660         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2661         hook_constcharptr_int_tree_null,
2662         hook_constcharptr_int_tree_tree_null): Delete.
2663         (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
2664         hook_bool_const_tree_hwi_hwi_const_tree_false,
2665         hook_bool_const_tree_hwi_hwi_const_tree_true,
2666         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2667         hook_constcharptr_const_tree_null,
2668         hook_constcharptr_const_rtx_null,
2669         hook_constcharptr_const_tree_const_tree_null,
2670         hook_constcharptr_int_const_tree_null,
2671         hook_constcharptr_int_const_tree_const_tree_null): New.
2672         (default_can_output_mi_thunk_no_vcall): Constify.
2673         * integrate.c (function_attribute_inlinable_p): Likewise.
2674         * integrate.h (function_attribute_inlinable_p): Likewise.
2675         * jump.c (rtx_renumbered_equal_p): Likewise.
2676         * output.h (decl_readonly_section, categorize_decl_for_section,
2677         default_use_anchors_for_symbol_p, default_binds_local_p,
2678         default_binds_local_p_1): Likewise.
2679         * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
2680         Likewise.
2681         * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2682         TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
2683         TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
2684         TARGET_COMP_TYPE_ATTRIBUTES,
2685         TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
2686         TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
2687         TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
2688         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
2689         TARGET_DWARF_CALLING_CONVENTION): Likewise.
2690         * target.h (can_output_mi_thunk, needs_block_p,
2691         first_cycle_multipass_dfa_lookahead_guard_spec,
2692         vector_alignment_reachable, comp_type_attributes,
2693         function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
2694         commutative_p, use_blocks_for_constant_p,
2695         use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
2696         vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
2697         invalid_within_doloop, valid_dllimport_attribute_p,
2698         split_complex_arg, invalid_arg_for_unprototyped_fn,
2699         invalid_conversion, invalid_unary_op, invalid_binary_op):
2700         Likewise.
2701         * targhooks.c (default_invalid_within_doloop,
2702         hook_invalid_arg_for_unprototyped_fn,
2703         default_builtin_vector_alignment_reachable): Likewise.
2704         (hook_bool_rtx_commutative_p): Delete.
2705         (hook_bool_const_rtx_commutative_p): New.
2706         * targhooks.h (default_invalid_within_doloop,
2707         default_builtin_vector_alignment_reachable,
2708         hook_invalid_arg_for_unprototyped_fn): Constify.
2709         (hook_bool_rtx_commutative_p): Delete.
2710         (hook_bool_const_rtx_commutative_p): New.
2711         * varasm.c (bss_initializer_p, decl_default_tls_model,
2712         categorize_decl_for_section, decl_readonly_section,
2713         default_use_anchors_for_symbol_p, default_binds_local_p,
2714         default_binds_local_p_1): Constify.
2715
2716 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2717
2718         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2719         __NO_BUILTIN if -fno-builtin.
2720
2721 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2722
2723         * config/bfin/bfin.c (print_operand): Report error instead of
2724         ICE for wrong operand.
2725
2726 2007-08-24  Michael Matz  <matz@suse.de>
2727
2728         * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
2729
2730 2007-08-24  Richard Guenther  <rguenther@suse.de>
2731
2732         PR middle-end/33166
2733         * tree-ssa.c (useless_type_conversion_p): Split into a
2734         recursive and a non-recursive part.
2735         (useless_type_conversion_p_1): New function.
2736         * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
2737         from maybe_fold_offset_to_reference is trivially convertible
2738         to the desired type before doing the simplification.
2739
2740 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
2741
2742         * expr.c (store_expr): Optimize initialization of an array
2743         with STRING_CST.
2744         * expr.h (builtin_strncpy_read_str): New prototype.
2745         * builtins.c (builtin_strncpy_read_str): Remove prototype.
2746         No longer static.
2747
2748 2007-08-24  Uros Bizjak  <ubizjak@gmail.com>
2749
2750         PR middle-end/33157
2751         * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
2752         field when initializing if_info structure.
2753
2754 2007-08-24  Richard Guenther  <rguenther@suse.de>
2755
2756         * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
2757         dependencies.
2758         * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
2759         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
2760         * tree-inline.c (inlinable_function_p): Fold in common parts of
2761         the cannot_inline_tree_fn langhook.
2762         * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
2763         (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
2764         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2765         cannot_inline_tree_fn langhook.
2766         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2767         cannot_inline_tree_fn member.
2768
2769 2007-08-24  Richard Guenther  <rguenther@suse.de>
2770
2771         * expr.c (get_inner_reference): Do computation of bitoffset
2772         from offset in a way we can detect overflow reliably.
2773
2774 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2775
2776         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
2777
2778 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2779
2780         * config/bfin/bfin.opt (mfast-fp): Add.
2781         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
2782         libbffastfp override libgcc if -mfast-fp.
2783         * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
2784         * doc/invoke.texi (Option Summary): Mention -mfast-fp.
2785         (Blackfin Options): Document -mfast-fp.
2786
2787 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
2788
2789         PR tree-optimization/32573
2790         PR middle-end/32946
2791         * tree-data-ref.c (initialize_data_dependence_relation): Clear
2792         DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
2793         (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
2794         (build_classic_dist_vector): Return false rather than true if
2795         DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
2796         if either subscript_dependence_tester_1 or build_classic_dist_vector_1
2797         returned false.  Don't call save_dist_v before calling
2798         build_classic_dist_vector_1.
2799         (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
2800         with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
2801         DDR_DIR_VECTS vectors.
2802
2803 2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>
2804
2805         * configure.ac (leb128): Modify sed statement to work with any
2806         binutils version string.
2807         * configure: Regenerate
2808
2809 2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2810
2811         * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
2812         Wrap in RTX_CODE macro guard.
2813         * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
2814         arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
2815         arm_mark_dllimport, arm_pe_encode_section_info,
2816         arm_pe_unique_section): Use ISO-C function declarations.
2817         * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
2818         c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
2819         c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
2820         Likewise.
2821         * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
2822         * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
2823         defining.
2824         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
2825         warnings.
2826         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
2827         * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
2828         (register_move_cost): Use ISO-C function declarations.
2829         * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
2830         * config/score/score-protos.h (score_declare_object): Add
2831         ATTRIBUTE_PRINTF_4.
2832         * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
2833         warnings.
2834         * final.c (profile_function): Avoid empty if-bodies.
2835         
2836         
2837         * calls.c (must_pass_in_stack_var_size,
2838         must_pass_in_stack_var_size_or_pad): Constify.
2839         * config/alpha/alpha-protos.h (function_value): Likewise.
2840         * config/alpha/alpha.c (alpha_return_in_memory,
2841         alpha_pass_by_reference, function_value,
2842         unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
2843         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2844         Likewise.
2845         * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
2846         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2847         TARGET_PROMOTE_PROTOTYPES): Likewise.
2848         * config/arm/arm-protos.h (arm_return_in_memory,
2849         arm_pad_arg_upward, arm_function_value): Likewise.
2850         * config/arm/arm.c (arm_pass_by_reference,
2851         arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
2852         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2853         arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
2854         Likewise.
2855         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
2856         * config/avr/avr-protos.h (avr_function_value): Likewise.
2857         * config/avr/avr.c (avr_return_in_memory,
2858         gas_output_limited_string, gas_output_ascii, avr_function_value,
2859         avr_return_in_memory): Likewise.
2860         * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
2861         * config/bfin/bfin.c (bfin_pass_by_reference,
2862         bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
2863         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
2864         Likewise.
2865         * config/cris/cris.c (cris_pass_by_reference,
2866         TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
2867         * config/crx/crx.c (crx_return_in_memory): Likewise.
2868         * config/darwin.c (function_base, machopic_function_base_name):
2869         Likewise.
2870         * config/fr30/fr30.c (fr30_must_pass_in_stack,
2871         TARGET_PROMOTE_PROTOTYPES): Likewise.
2872         * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
2873         * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
2874         * config/i386/i386-protos.h (ix86_return_in_memory,
2875         ix86_sol10_return_in_memory): Likewise.
2876         * config/i386/i386.c (ix86_function_value,
2877         ix86_function_sseregparm, ix86_must_pass_in_stack,
2878         type_natural_mode, classify_argument, examine_argument,
2879         construct_container, ix86_pass_by_reference, function_value_32,
2880         function_value_64, ix86_function_value_1, return_in_memory_32,
2881         return_in_memory_64, return_in_memory_ms_64,
2882         ix86_return_in_memory, ix86_sol10_return_in_memory,
2883         TARGET_PROMOTE_PROTOTYPES): Likewise.
2884         * config/ia64/ia64-protos.h (ia64_function_value,
2885         ia64_hpux_function_arg_padding): Likewise.
2886         * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
2887         ia64_function_value, bundle_state_hash, bundle_state_eq_p,
2888         ia64_hpux_function_arg_padding): Likewise.
2889         * config/iq2000/iq2000-protos.h (function_arg,
2890         iq2000_function_value): Likewise.
2891         * config/iq2000/iq2000.c (iq2000_return_in_memory,
2892         iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
2893         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2894         function_arg, iq2000_function_value): Likewise.
2895         * config/m32c/m32c-protos.h (m32c_function_value,
2896         m32c_promote_function_return): Likewise.
2897         * config/m32c/m32c.c (m32c_pass_by_reference,
2898         m32c_promote_prototypes, m32c_promote_function_return,
2899         m32c_function_value): Likewise.
2900         * config/m32r/m32r.c (m32r_return_in_memory,
2901         m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2902         m32r_in_small_data_p): Likewise.
2903         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
2904         Likewise.
2905         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
2906         m68hc11_function_arg_padding): Likewise.
2907         * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
2908         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
2909         m68k_function_value): Likewise.
2910         * config/mcore/mcore-protos.h (mcore_num_arg_regs,
2911         mcore_function_value): Likewise.
2912         * config/mcore/mcore.c (handle_structs_in_regs,
2913         mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2914         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2915         mcore_num_arg_regs, mcore_function_value): Likewise.
2916         * config/mips/mips-protos.h (mips_pad_arg_upward,
2917         mips_function_value): Likewise.
2918         * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
2919         mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
2920         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2921         TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
2922         mips_function_value): Likewise.
2923         * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
2924         Likewise.
2925         * config/mmix/mmix.c (mmix_pass_by_reference,
2926         TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
2927         mmix_encode_section_info): Likewise.
2928         * config/mn10300/mn10300-protos.h (mn10300_function_value):
2929         Likewise.
2930         * config/mn10300/mn10300.c (mn10300_return_in_memory,
2931         mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2932         mn10300_function_value): Likewise.
2933         * config/mt/mt-protos.h (mt_function_value): Likewise.
2934         * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
2935         mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
2936         * config/pa/pa-protos.h (function_arg_padding, function_value,
2937         pa_return_in_memory): Likewise.
2938         * config/pa/pa.c (pa_pass_by_reference,
2939         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2940         function_arg_padding, function_value, pa_return_in_memory):
2941         Likewise.
2942         * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
2943         * config/rs6000/rs6000-protos.h (rs6000_function_value,
2944         function_arg_padding): Likewise.
2945         * config/rs6000/rs6000.c (rs6000_return_in_memory,
2946         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
2947         rs6000_pass_by_reference, rs6000_must_pass_in_stack,
2948         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2949         function_arg_padding, altivec_expand_dst_builtin,
2950         altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
2951         altivec_init_builtins, rs6000_common_init_builtins,
2952         rs6000_function_value): Likewise.
2953         * s390/s390-protos.h (s390_function_value): Likewise.
2954         * config/s390/s390.c (s390_function_arg_size,
2955         s390_pass_by_reference, s390_return_in_memory,
2956         s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2957         TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2958         * config/score/score-protos.h (score_function_value): Likewise.
2959         * config/score/score.c (score_arg_partial_bytes,
2960         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2961         TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
2962         score_pass_by_reference, score_add_offset, score_function_value):
2963         Likewise.
2964         * config/sh/sh-protos.h (sh_attr_renesas_p,
2965         sh_promote_prototypes): Likewise.
2966         * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
2967         sh_callee_copies, sh_promote_prototypes, shcompact_byref,
2968         sh_attr_renesas_p): Likewise.
2969         * config/sparc/sparc-protos.h (function_value,
2970         function_arg_padding): Likewise.
2971         * config/sparc/sparc.c (sparc_promote_prototypes,
2972         sparc_return_in_memory, sparc_pass_by_reference,
2973         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2974         function_arg_record_value_2, function_arg_record_value_1,
2975         function_arg_record_value, function_arg_record_value,
2976         function_arg_padding, function_value): Likewise.
2977         * config/spu/spu-protos.h (spu_function_value): Likewise.
2978         * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
2979         spu_function_value): Likewise.
2980         * config/stormy16/stormy16-protos.h (xstormy16_function_value):
2981         Likewise.
2982         * config/stormy16/stormy16.c (xstormy16_return_in_memory,
2983         xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2984         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2985         Likewise.
2986         * config/v850/v850.c (v850_return_in_memory,
2987         v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
2988         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
2989         * config/xtensa/xtensa.c (xtensa_return_in_msb,
2990         xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2991         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2992         Likewise.
2993         * explow.c (promote_mode, hard_function_value): Likewise.
2994         * expr.h (hard_function_value, promote_mode): Likewise.
2995         * function.c (aggregate_value_p): Likewise.
2996         * hooks.c (hook_bool_const_tree_true): New.
2997         * hooks.h (hook_bool_const_tree_true): New.
2998         * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
2999         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
3000         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
3001         TARGET_RETURN_IN_MSB): Likewise.
3002         * target.h (promote_function_args, promote_function_return,
3003         promote_prototypes, return_in_memory, return_in_msb,
3004         pass_by_reference, must_pass_in_stack, callee_copies,
3005         function_value): Likewise.
3006         * targhooks.c (default_return_in_memory,
3007         hook_pass_by_reference_must_pass_in_stack,
3008         hook_callee_copies_named,
3009         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
3010         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
3011         default_function_value): Likewise. 
3012         * targhooks.h (default_return_in_memory,
3013         hook_pass_by_reference_must_pass_in_stack,
3014         hook_callee_copies_named,
3015         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
3016         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
3017         default_function_value): Likewise.
3018         * tree-ssa-structalias.c (const_equiv_class_label_t): New.
3019         (equiv_class_label_hash, equiv_class_label_eq): Constify.
3020         * tree-vectorizer.c (bb_in_loop_p): Likewise.
3021         * tree.c (needs_to_live_in_memory): Likewise.
3022         * tree.h (struct tree_type, needs_to_live_in_memory,
3023         aggregate_value_p, must_pass_in_stack_var_size,
3024         must_pass_in_stack_var_size_or_pad): Likewise.
3025         * vmsdbgout.c (write_debug_addr, write_debug_delta4,
3026         write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
3027         lookup_filename): Likewise.
3028
3029 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
3030
3031         PR target/17390
3032         * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
3033         fake fcomi i387 instruction for !TARGET_CMOVE.
3034         (ix86_expand_branch): Expand natural sequence with one jump for
3035         all targets, not only TARGET_CMOVE.
3036         * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
3037         pattern to implement fake fcomi sequence.  Split instruction after
3038         reload to correct compare sequences.
3039         (*cmpfp_xf_cc): Ditto.
3040         (*cmpfp_<mode>_cc): Ditto.
3041         (*cmpfp_u_cc): Ditto.
3042         (*cmpfp_<mode>_cc): Ditto.
3043
3044 2007-08-23  Richard Guenther  <rguenther@suse.de>
3045
3046         * tree-pretty-print.c (dump_generic_node): Annotate
3047         GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
3048
3049 2007-08-23  Richard Guenther  <rguenther@suse.de>
3050
3051         * builtins.c (expand_builtin_mathfn): Wrap argument in
3052         save_expr directly instead of re-building the call.
3053         (expand_builtin_mathfn_2): Likewise.
3054         (expand_builtin_mathfn_3): Likewise.
3055         (expand_builtin_interclass_mathfn): Likewise.
3056         (expand_builtin_int_roundingfn): Set arg.
3057         (expand_builtin_int_roundingfn_2): Likewise.
3058
3059 2007-08-23  Paolo Bonzini  <bonzini@gnu.org>
3060
3061         * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
3062         *sse_nand<mode>3, *sse_xor<mode>3): New.
3063
3064 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
3065
3066         * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
3067         * config/i386/i386.c (print_operand): Handle ';' code.  Output
3068         semicolon for TARGET_MACHO.
3069         * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
3070         emit semicolon after 'lock' prefix.
3071         (sync_double_compare_and_swap<mode>): Ditto.
3072         (*sync_double_compare_and_swapdi_pic): Ditto.
3073         (*sync_compare_and_swap_cc<mode>): Ditto.
3074         (sync_double_compare_and_swap_cc<mode>): Ditto.
3075         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
3076         (sync_old_add<mode>): Ditto.
3077         (sync_add<mode>): Ditto.
3078         (sync_sub<mode>): Ditto.
3079         (sync_ior<mode>): Ditto.
3080         (sync_and<mode>): Ditto.
3081         (sync_xor<mode>): Ditto.
3082
3083 2007-08-22  Chao-ying Fu  <fu@mips.com>
3084
3085         * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
3086         in DEF_RTL_EXPR.
3087         (copy_rtx): Handle CONST_FIXED.
3088         (rtx_equal_p): Likewise.
3089         * rtl.h (fixed_value.h): New include.
3090         (rtx_def): Add a new field of fixed_value to u.
3091         (XCNMPFV): Define for accessing fixed_value.
3092         (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
3093         Define.
3094         * rtl.def (CONST_FIXED): New constant.
3095         (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
3096         UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
3097         US_ASHIFT): New codes.
3098         * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
3099         us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
3100         unsigned_fract_convert, unsigned_sat_fract): Document them.
3101         * varasm.c (assemble_integer): Extend to support fixed-point constants
3102         by using different machine classes.
3103         (decode_addr_const): Handle FIXED_CST.
3104         (const_hash_1): Likewise.
3105         (compare_constant): Likewise.
3106         (copy_constant): Likewise.
3107         (const_rtx_hash_1): Handle CONST_FIXED.
3108         (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3109         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
3110         MODE_VECTOR_UACCUM.
3111         (initializer_constant_valid_p): Handle FIXED_CST.
3112         (output_constant): Support FIXED_POINT_TYPE.
3113         * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
3114         * cse.c (hash_rtx): Support CONST_FIXED.
3115         (exp_equiv_p): Likewise.
3116         (cannon_reg): Likewise.
3117         (fold_rtx): Likewise.
3118         (equiv_constant): Likewise.
3119         (cse_process_notes_1): Likewise.
3120         (count_reg_usage): Likewise.
3121         * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
3122         (rtx_equal_for_cselib_p): Handle CONST_FIXED.
3123         (wrap_constant): Check CONST_FIXED.
3124         (cselib_hash_rtx): Support CONST_FIXED.
3125         (cselib_subst_to_values): Likewise.
3126         * df-scan.c (df_uses_record): Likewise.
3127         * gcse.c (want_to_gcse_p): Likewise.
3128         (oprs_unchanged_p): Likewise.
3129         (oprs_not_set_p): Likewise.
3130         (compute_transp): Likewise.
3131         (extract_mentioned_regs_helper): Likewise.
3132         * genemit.c (gen_exp): Likewise.
3133         * local-alloc.c (equiv_init_varies_p): Likewise.
3134         (contains_replace_regs): Likewise.
3135         (memref_referenced_p): Likewise.
3136         * loop-invariant.c (check_maybe_invariant): Likewise.
3137         (hash_invariant_expr_1): Likewise.
3138         (invariant_expr_equal_p): Likewise.
3139         * postreload-gcse.c (oprs_unchanged_p): Likewise.
3140         * regclass.c (reg_scan_mark_refs): Likewise.
3141         * regrename.c (scan_rtx): Likewise.
3142         * resource.c (mark_referenced_resources): Likewise.
3143         (mark_set_resources): Likewise.
3144         * rtlanal.c (rtx_unstable_p): Likewise.
3145         (rtx_varies_p): Likewise.
3146         (count_occurrences): Likewise.
3147         (reg_mentioned_p): Likewise.
3148         (modified_between_p): Likewise.
3149         (modified_in_p): Likewise.
3150         (volatile_insn_p): Likewise.
3151         (volatile_refs_p): Likewise.
3152         (side_effects_p): Likewise.
3153         (may_trap_p_1): Likewise.
3154         (inequality_comparisons_p): Likewise.
3155         (computed_jump_p_1): Likewise.
3156         (commutative_operand_precedence): Likewise.
3157         * sched-deps.c (sched_analyze_2): Likewise.
3158         * sched-vis.c (print_value): Likewise.
3159         * reload.c (operands_match_p): Likewise.
3160         (subst_reg_equivs): Likewise.
3161         * reload1.c (eliminate_regs_1): Likewise.
3162         (elimination_effects): Likewise.
3163         (scan_paradoxical_subregs): Likewise.
3164         * alias.c (rtx_equal_for_memref_p): Likewise.
3165         * Makefile.in (RTL_BASE_H): Add fixed-value.h.
3166         * emit-rtl.c (const_fixed_htab): New hash table.
3167         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
3168         Declare.
3169         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
3170         const_fixed_from_fixed_value): New functions.
3171         (verify_rtx_sharing): Handle CONST_FIXED.
3172         (copy_rtx_if_shared_1): Likewise.
3173         (reset_used_flags): Likewise.
3174         (set_used_flags): Likewise.
3175         (copy_insn_1): Likewise.
3176         (init_emit_once): Create const_fixed_htab.
3177         Store fixed-point scalar and vector zero and one to const_tiny_rtx.
3178
3179 2007-08-22  Zdenek Dvorak  <ook@ucw.cz>
3180
3181         PR tree-optimization/32949
3182         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
3183         before failing for ivs with non-constant step.
3184
3185 2007-08-22  Hans-Peter Nilsson  <hp@axis.com>
3186
3187         * doc/md.texi (Iterators): Renamed from Macros.  All contents
3188         changed to reflect rename of respectively define_code_macro and
3189         define_mode_macro to define_code_iterator and define_mode_iterator.
3190         (Mode Iterators, Code Iterators): Similar.
3191         * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
3192         (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
3193         (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
3194         (initialize_iterators, find_iterator, check_code_iterator)
3195         (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
3196         (read_mapping, read_rtx_1): Similar.
3197         * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
3198         config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
3199         config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
3200         config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
3201         config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
3202         config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
3203         config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
3204         config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
3205         config/rs6000/sync.md, config/rs6000/rs6000.md,
3206         config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
3207         config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
3208         config/vax/vax.md, config/bfin/bfin.md: Similar.
3209
3210 2007-08-22  David Daney  <ddaney@avtrex.com>
3211
3212         * doc/install.texi (Testing): Mention testing on a simulator.
3213
3214 2007-08-22  Janis Johnson  <janis187@us.ibm.com>
3215
3216         * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
3217
3218         * doc/libgcc.texi (Decimal float library routines): Fix formatting
3219         and rearrange floating point conversion functions into different
3220         categories.
3221
3222 2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3223
3224         * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
3225         dfa_post_advance_cycle): New scheduler hooks.
3226         * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
3227         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
3228         new hooks.
3229         (TARGET_SCHED): Use them.
3230         * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
3231         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
3232         * haifa-sched.c (advance_one_cycle): Invoke new hooks.
3233
3234         * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
3235         function to facilitate debugging.
3236         (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
3237         (output_insn_has_dfa_reservation_p): New static function to output
3238         insn_has_dfa_reservation_p ().
3239         (write_automata): Use it.
3240         * genattr.c (main): Output declaration for
3241         insn_has_dfa_reservation_p ().
3242
3243 2007-08-22  Christian Bruel  <christian.bruel@st.com>   
3244             Richard Guenther <rguenther@suse.de>
3245         
3246         * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
3247         * simplify_rtx (simplify_binary_operation_1): Likewise.
3248                 
3249 2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3250
3251         PR rtl-optimization/32557
3252         * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
3253         of REGNO (mws->mw_reg).
3254
3255 2007-08-22  Richard Guenther  <rguenther@suse.de>
3256
3257         PR middle-end/33007
3258         * builtins.c (expand_builtin_int_roundingfn): Replace call
3259         argument wrapped with SAVE_EXPR directly.
3260         (expand_builtin_int_roundingfn_2): Likewise.
3261
3262 2007-08-22  Richard Guenther  <rguenther@suse.de>
3263
3264         * tree-inline.c (inlinable_function_p): Restore disregarding
3265         inline limits for GNU extern inline functions.
3266
3267 2007-08-22  Richard Guenther  <rguenther@suse.de>
3268
3269         PR middle-end/32563
3270         * tree.c (host_integerp): Treat sizetype as signed as it is
3271         sign-extended.
3272
3273 2007-08-21  Ian Lance Taylor  <iant@google.com>
3274
3275         PR tree-optimization/33134
3276         * tree-vrp.c (adjust_range_with_scev): Call
3277         set_value_range_to_value.
3278
3279 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
3280
3281         * value-prof.h (gimple_remove_histogram_value): Remove duplicate
3282         prototype.
3283         
3284 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
3285
3286         * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
3287         whitespace.
3288
3289 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
3290
3291         * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
3292         cases to set eight bytes at a time.
3293         (expand_block_move): Likewise.
3294         
3295 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
3296
3297         PR debug/32610
3298         * dwarf2out.c (gen_decl_die): Don't call
3299         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
3300
3301 2007-08-21  Paul Brook  <paul@codesourcery.com>
3302             Nathan Sidwell  <nathan@codesourcery.com>
3303             Mark Mitchell  <mark@codesourcery.com>
3304             Joseph Myers  <joseph@codesourcery.com>
3305
3306         * configure.ac: Add --with-pkgversion and --with-bugurl.
3307         * configure: Regenerate.
3308         * doc/install.texi: Document them.
3309         * version.c (version_string): Remove VERSUFFIX.
3310         (VERSUFFIX): Remove.
3311         (pkgversion_string): New.
3312         (bug_report_url): Do not hard-code initializer.
3313         * version.h (pkgversion_string): Declare.
3314         * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
3315         Define.
3316         (version.o): Define PKGVERSION and BUGURL.
3317         (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
3318         (%.pod): Define BUGURL.
3319         * gcc.c (process_command, main): Use pkgversion_string.
3320         * toplev.c (compile_file, print_version): Likewise.
3321         * protoize.c (main): Likewise.
3322         * gcov.c (print_version): Likewise.  Update copyright date.
3323         * gcov-dump.c (print_version): Likewise.  Update copyright date.
3324         * mips-tdump.c (main): Likewise.  Update copyright date.
3325         * mips-tfile.c (main): Likewise.  Update copyright date.
3326         * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
3327         * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
3328         shorten description.
3329         * doc/gcc.texi: Include VERSION_PACKAGE in version description.
3330         * doc/gccint.texi: Likewise.
3331         * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
3332         Update copyright date.
3333
3334 2007-08-21  Uros Bizjak  <ubizjak@gmail.com>
3335
3336         * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
3337         (ix86_expand_strlensi_unroll_1): Ditto.
3338         (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
3339         (ix86_expand_carry_flag_compare): Update comment.
3340
3341 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
3342
3343         PR middle-end/32912
3344         * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
3345         (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
3346
3347 2007-08-21  Richard Guenther  <rguenther@suse.de>
3348
3349         * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
3350
3351 2007-08-21  Richard Guenther  <rguenther@suse.de>
3352
3353         PR middle-end/33122
3354         * fold-const.c (fold_binary): Remove index +p PTR folding.
3355         Fix types of POINTER_PLUS_EXPR generated by folding of
3356         (PTR +p B) +p A.
3357
3358 2007-08-20  Chao-ying Fu  <fu@mips.com>
3359
3360         * c-common.h (enum rid): Add new enumeration values of RID_SAT,
3361         RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
3362         RID_ONEWAY, so that it can be checked in declspecs_add_type.
3363         (c_common_fixed_point_type_for_size): Declare.
3364         * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
3365         (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
3366         (c_token_starts_declspecs): Likewise.
3367         (c_parser_declspecs): Likewise.
3368         (c_parser_attributes): Likewise.
3369         * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
3370         (c_declspecs): Add saturating_p.
3371         * c-decl.c (build_null_declspecs): Initialize saturating_p.
3372         (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
3373         _Sat.  Handle RID_SAT.
3374         Avoid using void, bool, char, int, float, double, _Decimal32,
3375         _Decimal64, _Decimal128, and complex with _Sat.