OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * resource.c (mark_referenced_resources): Look inside
4         UNSPEC_VOLATILEs and ASM_INPUTs.
5
6 2008-07-02  Ian Lance Taylor  <iant@google.com>
7
8         * rtlanal.c (add_reg_note): New function.
9         * rtl.h (add_reg_note): Declare.
10         * auto-inc-dec.c (attempt_change): Use add_reg_note.
11         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
12         * builtins.c (expand_builtin_longjmp): Likewise.
13         (expand_builtin_nonlocal_goto): Likewise.
14         * calls.c (emit_call_1, expand_call): Likewise.
15         * cfgexpand.c (add_reg_br_prob_note): Likewise.
16         * cfglayout.c (fixup_reorder_chain): Likewise.
17         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
18         (commit_one_edge_insertion): Likewise.
19         * combine.c (move_deaths, distribute_notes): Likewise.
20         * df-problems.c (df_set_note): Likewise.
21         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
22         (set_unique_reg_note): Likewise.
23         (emit_copy_of_insn_after): Likewise.
24         * expr.c (expand_expr_real): Likewise.
25         * gcse.c (add_label_notes): Likewise.
26         * haifa-sched.c (create_check_block_twin): Likewise.
27         * jump.c (mark_jump_label_1): Likewise.
28         * loop-doloop.c (add_test, doloop_modify): Likewise.
29         * loop-unswitch.c (compare_and_jump_seq): Likewise.
30         * lower-subreg.c (move_eh_region_note): Likewise.
31         * optabs.c (emit_libcall_block): Likewise.
32         * predict.c (predict_insn): Likewise.
33         (combine_predictions_for_insn): Likewise.
34         * recog.c (peephole2_optimize): Likewise.
35         * regmove.c (try_auto_increment): Likewise.
36         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
37         * reload.c (find_reloads): Likewise.
38         * reload1.c (fixup_eh_region_note): Likewise.
39         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
40         * reorg.c (delete_prior_computation): Likewise.
41         (delete_computation, dbr_schedule): Likewise.
42         * config/pa/pa.c (legitimize_pic_address): Likewise.
43         * config/sh/sh.c (sh_reorg): Likewise.
44
45 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
46
47         PR target/36669
48         * config/libgcc-glibc.ver: Add %exclude.
49         * config/m32r/libgcc-glibc.ver: Likwise.
50         * config/s390/libgcc-glibc.ver: Likwise.
51         * config/sh/libgcc-glibc.ver: Likwise.
52         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
53
54         * config/i386/libgcc-glibc.ver: New.
55
56         * config/i386/libgcc-x86_64-glibc.ver: Removed.
57
58 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
59
60         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
61         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
62         i[34567]86-*-linux*, x86_64-*-linux*.  Add
63         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
64         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
65         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
66         i[34567]86-*-linux*, x86_64-*-linux*.
67
68         * libgcc-std.ver: Add empty GCC_4.4.0.
69
70         * mkmap-symver.awk: Support multiple versions per symbol.
71
72         * config/i386/i386.c (ix86_init_builtins): Always define
73         __builtin_fabsq and __builtin_copysignq with fallbacks.
74         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
75         and __builtin_copysignq if SSE2 isn't available.
76
77         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
78         (LIBGCC2_TF_CEXT): Likwise.
79         (TF_SIZE): Likwise.
80
81         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
82
83         * config/i386/sfp-machine.h: Moved to libgcc.
84
85         * config/i386/sfp-machine.h: New.
86         * config/i386/t-linux: Likwise.
87
88         * config/i386/t-darwin: Remove softfp_wrap_start and
89         softfp_wrap_end.
90         * config/i386/t-darwin64: Likewise.
91
92         * config/i386/t-fprules-softfp64: Renamed to ...
93         * config/i386/t-fprules-softfp: This.
94
95         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
96         and softfp_wrap_end.
97
98 2008-07-02  Jason Merrill  <jason@redhat.com>
99
100         * tree.c (ctor_to_list): New fn.
101         * tree.h: Declare it.
102         (CONSTRUCTOR_ELT): New macro.
103         (CONSTRUCTOR_NELTS): New macro.
104
105 2008-07-02  Richard Guenther  <rguenther@suse.de>
106
107         * tree-ssa-structalias.c (struct variable_info): Reorder
108         to fill padding on 64bit hosts.  Make collapsed_to an int.
109         (get_varinfo_fc): Deal with that.
110         (new_var_info): Likewise.
111         (collapse_rest_of_var): Likewise.
112
113 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
114
115         * doc/install.texi (--enable-java-home): Document.
116         (--enable-aot-compile-rpm): Likewise.
117         (--with-arch-directory): Likewise.
118         (--with-os-directory): Likewise.
119         (--with-origin-name): Likewise.
120         (--with-arch-suffix): Likewise.
121         (--with-jvm-root-dir): Likewise.
122         (--with-jvm-jar-dir): Likewise.
123         (--with-python-dir): Likewise.
124
125 2008-07-02  Richard Guenther  <rguenther@suse.de>
126
127         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
128         from decls explicitly.  Merge operand checking from tuples.
129
130 2008-07-02  Martin Jambor  <mjambor@suse.cz>
131
132         * tree-switch-conversion.c: Included timevar.h which I forgot before.
133         
134 2008-07-02  Martin Jambor  <mjambor@suse.cz>
135
136         * tree-switch-conversion.c: Included timevar.h
137         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
138
139         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
140
141 2008-07-02  Martin Jambor  <mjambor@suse.cz>
142
143         * tree-switch-conversion.c: Corrected various comments and
144         whitespace issues
145         (build_constructors): Fixed minor formatting mistakes.
146
147         * invoke.texi (Optimize Options): Corrected the
148         switch-conversion-max-branch-ratio parameter.
149
150 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
151
152         * final.c (asm_insn_count): Return zero for an empty asm body.
153
154 2008-07-02  Richard Guenther  <rguenther@suse.de>
155
156         * bitmap.h (bitmap_set_bit): Return bool.
157         (bitmap_clear_bit): Likewise.
158         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
159         write to the bitmap if it would.
160         (bitmap_clear_bit): Likewise.
161         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
162         bitmap_set_bit return value.
163         (add_pred_graph_edge): Likewise.
164         (add_graph_edge): Likewise.
165         (do_sd_constraint): Likewise.
166         (do_ds_constraint): Likewise.
167
168 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
169
170         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
171         Fix -Wc++-compat and/or -Wcast-qual warnings.
172         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
173         gen_regparm_prefix): Likewise.
174         * vmsdbgout.c (write_modbeg, lookup_filename,
175         vmsdbgout_source_line, vmsdbgout_init): Likewise.
176
177 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
178
179         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
180         defaults.h definition apply.
181
182 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
183
184         * function.c (assign_parm_remove_parallels): New.
185         (assign_parm_setup_block_p): Do not return true for non-BLKmode
186         PARALLELs.
187         (assign_parm_setup_block): Do not handle them.
188         (assign_parm_setup_reg, assign_parm_setup_stack): Call
189         assign_parm_remove_parallels.
190
191 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
192
193         * c-typeck.c (convert_for_assignment): Use
194         vector_targets_convertible_p.
195         * c-common.c (vector_targets_convertible_p): New.
196         * c-common.h (vector_targets_convertible_p): New prototype.
197         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
198         opaque_p_V2SI_type_node.
199
200 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
201
202         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
203         RFmode constants.
204
205 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
206
207         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
208         TFmode constants via two element DImode vector for hosts with
209         HOST_BITS_PER_WIDE_INT < 64.
210         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
211         also for HOST_BITS_PER_WIDE_INT < 64.
212
213 2008-07-01  Richard Guenther  <rguenther@suse.de>
214
215         PR tree-optimization/36666
216         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
217         (get_constraint_exp_from_ssa_var): Split into ...
218         (get_constraint_exp_for_temp): ... this ...
219         (get_constraint_for_ssa_var): ... and that.
220         Return constraint expressions for all touched sub-fields
221         if the results address is not taken.
222         (process_constraint): Remove assertion that aggregate
223         assignments do not happen at this place.
224         (get_constraint_for_component_ref): Add address_p argument.
225         Return constraint expressions for all touched sub-fields
226         if the results address is not taken.
227         (do_deref): Use get_constraint_exp_for_temp.
228         (get_constraint_for_1): Rename from ...
229         (get_constraint_for): ... this.  Add the old function as wrapper.
230         (do_structure_copy): Use get_constraint_for_1.
231
232 2008-07-01  Martin Jambor  <mjambor@suse.cz>
233
234         * Makefile.in (tree-switch-conversion.o): Add.
235         (OBJS-common): Add tree-swtch-conversion.o.
236         * passes.c (init_optimization_passes): Add pass_convert_switch.
237         * tree-pass.h: (pass_convert_switch): Add.
238         * tree-switch-conversion.c: New file.
239         * gcc.dg/tree-ssa/cswtch.c: New testcase.
240         * common.opt (ftree-cswtch): New option.
241         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
242         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
243         * opts.c (decode_options): Set flag_tree_switch_conversion when
244         optimization level is >= 2.
245         * doc/invoke.texi (Optimize Options): Added description of
246         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
247
248 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
249
250         * config/darwin-driver.c (darwin_default_min_version): Fix
251         -Wc++-compat warnings.
252
253 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
254
255         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
256         of operand 0.
257
258 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
259
260         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
261         
262 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
263
264         PR rtl-optimization/34744
265         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
266         (df_scan_free_internal): Free data structures not
267         allocated in storage pools.
268         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
269         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
270         df_scan_free_mws_vec.
271         * dse.c (dse_step6): Free offset_map_p and offset_map_n
272         unconditionally.
273
274 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
275
276         * config/i386/i386.c (contains_aligned_value_p): Return true
277         for __float128.
278         (ix86_function_arg_boundary): Return its natural boundary
279         for __float128.
280         (return_in_memory_32): Don't check TDmode.
281         (ix86_split_to_parts): Support splitting into 4 parts and
282         support TFmode for 32bit target.
283         (ix86_split_long_move): Support splitting into 4 parts.
284         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
285         for SSE2.
286         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
287         (ix86_init_builtins): Here.
288         (ix86_scalar_mode_supported_p): Always return true for TFmode.
289         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
290         'q' and 'w', respectively. 
291
292         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
293         TARGET_64BIT.
294         (movtf_internal): Likewise.
295         (<code>tf2): Likewise.
296         (*absnegtf2_sse): Likewise.
297         (copysign<mode>3): Likewise.
298         (copysign<mode>3_const): Likewise.
299         (copysign<mode>3_var): Likewise.
300         (define_split UNSPEC_COPYSIGN): Likewise.
301         * config/i386/sse.md (*nandtf3): Likewise.
302         (<code>tf3): Likewise.
303         (*<code>tf3): Likewise.
304
305 2008-06-30  Joey Ye  <joey.ye@intel.com>
306             H.J. Lu  <hongjiu.lu@intel.com>
307
308         * global.c (compute_regsets): Set frame_pointer_needed here.
309         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
310
311 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
312
313         * doc/install.texi (specific): Expand Windows build notes.
314
315 2008-06-30  Ira Rosen  <irar@il.ibm.com>
316
317         PR tree-optimization/36648
318         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
319         number of prolog iterations by step. Fix the comment.
320
321 2008-06-30  Richard Guenther  <rguenther@suse.de>
322
323         PR middle-end/36671
324         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
325         handle calls from ECF_MALLOC functions.
326         (handle_pure_call): ECF_MALLOC functions do not return
327         call-used memory.
328         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
329
330 2008-06-29  Andreas Schwab  <schwab@suse.de>
331
332         * config/m68k/m68k.c (print_operand): Always print a float
333         constant in hex.
334         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
335         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
336         Remove macros.
337
338         * config/rs6000/x-linux64: Remove never used file.
339
340 2008-06-29  Richard Guenther  <rguenther@suse.de>
341
342         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
343         prototype.
344         (struct alias_info): Move ...
345         * tree-ssa-alias.c: ... here.
346         (update_alias_info): Declare.
347         (compute_may_aliases): Call it.
348         (update_alias_info): New function.
349         * tree-ssa-structalias.c (update_alias_info): Move ...
350         * tree-ssa-alias.c (update_alias_info_1): ... here.
351         * tree-ssa-structalias.c (process_constraint_1): Remove
352         unused from_call argument.  Rename to ...
353         (process_constraint): ... this.  Delete old wrapper.
354         (make_constraint_to): Adjust callers.
355         (handle_const_call): Likewise.
356         (handle_pure_call): Likewise.
357         (init_base_vars): Likewise.
358         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
359         (find_func_aliases): We don't need structure copies for
360         complex types.
361         (make_constraint_from_anything): Remove.
362         (create_variable_info_for): For globals make constraints
363         from escaped, not from anything.
364         (compute_points_to_sets): Do not call update_alias_info.
365         (ipa_pta_execute): Use make_constraint_from.
366
367 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
368
369         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
370         (bitmap.o-warn, dominance.o-warn): New.
371         * configure.ac (cxx_compat_warn): Delete.
372         (loose_warn): Add -Wcast-qual and -Wc++-compat.
373         * system.h: Remove #pragma diagnostic for -Wcast-qual and
374         -Wc++-compat.
375         * configure: Regenerate.
376
377         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
378         warnings.
379
380 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
381
382         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
383         * df-scan.c (df_notes_rescan): Likewise.
384         * ggc-page.c (set_page_table_entry): Likewise.
385         * intl.c (gcc_gettext_width): Likewise.
386         * varasm.c (get_unnamed_section, get_noswitch_section,
387         get_section): Likewise.
388
389 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
390
391         * regrename.c (build_def_use): Don't copy RTX.
392
393 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
394
395         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
396         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
397         punctuation.  Use @ref instead of @xref.
398         (Function Names): Remove stray @display/@end display.
399         (C++ Attributes): Use @ref instead of @xref.
400         (Deprecated Features): Fix punctuation around @xref.
401         (Backwards Compatibility): Likewise.
402         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
403
404 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
405
406         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
407         constants for E500 double.
408
409 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
410
411         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
412         element type of const_vector.
413
414 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
415
416         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
417         Remove FLAGS_REG clobber from expander pattern.
418         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
419         (anddi3, andsi3, andhi3, andqi3): Ditto.
420         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
421         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
422         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
423         (ashlsi3, ashlhi3, ashlqi3): Ditto.
424         (ashrsi3, ashrhi3, ashrqi3): Ditto.
425         (lshrsi3, lshrhi3, lshrqi3): Ditto.
426         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
427         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
428
429 2008-06-28  Richard Guenther  <rguenther@suse.de>
430
431         * tree-ssa-structalias.c (callused_id, var_callused,
432         callused_tree): Add.
433         (handle_pure_call): New function.
434         (find_func_aliases): Call it.
435         (find_what_p_points_to): Handle the call-used set.
436         (clobber_what_escaped): Likewise.
437         (compute_call_used_vars): New function.
438         (init_base_vars): Init the call-used variable.
439         (do_sd_constraint): Do not propagate the solution from CALLUSED
440         but use CALLUSED as a placeholder.
441         (solve_graph): Likewise.
442         * tree-flow-inline.h (gimple_call_used_vars): New function.
443         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
444         (compute_call_used_vars): Declare.
445         * tree-ssa-alias.c (set_initial_properties): Call
446         compute_call_used_vars.
447         (reset_alias_info): Clear call-used variables.
448         (add_call_clobber_ops): Assert we are not called for const/pure
449         functions.  Remove handling of them.
450         (add_call_read_ops): Handle pure functions by adding the
451         call-used set of variables as VUSEs.
452         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
453         (delete_tree_ssa): Free it.
454         * tree-dfa.c (remove_referenced_var): Clear the var from the
455         call-used bitmap.
456
457 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
458
459         * tree.c (build_varargs_function_type_list): New.
460         (build_function_type_list_1): New.
461         (build_function_type_list): Use build_function_type_list_1.
462         * tree.h (build_varargs_function_type_list): New.
463
464 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
465
466         PR target/34856
467         * config/spu/spu.c (spu_builtin_splats): Do not generate
468         invalid CONST_VECTOR expressions.
469         (spu_expand_vector_init): Likewise.
470
471 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
472
473         * optabs.c (libfunc_decls): New variable.
474         (libfunc_decl_hash, libfunc_decl_eq): New functions.
475         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
476         for the same function twice.
477
478 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
479
480         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
481         ix86_expand_binary_operator directly.
482         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
483         for operand 2.
484         (*ashrti3_1): Ditto.
485         (*lshrti3_1): Ditto.
486         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
487         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
488         using only one splitter.  Conditionaly execute splitter before or
489         after peephole2 pass.
490         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
491         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
492         Use only one alternative in asm template.
493         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
494         in asm template.
495         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
496         "J" operand constraint for operand 2.
497         (*ashldi3_cconly_rex64): Ditto.
498         (*ashrdi3_cmp_rex64): Ditto.
499         (*ashrdi3_cconly_rex64): Ditto.
500         (*lshrdi3_cmp_rex64): Ditto.
501         (*lshrdi3_cconly_rex64): Ditto.
502         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
503         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
504         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
505         gen_x86_shrd_1.
506
507 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
508
509         * gimplify.c (omp_is_private): Don't return true if decl is not
510         already private on #pragma omp for or #pragma omp parallel for.
511
512         PR debug/36617
513         * tree-cfg.c (struct move_stmt_d): Replace block field with
514         orig_block and new_block fields.
515         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
516         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
517         (move_block_to_fn): Replace vars_map and new_label_map arguments
518         with struct move_stmt_d pointer.
519         (replace_block_vars_by_duplicates): New function.
520         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
521         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
522         all subblocks of ORIG_BLOCK to the new function.  Call
523         replace_block_vars_by_duplicates.
524         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
525         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
526         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
527         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
528         (expand_omp): Temporarily set input_location to the location of
529         region's controlling stmt.
530         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
531         BIND_EXPR, push ctx->block_vars and gimplification vars into
532         the BIND_EXPR and its block's BLOCK_VARS instead of directly
533         into dest function.
534         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
535         there are any BLOCK_VARS.
536         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
537         OMP_PARALLEL or OMP_TASK stmt.
538         (lower_omp): Save and restore input_location around the lower_omp_1
539         call.
540
541 2008-06-27  Richard Guenther  <rguenther@suse.de>
542
543         PR tree-optimization/36400
544         PR tree-optimization/36373
545         PR tree-optimization/36344
546         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
547         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
548         (update_alias_info): Remove call clobbering code.
549         (make_constraint_to): New helper function.
550         (make_escape_constraint): Likewise.
551         (handle_rhs_call): Use it on all pointer containing arguments.
552         Also mark the static chain escaped.
553         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
554         instead of ANYTHING.
555         (make_constraint_from): New helper split out from ...
556         (make_constraint_from_anything): ... here.
557         (find_func_aliases): Add constraints for escape sites.
558         (intra_create_variable_infos): Make constraints from NONLOCAL
559         for parameters.
560         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
561         as ANYTHING.
562         (clobber_what_p_points_to): Remove.
563         (clobber_what_escaped): New function.
564         (init_base_vars): Init NONLOCAL and ESCAPED.
565         (do_sd_constraint): Do not propagate the solution from ESCAPED
566         but use ESCAPED as a placeholder.
567         (solve_graph): Likewise.
568         * tree-flow.h (clobber_what_p_points_to): Remove.
569         (clobber_what_escaped): Declare.
570         * tree-ssa-alias.c (set_initial_properties): Call it.
571         Remove code clobbering escaped pointers.
572
573 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
574
575         * function.c (allocate_struct_function): Only allocate a unique
576         funcdef_no if the decl is nonzero.
577
578 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
579
580         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
581         * config/mips/mips.c (mips_split_const_insns): New function.
582         * config/mips/mips.md (move_type): New attribute.
583         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
584         (dword_mode): New attribute.
585         (type): Avoid long line.  Map "move_type"s to "type"s,
586         choosing "multi" for doubleword moves if appropriate.
587         Swap MTC/MFC comments to match their declaration order.
588         (extended_mips16): Default to "yes" if "move_type" is "sll0",
589         "type" is "branch" or "jal" is "direct".
590         (length): Handle "extended_mips16" first.  Make the default
591         "0" for "ghost" instructions.  Set the length from "move_type".
592         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
593         of "type", with "sll0" for the register alternative.  Remove the
594         "extended_mips16" attribute.
595         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
596         of "type", with "shift_shift" for the register alternative.
597         Remove the "length" attribute.
598         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
599         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
600         of "type", with "andi" for the register alternative.
601         (*zero_extendqihi2): Likewise.
602         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
603         of "andi" instead of a "type" of "arith".
604         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
605         instead of "type".
606         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
607         (mov_<store>r, *mov<mode>_ra): Likewise.
608         (extendsidi2): Use "move_type" instead of "type", with "move"
609         for the register alternative.
610         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
611         of "type", with "signext" for the register alternative.
612         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
613         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
614         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
615         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
616         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
617         (unnamed branch insn): Likewise.
618         (*movdi_gp32_fp64): Fold into...
619         (*movdi_32bit): ...here.
620         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
621         (*movdf_hardfloat): ...this new pattern.
622         (*movdf_softfloat): Remove redundant FPR alternatives.
623         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
624         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
625         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
626         the "move" attribute.
627         (*movdi_32bit): Use "move_type" instead of "type" and remove the
628         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
629         and "store" for COP loads and stores.
630         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
631         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
632         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
633         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
634         (*movtf_mips16, *movv2sf): Likewise.
635         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
636         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
637         (mfhc1<mode>): Use "move_type" instead of "move".
638         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
639         (loadgp_blockage): Remove the "length" attribute.
640         (blockage, set_got_version, update_got_version): Likewise.
641         (call_internal): Remove the "extended_mips16" attribute.
642         (call_value_internal, call_value_multiple_internal): Likewise.
643         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
644         instead of "move".
645         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
646         the "length" attribute.
647
648 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
649
650         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
651         -Wcast-qual warnings.
652         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
653         handle_pragma_pop_macro): Likewise.
654         * collect2.c (resolve_lib_name): Likewise.
655         * config/arc/arc.c (arc_init): Likewise.
656         * config/arm/arm.c (neon_builtin_compare,
657         locate_neon_builtin_icode): Likewise.
658         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
659         * config/bfin/bfin.c (bfin_init_machine_status,
660         bfin_optimize_loop): Likewise.
661         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
662         * config/cris/cris.c (cris_init_expanders): Likewise.
663         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
664         * config/darwin.c (machopic_indirection_eq,
665         machopic_indirection_name, machopic_output_indirection): Likewise.
666         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
667         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
668         frv_optimize_membar): Likewise.
669         * config/i386/cygwin.h (mingw_scan,
670         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
671         * config/i386/cygwin1.c (mingw_scan): Likewise.
672         * config/i386/i386.c (machopic_output_stub): Likewise.
673         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
674         i386_pe_unique_section): Likewise.
675         * config/ia64/ia64.c (ia64_init_machine_status,
676         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
677         Likewise.
678         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
679         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
680         * config/m68k/m68k.c (m68k_handle_option,
681         m68k_sched_md_init_global): Likewise.
682         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
683         mcore_unique_section): Likewise.
684         * config/mips/mips.c (mips_block_move_straight,
685         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
686         Likewise.
687         * config/mmix/mmix.c (mmix_init_machine_status,
688         mmix_encode_section_info): Likewise.
689         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
690         * config/rs6000/rs6000.c (rs6000_init_machine_status,
691         print_operand_address, output_toc, redefine_groups,
692         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
693         * config/s390/s390.c (s390_init_machine_status): Likewise.
694         * config/score/score.c (score_block_move_straight,
695         score_block_move_loop_body): Likewise.
696         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
697         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
698         * emit-rtl.c (find_auto_inc): Likewise.
699         * gcc.c (translate_options, process_command): Likewise.
700         * reorg.c (dbr_schedule): Likewise.
701         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
702         * xcoffout.c (xcoffout_declare_function): Likewise.
703
704 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
705
706         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
707         ipa-pta working again.
708
709 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
710
711         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
712         genautomata.
713
714 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
715
716         * config.gcc (powerpc*-*-*): Add new core e500mc.
717         * config/rs6000/e500mc.md: New file.
718         * config/rs6000/rs6000.c (processor_costs): Add new costs for
719         e500mc.
720         (rs6000_override_options): Add e500mc case to
721         processor_target_table. Altivec and Spe options not allowed
722         with e500mc. Add isel instruction to e500mc by
723         default. Initialize rs6000_cost for e500mc.
724         (rs6000_issue_rate): Set issue rate for e500mc.
725         * config/rs6000/rs6000.h (processor_type): Add
726         PROCESSOR_PPCE500MC.
727         (ASM_CPU_SPEC): Add e500mc.
728         Set TARGET_ISEL to rs6000_isel.
729         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
730         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
731         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
732         Include e500mc.md.
733         * doc/invoke.texi: Add e500mc to list of cpus.
734
735 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
736
737         PR c/34867
738         * c-lex.c (lex_charconst): Initialize unsignedp.
739
740 2008-06-27  Olivier Hainque  <hainque@adacore.com>
741
742         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
743         documented assumptions.
744
745 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
746
747         * dwarf2out.c: Remove trailing white spaces.  Break long line
748         in comments.
749
750 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
751
752         * libfuncs.h (LTI_synchronize): New libfunc_index.
753         (synchronize_libfunc): Declare.
754         * builtins.c (expand_builtin_synchronize): Consider using
755         synchronize_libfunc before falling back on an asm blockage.
756         * config/mips/mips.c: Include libfuncs.h
757         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
758
759 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
760
761         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
762         parameter.  Copy stack_reg to r11 where appropriate.
763         (no_global_regs_above): Add gpr parameter.
764         (rs6000_stack_info): Only add padding for SPE save area if we
765         are saving SPE GPRs and CR.
766         (saveres_routine_syms): New variable.
767         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
768         Define.
769         (rs6000_savres_routine_sym): New function.
770         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
771         split out of...
772         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
773         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
774         Tweak FPR out-of-line saving.
775         (rs6000_make_savres_rtx): New function.
776         (rs6000_use_multiple_p): New function.
777         (rs6000_savres_strategy): New function.
778         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
779         out-of-line if appropriate.
780         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
781         if we are optimizing for size.
782         (GP_SAVE_INLINE): Define.
783         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
784         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
785         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
786         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
787         (*save_fpregs_<mode>): Add use of r11.
788         (*restore_gpregs_<mode>): New insn.
789         (*return_and_restore_gpregs_<mode>): New insn.
790         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
791         use r11.
792         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
793         (*restore_gpregs_spe): New insn.
794         (*return_and_restore_gpregs_spe): New insn.
795         * config/rs6000/predicates.md (save_world_operation): Fix check.
796
797 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
798
799         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
800         this point, so assert that.
801
802 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
803
804         * cfganal.c: Include vec.h and vecprim.h.
805         (compute_idf): Import from...
806         * tree-into-ssa (compute_idf): ...here.
807         * basic-block.h (compute_idf): Export.
808
809 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
810
811         * c-decl.c (merge_decls): Use !current_function_decl to check for
812         extern declaration of C99 inline function being at file scope.
813
814 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
815
816         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
817
818 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
819
820         * alias.c (record_alias_subset, init_alias_analysis): Fix
821         -Wc++-compat and/or -Wcast-qual warnings.
822         * attribs.c (lookup_attribute_spec): Likewise.
823         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
824         copy_bb, connect_traces,
825         find_rarely_executed_basic_blocks_and_cr): Likewise.
826         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
827         note_btr_set, migrate_btr_defs): Likewise.
828         * builtins.c (result_vector, expand_builtin_memcpy,
829         expand_builtin_mempcpy_args, expand_builtin_strncpy,
830         builtin_memset_read_str, expand_builtin_printf,
831         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
832         Likewise.
833         * caller-save.c (mark_set_regs): Likewise.
834         * calls.c (expand_call, emit_library_call_value_1): Likewise.
835         * cgraph.c (cgraph_edge): Likewise.
836         * combine.c (likely_spilled_retval_1): Likewise.
837         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
838         htab_counts_entry_del, get_coverage_counts): Likewise.
839         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
840         new_cselib_val): Likewise.
841         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
842         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
843         Likewise.
844         * df-core.c (df_compact_blocks): Likewise.
845         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
846         * df-scan.c (df_grow_reg_info, df_ref_create,
847         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
848         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
849         df_record_entry_block_defs, df_record_exit_block_uses,
850         df_bb_verify): Likewise.
851         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
852         DF_REF_EXTRACT_MODE_CONST): New.
853         * dominance.c (get_immediate_dominator, get_dominated_by,
854         nearest_common_dominator, root_of_dom_tree,
855         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
856         -Wc++-compat and/or -Wcast-qual warnings.
857         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
858         record_store, replace_read, check_mem_read_rtx, scan_insn,
859         dse_step1, dse_record_singleton_alias_set): Likewise.
860         * dwarf2asm.c (dw2_force_const_mem): Likewise.
861
862 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
863
864         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
865         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
866         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
867         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
868         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
869         add_ranges_num, add_ranges_by_labels, file_info_cmp,
870         file_name_acquire, output_file_names, add_const_value_attribute,
871         premark_used_types_helper, file_table_eq, file_table_hash,
872         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
873         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
874         -Wcast-qual warnings.
875         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
876         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
877         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
878         gen_reg_rtx, start_sequence, init_emit): Likewise.
879         * et-forest.c (et_new_occ, et_new_tree): Likewise.
880         * except.c (init_eh_for_function, gen_eh_region,
881         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
882         arh_to_landing_pad, arh_to_label, add_action_record,
883         add_call_site, switch_to_exception_section): Likewise.
884         * expmed.c (synth_mult): Likewise.
885         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
886         store_expr): Likewise.
887         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
888         Likewise.
889         * function.c (assign_stack_temp_for_type,
890         allocate_struct_function, match_asm_constraints_1): Likewise.
891         * gcov-io.c (gcov_allocate): Likewise.
892         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
893         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
894         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
895         record_one_set, insert_expr_in_table, insert_set_in_table,
896         dump_hash_table, compute_hash_table_work, alloc_hash_table,
897         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
898         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
899         -Wcast-qual warnings.
900
901 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
902
903         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
904         -Wcast-qual warnings.
905         * gcc.c (process_command): Likewise.
906         * genattrtab.c (oballoc): Use XOBNEW.
907         (oballocvec): Define.
908         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
909         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
910         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
911         -Wc++-compat and/or -Wcast-qual warnings.
912         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
913         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
914         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
915         gen_presence_absence_set, gen_automaton, gen_regexp_el,
916         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
917         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
918         add_excls, process_presence_absence_names,
919         process_presence_absence_patterns, add_presence_absence,
920         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
921         get_free_state, add_arc, get_free_automata_list_el,
922         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
923         transform_3, cache_presence, create_ainsns, create_automata,
924         create_state_ainsn_table, dfa_insn_code_enlarge,
925         output_trans_func, output_min_issue_delay_func,
926         output_dead_lock_func, output_reset_func,
927         output_get_cpu_unit_code_func, output_dfa_start_func,
928         expand_automata): Likewise.
929         * genextract.c (gen_insn): Likewise.
930         * gengtype-lex.l: Likewise.
931         * gengtype.c (read_input_list, adjust_field_type,
932         process_gc_options): Likewise.
933         * genoutput.c (note_constraint): Likewise.
934         * genpreds.c (mangle, add_constraint): Likewise.
935         * genrecog.c (process_define_predicate, new_decision,
936         add_to_sequence): Likewise.
937         * gensupport.c (record_insn_name): Likewise.
938
939 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
940
941         * config/i386/driver-i386.c (detect_caches_amd,
942         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
943         and/or -Wcast-qual warnings.
944         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
945         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
946         gt_pch_save): Likewise.
947         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
948         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
949         * global.c (compute_regsets): Likewise.
950         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
951         finish_graph_dump_file): Likewise.
952         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
953         unlink_bb_notes): Likewise.
954         * integrate.c (get_hard_reg_initial_val): Likewise.
955         * ipa-prop.c (ipa_push_func_to_list): Likewise.
956         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
957         * local-alloc.c (update_equiv_regs): Likewise.
958         * loop-invariant.c (check_invariant_table_size,
959         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
960         Likewise.
961         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
962         altered_reg_used, mark_altered): Likewise.
963         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
964         insert_var_expansion_initialization,
965         combine_var_copies_in_loop_exit, apply_opt_in_copies,
966         release_var_copies): Likewise.
967         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
968         analyze_matrix_decl, add_allocation_site, analyze_transpose,
969         analyze_accesses_for_phi_node, check_var_notmodified_p,
970         check_allocation_function, find_sites_in_func,
971         record_all_accesses_in_func, transform_access_sites,
972         transform_allocation_sites): Likewise.
973         * omp-low.c (new_omp_region, create_omp_child_function_name,
974         check_omp_nesting_restrictions, check_combined_parallel,
975         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
976         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
977         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
978         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
979         Likewise.
980         * opts-common.c (prune_options): Likewise.
981         * opts.c (add_input_filename, print_filtered_help,
982         get_option_state): Likewise.
983         * params.c (add_params): Likewise.
984         * passes.c (set_pass_for_id, next_pass_1,
985         do_per_function_toporder, pass_fini_dump_file): Likewise.
986         * postreload.c (reload_cse_simplify_operands): Likewise.
987         * predict.c (tree_predicted_by_p, tree_predict_edge,
988         clear_bb_predictions, combine_predictions_for_bb): Likewise.
989
990 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
991
992         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
993         warnings.
994         * recog.c (check_asm_operands, validate_change_1): Likewise.
995         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
996         subst_asm_stack_regs): Likewise.
997         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
998         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
999         * regmove.c (reg_is_remote_constant_p): Likewise.
1000         * regrename.c (regrename_optimize, scan_rtx_reg,
1001         kill_clobbered_value, kill_set_value, kill_autoinc_value):
1002         Likewise.
1003         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
1004         regstat_compute_calls_crossed): Likewise.
1005         * reload1.c (init_reload, new_insn_chain,
1006         has_nonexceptional_receiver, reload, copy_reloads,
1007         calculate_needs_all_insns, init_elim_table): Likewise.
1008         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
1009         * rtl.c (shallow_copy_rtx_stat): Likewise.
1010         * rtlanal.c (parms_set): Likewise.
1011         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
1012         sbitmap_resize, sbitmap_vector_alloc): Likewise.
1013         * sched-ebb.c (earliest_block_with_similiar_load,
1014         add_deps_for_risky_insns): Likewise.
1015         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
1016         schedule_region): Likewise.
1017         * see.c (eq_descriptor_pre_extension,
1018         hash_descriptor_pre_extension, hash_del_pre_extension,
1019         eq_descriptor_properties, hash_descriptor_properties,
1020         hash_del_properties, see_seek_pre_extension_expr,
1021         see_initialize_data_structures, see_print_register_properties,
1022         see_print_pre_extension_expr, see_delete_merged_def_extension,
1023         see_delete_unmerged_def_extension, see_emit_use_extension,
1024         see_pre_delete_extension, see_map_extension, see_commit_changes,
1025         see_analyze_merged_def_local_prop,
1026         see_analyze_merged_def_local_prop,
1027         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
1028         see_set_prop_merged_def, see_set_prop_unmerged_def,
1029         see_set_prop_unmerged_use, see_print_one_extension,
1030         see_merge_one_use_extension, see_merge_one_def_extension,
1031         see_store_reference_and_extension, see_update_uses_relevancy,
1032         see_update_defs_relevancy): Likewise.
1033         * statistics.c (hash_statistics_hash, hash_statistics_eq,
1034         hash_statistics_free, curr_statistics_hash): Likewise.
1035         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
1036         expand_asm_operands, expand_return, case_bit_test_cmp,
1037         expand_case): Likewise.
1038         * stor-layout.c (start_record_layout): Likewise.
1039         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
1040         gt_pch_save_stringpool): Likewise.
1041         * tree-data-ref.c (hash_stmt_vertex_info,
1042         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
1043         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
1044
1045 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
1046
1047         PR target/36627
1048         * config/i386/i386.md : Change constraints of HImode and QImode
1049         immediate operands from "i" to "n".  Change SImode "ni" constraint to
1050         "i" and SImode "rmi" constraint to "g".  Remove all constraints
1051         from const0_operand and const1_operand predicated operands.
1052         (i): Change QImode and HImode attribute from "i" to "n".
1053         (*subqi_2): Change HImode operands to QImode.
1054         (*subqi_3): Ditto.
1055
1056 2008-06-25  Olivier Hainque  <hainque@adacore.com>
1057
1058         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
1059         sed substitutions.
1060
1061 2008-06-25  Richard Guenther  <rguenther@suse.de>
1062
1063         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
1064         not overflow the result type.
1065
1066 2008-06-25  Richard Guenther  <rguenther@suse.de>
1067
1068         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
1069         (vn_lookup): Likewise.
1070
1071 2008-06-25  Richard Guenther  <rguenther@suse.de>
1072
1073         PR tree-optimization/35518
1074         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
1075         * tree-sra.c (instantiate_element): Use fold_build3 to build
1076         BIT_FIELD_REFs.
1077         (try_instantiate_multiple_fields): Likewise.
1078
1079 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1080
1081         * config/rs6000/rs6000.md: Change all string instruction's clobber to
1082         be early clobbers.
1083
1084 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1085
1086         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
1087         use_backchain_to_restore_sp to true
1088         if the offset of the link register save area would go over the 32k - 1
1089         offset limit of the load
1090         instructions.
1091
1092 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
1093
1094         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
1095         anchor for the type-punning blurb.  Cross-reference "Structures
1096         unions enumerations and bit-fields implementation".  Provide a
1097         cast-through-pointer example.  Make final sentence self-contained.
1098         * doc/implement-c.texi (Structures unions enumerations and
1099         bit-fields implementation): Cross-reference the type-punning blurb
1100         in the -fstrict-aliasing documentation.
1101
1102 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1103
1104         PR middle-end/36594
1105         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
1106         the memory instead of the memory itself for the save area.
1107
1108 2008-06-24  Olivier Hainque  <hainque@adacore.com>
1109             Nicolas Roche  <roche@adacore.com>
1110
1111         * gengtype.c (srcdir_len): size_t instead of int.
1112         (get_file_realbasename): New function.  For F a filename, the real
1113         basename of F, with all the path components stripped.
1114         (get_file_srcdir_relative_path): New function.  For F a filename, the
1115         relative path to F from $(srcdir).
1116         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
1117         get_file_realbasename.  Adjust the head comment.
1118         (get_prefix_langdir_index): New function. For F a filename, return the
1119         lang_dir_names[] relative index of the language directory that is
1120         a prefix in F.
1121         (get_file_langdir): For F a filename, return the name of the language
1122         directory where F is located.
1123         (get_file_gtfilename): New function. The gt- output file name for an
1124         input filename F.
1125         (get_output_file_with_visibility): Replace in-line computations with
1126         uses of get_file_gtfilename and get_prefix_langdir_index.
1127         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
1128
1129 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
1130
1131         PR tree-optimization/36504
1132         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
1133         references without base address.
1134
1135 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1136
1137         PR middle-end/36584
1138         * calls.c (expand_call): Increase alignment for recursive functions.
1139
1140 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
1141
1142         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
1143         (TARGET_FUNCTION_VALUE): New define.
1144         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
1145         * config/avr/avr.h (FUNCTION_VALUE): Remove.
1146
1147 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1148
1149         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
1150         (fmod<mode>3): Ditto.
1151         (remainderxf3): Ditto.
1152         (remainder<mode>3): Ditto.
1153
1154 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
1155
1156         PR target/36533
1157         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
1158         REG is a hard register.
1159
1160         PR tree-optimization/36508
1161         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
1162         499, don't check it at all in release compilers.
1163
1164 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1165
1166         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
1167         together with SSE_TARGET_MATH to disable insn pattern.
1168         (*fop_<MODEF:mode>_2_i387): Ditto.
1169         (*fop_<MODEF:mode>_3_i387): Ditto.
1170
1171 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
1172
1173         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
1174         
1175 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1176
1177         PR middle-end/34906
1178         * gimplify.c (gimplify_asm_expr): Check the return code of
1179         parse_output_constraint call, set function return and is_inout
1180         value if it failed.
1181
1182 2008-06-22  Ian Lance Taylor  <iant@google.com>
1183
1184         * c-lex.c (narrowest_unsigned_type): Change itk to int.
1185         (narrowest_signed_type): Likewise.
1186         * c-typeck.c (c_common_type): Change local variable mclass to enum
1187         mode_class, twice.
1188         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
1189         tcc_comparison, not the tree code itself.
1190         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
1191         (c_expand_expr): Cast modifier to enum expand_modifier.
1192         * c-common.h (C_RID_CODE): Add casts.
1193         (C_SET_RID_CODE): Define.
1194         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
1195         (c_lex_one_token): Add cast to avoid warning.
1196         (c_parser_objc_type_name): Rename local typename to type_name.
1197         (check_no_duplicate_clause): Change code parameter to enum
1198         omp_clause_code.
1199         (c_parser_omp_var_list_parens): Change kind parameter to enum
1200         omp_clause_code.
1201         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
1202         c_parser_omp_list_var_parens.
1203         (c_parser_omp_threadprivate): Likewise.
1204         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
1205         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
1206         * c-format.c (NO_FMT): Define.
1207         (printf_length_specs): Use NO_FMT.
1208         (asm_fprintf_length_specs): Likewise.
1209         (gcc_diag_length_specs): Likewise.
1210         (scanf_length_specs): Likewise.
1211         (strfmon_length_specs): Likewise.
1212         (gcc_gfc_length_specs): Likewise.
1213         (printf_flag_specs): Change 0 to STD_C89.
1214         (asm_fprintf_flag_specs): Likewise.
1215         (gcc_diag_flag_specs): Likewise.
1216         (gcc_cxxdiag_flag_specs): Likewise.
1217         (scanf_flag_specs): Likewise.
1218         (strftime_flag_specs): Likewise.
1219         (strfmon_flag_specs): Likewise.
1220         (print_char_table): Likewise.
1221         (asm_fprintf_char_table): Likewise.
1222         (gcc_diag_char_table): Likewise.
1223         (gcc_tdiag_char_table): Likewise.
1224         (gcc_cdiag_char_table): Likewise.
1225         (gcc_cxxdiag_char_table): Likewise.
1226         (gcc_gfc_char_table): Likewise.
1227         (scan_char_table): Likewise.
1228         (time_char_table): Likewis.
1229         (monetary_char_table): Likewise.
1230         * c-format.h (BADLEN): Likewise.
1231
1232 2008-06-21  Ian Lance Taylor  <iant@google.com>
1233
1234         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
1235         Define END_OF_BASE_TREE_CODES around inclusion.
1236         * tree.c (tree_code_type): New global array.
1237         (tree_code_length, tree_code_name): Likewise.
1238         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
1239         $(lang_tree_files).
1240         (all-tree.def, s-alltree): New targets.
1241         (gencheck.h, s-gencheck): Remove.
1242         (tree.o): Depend upon all-tree.def.
1243         (build/gencheck.o): Remove gencheck.h dependency.
1244         (mostlyclean): Don't remove gencheck.h.
1245         * c-common.h (enum c_tree_code): Remove.
1246         * c-lang.c (tree_code_type): Remove.
1247         (tree_code_length, tree_code_name): Remove.
1248         * gencheck.c (tree_codes): Include all-tree.def, rather than
1249         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
1250         after it is used.
1251         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
1252         than tree.def.
1253         * cp/cp-tree.h (enum cplus_tree_code): Remove.
1254         (operator_name_info): Size to MAX_TREE_CODES.
1255         (assignment_operator_name_info): Likewise.
1256         * cp/cp-lang.c (tree_code_type): Remove.
1257         (tree_code_length, tree_code_name): Remove.
1258         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
1259         (assignment_operator_name_info): Likewise.
1260         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
1261         MAX_TREE_CODES.
1262         * cp/mangle.c (write_expression): Likewise.
1263         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
1264         * fortran/f95-lang.c (tree_code_type): Remove.
1265         (tree_code_length, tree_code_name): Remove.
1266         * java/java-tree.h (enum java_tree_code): Remove.
1267         * java/lang.c (tree_code_type): Remove.
1268         (tree_code_length, tree_code_name): Remove.
1269         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
1270         * objc/objc-act.h (enum objc_tree_code): Remove.
1271         * objc/objc-lang.c (tree_code_type): Remove.
1272         (tree_code_length, tree_code_name): Remove.
1273         * objcp/objcp-lang.c (tree_code_type): Remove.
1274         (tree_code_length, tree_code_name): Remove.
1275         * ada/ada-tree.h (enum gnat_tree_code): Remove.
1276         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
1277         * ada/misc.c (tree_code_type): Remove.
1278         (tree_code_length, tree_code_name): Remove.
1279
1280 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1281
1282         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
1283         the grand_bitmap_obstack.
1284
1285 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1286
1287         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
1288         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
1289         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
1290         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
1291         move_stmt_r, new_label_mapper): Likewise.
1292         * tree-complex.c (cvc_lookup): Likewise.
1293         * tree-dfa.c (create_function_ann): Likewise.
1294         * tree-dump.c (dump_register): Likewise.
1295         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
1296         find_phi_replacement_condition): Likewise.
1297         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
1298         tree_function_versioning): Likewise.
1299         * tree-into-ssa.c (cmp_dfsnum): Likewise.
1300         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
1301         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
1302         get_nonlocal_debug_decl, convert_nonlocal_reference,
1303         convert_nonlocal_omp_clauses, get_local_debug_decl,
1304         convert_local_reference, convert_local_omp_clauses,
1305         convert_nl_goto_reference, convert_nl_goto_receiver,
1306         convert_tramp_reference, convert_call_expr): Likewise.
1307         * tree-outof-ssa.c (contains_tree_r): Likewise.
1308         * tree-parloops.c (reduction_phi, initialize_reductions,
1309         eliminate_local_variables_1, add_field_for_reduction,
1310         add_field_for_name, create_phi_for_local_result,
1311         create_call_for_reduction_1, create_loads_for_reductions,
1312         create_stores_for_reduction, create_loads_and_stores_for_name):
1313         Likewise.
1314         * tree-phinodes.c (allocate_phi_node): Likewise.
1315         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
1316         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
1317         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
1318         * tree-ssa-coalesce.c (compare_pairs): Likewise.
1319         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
1320         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
1321         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
1322         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
1323         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
1324         vn_nary_op_insert): Likewise.
1325         * tree-ssa.c (redirect_edge_var_map_add,
1326         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
1327         * tree-vectorizer.c (vectorize_loops): Likewise.
1328         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
1329         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
1330         tree_cons_stat, build1_stat, build_variant_type_copy,
1331         decl_init_priority_lookup, decl_fini_priority_lookup,
1332         decl_priority_info, decl_restrict_base_lookup,
1333         decl_restrict_base_insert, decl_debug_expr_lookup,
1334         decl_debug_expr_insert, decl_value_expr_lookup,
1335         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
1336         type_hash_add, get_file_function_name, tree_check_failed,
1337         tree_not_check_failed, tree_range_check_failed,
1338         omp_clause_range_check_failed, build_omp_clause,
1339         build_vl_exp_stat): Likewise.
1340         * value-prof.c (gimple_histogram_value,
1341         gimple_duplicate_stmt_histograms): Likewise.
1342         * var-tracking.c (attrs_list_insert, attrs_list_copy,
1343         unshare_variable, variable_union_info_cmp_pos, variable_union,
1344         dataflow_set_different_1, dataflow_set_different_2,
1345         vt_find_locations, variable_was_changed, set_variable_part,
1346         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
1347         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
1348         section_entry_hash, object_block_entry_eq,
1349         object_block_entry_hash, create_block_symbol,
1350         initialize_cold_section_name, default_function_rodata_section,
1351         strip_reg_name, set_user_assembler_name, const_desc_eq,
1352         build_constant_desc, output_constant_def, lookup_constant_def,
1353         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
1354         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
1355         default_internal_label): Likewise.
1356         * varray.c (varray_init, varray_grow): Likewise.
1357         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
1358
1359 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
1360
1361         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
1362         operators for "test" insn.  Macroize insn using SWI mode macro.
1363         (*jcc_fused_2): Ditto.
1364         (*jcc_fused_3): Macroize insn using SWI mode macro.
1365         (*jcc_fused_4): Ditto.
1366
1367 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
1368
1369         * tree-ssa-pre.c: Fix typo in comment.
1370         (init_antic, fini_antic): Add explicit funtions for
1371         initializing and deinitializing ANTIC and AVAIL sets.
1372         (create_expression_by_pieces): Fix typo in comment.
1373         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
1374         (execute_pre): Eventually dump details about ANTIC_IN.
1375
1376 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1377
1378         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
1379         * gcc.c (translate_options, init_spec, store_arg, read_specs,
1380         add_to_obstack, file_at_path, find_a_file, execute,
1381         add_preprocessor_option, add_assembler_option, add_linker_option,
1382         process_command, insert_wrapper, do_option_spec, do_self_spec,
1383         spec_path, do_spec_1, is_directory, main, used_arg,
1384         getenv_spec_function): Likewise.
1385         * tlink.c (symbol_hash_lookup, file_hash_lookup,
1386         demangled_hash_lookup, symbol_push, file_push, frob_extension):
1387         Likewise.
1388
1389 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1390
1391         * doc/rtl.texi: Updated subreg section.
1392
1393 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
1394
1395         PR c++/36523
1396         * cgraphunit.c (cgraph_process_new_functions): Don't clear
1397         node->needed and node->reachable.
1398         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
1399         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
1400         (expand_task_call): Don't call expand_task_copyfn.
1401         (expand_task_copyfn): Renamed to...
1402         (finalize_task_copyfn): ... this.
1403
1404 2008-06-19  Jan Hubicka  <jh@suse.cz>
1405
1406         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
1407         clobbering framepointer.
1408
1409 2008-06-19  Jan Hubicka  <jh@suse.cz>
1410
1411         * tree-optimize.c (execute_early_local_optimizations): Set
1412         cgraph_state only at first invocation.
1413
1414 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1415
1416         * system.h (-Wc++-compat): Activate as a warning, no an error.
1417
1418 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
1419
1420         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
1421         instead of "#" in insn asm template.
1422         (*jcc_fused_2): Ditto.
1423
1424 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
1425
1426         * config/i386/i386.h (ix86_tune_indices)
1427         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
1428         (TARGET_FUSE_CMP_AND_BRANCH): New define.
1429         * config/i386/i386.md (*jcc_fused_1): New insn pattern
1430         (*jcc_fused_2): Ditto.
1431         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
1432         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
1433         (print operand): Handle 'E' and 'e' code.
1434
1435 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
1436
1437         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
1438         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1439         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1440
1441 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
1442
1443         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
1444         node->decl.
1445         (cgraph_expand_function): Use local copy of decl.
1446         (cgraph_expand_all_functions): Remove redundant initialization of
1447         order_pos.
1448         (cgraph_optimize): Reword internal_error message.
1449
1450 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
1451
1452         * arm-protos.h (arm_return_in_memory): Remove public
1453         arm_return_in_memory() prototype.
1454         * arm.c (arm_return_in_memory): Add static prototype, add target
1455         hook macro, change definition and comments.
1456         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
1457
1458 2008-06-19  Ben Elliston  <bje@au.ibm.com>
1459
1460         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
1461         real.c: Remove references to IEEE 754R.
1462         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
1463         * doc/libgcc.texi (Decimal float library routines): Likewise.
1464
1465 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1466
1467         * targhooks.h (struct gcc_target): New member unwind_word_mode.
1468         (default_unwind_word_mode): Add prototype.
1469         * targhooks.c (default_unwind_word_mode): New function.
1470         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
1471         instead of word_mode.
1472         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
1473         (TARGET_INITIALIZER): Use it.
1474
1475         * c-common.c (handle_mode_attribute): Support "unwind_word"
1476         mode attribute.
1477         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
1478
1479         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
1480         word_mode to access SjLj_Function_Context member "data".
1481         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
1482         conversion from targetm.eh_return_filter_mode () to
1483         targetm.unwind_word_mode () if they differ.
1484
1485         * builtin-types.def (BT_UNWINDWORD): New primitive type.
1486         (BT_FN_UNWINDWORD_PTR): New function type.
1487         (BT_FN_WORD_PTR): Remove.
1488         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
1489         * except.c (expand_builtin_extend_pointer): Convert pointer to
1490         targetm.unwind_word_mode () instead of word_mode.
1491
1492         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
1493         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
1494         (spu_unwind_word_mode): New function.
1495         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
1496         (TARGET_UNWIND_WORD_MODE): Define.
1497         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
1498
1499 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1500
1501         * config/spu/spu.c (reg_align): Remove.
1502         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
1503         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
1504         (spu_split_store): Likewise.
1505
1506 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
1507
1508         * gcc/tree-vn.c: Fix typo in comment.
1509
1510 2008-06-18  Jan Hubicka  <jh@suse.cz>
1511
1512         * cgraphunit.c (cgraph_optimize): Output debug info when doing
1513         toplevel reorder too.
1514
1515 2008-06-18  Jan Hubicka  <jh@suse.cz>
1516
1517         * c-opts.c (c_common_post_options): PCH is not compatible with
1518         no-unit-at-a-time.
1519         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
1520         -fno-toplevel-reorder by default now.
1521
1522 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1523
1524         PR documentation/30739
1525         * doc/install.texi (Prerequisites): Document dependency on awk.
1526
1527 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
1528             Ian Lance Taylor  <iant@google.com>
1529
1530         PR rtl-optimization/35604
1531         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
1532         only want to change jump destinations, not eventual label comparisons.
1533
1534 2008-06-16  Jan Hubicka  <jh@suse.cz>
1535
1536         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
1537         syntax errors.
1538         (cgraph_analyze_function): Likewise.
1539
1540 2008-06-16  Jan Hubicka  <jh@suse.cz>
1541
1542         * cgraph.h (cgraph_mark_if_needed): New function.
1543         * cgraphunit.c (cgraph_mark_if_needed): New function.
1544         * c-decl.c (duplicate_decl): Use it.
1545
1546 2008-06-16  Jan Hubicka  <jh@suse.cz>
1547
1548         * cgraph.c (cgraph_add_new_function): When in expansion state, do
1549         lowering.
1550
1551 2008-06-16  Jan Hubicka  <jh@suse.cz>
1552
1553         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
1554
1555 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
1556             Kazu Hirata  <kazu@codesourcery.com>
1557             Maxim Kuvyrkov  <maxim@codesourcery.com
1558
1559         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
1560         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
1561         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
1562         EXTRA_SPEC_FUNCTIONS.
1563         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
1564         (DRIVER_SELF_SPECS): Adjust.
1565         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
1566         * config/mips/st.h, config/mips/t-st: New.
1567         * config/mips/driver-native.c, config/mips/x-native: New.
1568         * doc/invoke.texi (MIPS): Document 'native' value for -march and
1569         -mtune options.
1570
1571 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1572
1573         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
1574         from it.
1575         (ISA_HAS_FP_CONDMOVE): New macro.
1576         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
1577         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
1578         (ISA_HAS_NMADD3_NMSUB3): New macro.
1579         * config/mips/mips.c (mips_rtx_costs): Update.
1580         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
1581         compiling for ST Loongson 2E/2F.
1582         (madd<mode>): Rename to madd4<mode>.  Update.
1583         (madd3<mode>): New pattern.
1584         (msub<mode>): Rename to msub4<mode>.  Update.
1585         (msub3<mode>): New pattern.
1586         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
1587         (nmadd3<mode>): New pattern.
1588         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
1589         (nmadd3<mode>_fastmath): New pattern.
1590         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
1591         (nmsub3<mode>): New pattern.
1592         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
1593         (nmsub3<mode>_fastmath): New pattern.
1594         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
1595
1596 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
1597
1598         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
1599         (DF_REF_INSN_INFO): New.
1600         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
1601         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
1602         with a NULL DF_REF_INSN_INFO.
1603         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
1604         DF_INSN_SET.
1605         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
1606         DF_INSN_INFO_EQ_USES): New.
1607         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
1608         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
1609         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
1610         * df-core.c: Update comment for above changes.
1611         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
1612         DF_INSN_UID_* macros.
1613         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
1614         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
1615         insn rtx.  Update all callers.
1616         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
1617         df_ref_create_structure, df_insn_refs_collect): Likewise.
1618         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
1619         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
1620         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
1621         macros to access the insn refs.
1622         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
1623         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
1624         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
1625         for accessing the refs.
1626         (try_fwprop_subst): Likewise.
1627         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
1628         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
1629         for accessing the refs.
1630         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
1631         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
1632         to look at the insn refs.
1633         (record_uses): Likewise.
1634         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
1635         function anymore.
1636         (mark_artificial_uses): Don't mark_insn for artificial refs.
1637         (mark_reg_rependencies): Likewise.
1638
1639         * doc/rtl.texi: Remove documentation of ADDRESSOF.
1640
1641 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1642
1643         * configure: Regenerate.
1644
1645 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1646
1647         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
1648         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1649         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1650
1651 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1652
1653         * config/avr/avr.c (avr_mcu_t): Add attiny167.
1654         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1655         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1656
1657 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1658
1659         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
1660         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1661         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1662
1663 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1664
1665         * tree-ssa-sccvn.c: Fix format of comments.
1666
1667 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1668
1669         * cgraph.c: Remove unneeded forward declarations of eq_node()
1670         and hash_node().
1671
1672 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
1673
1674         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
1675         REG_RETVAL notes.
1676         (see_update_relevancy): Likewise.
1677         * fwprop.c (try_fwprop_subst): Likewise.
1678         * rtlanal.c (noop_move_p): Likewise.
1679         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
1680         notes to non-existing libcall blocks.
1681         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
1682         Remove orig_set.
1683         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
1684         (dead_libcall_p): Remove.
1685         (delete_trivially_dead_insns): Don't use it.
1686         * web.c (union_defs): Remove comment about keeping nops.
1687         * gcse.c (hash_scan_insn): Don't take libcall pointers.
1688         (compute_hash_table_work): Don't track libcall notes.
1689         (do_local_cprop): Don't take libcall pointers.  Don't update
1690         libcall notes.
1691         (adjust_libcall_notes): Deleted.
1692         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
1693         ever have existed in the first place).
1694         (replace_store_insn): Don't try to remove libcall notes.
1695         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
1696         (resolve_reg_notes): Don't call them.
1697         (resolve_simple_move): Likewise.
1698         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
1699         Don't remove REG_RETVAL notes.
1700         * emit-rtl.c (try_split): Don't update libcall notes.
1701         (emit_copy_of_insn_after): Dito.
1702         * cselib.c (cselib_current_insn_in_libcall): Remove.
1703         (cselib_process_insn): Don't set/clear it.
1704         (new_elt_loc_list): Don't record it.
1705         (cselib_init): Don't initialize it.
1706         * cselib.c (struct elt_loc_list): Remove in_libcall field.
1707         * loop-invariant.c (find_invariant_insn): Don't look for libcall
1708         notes.
1709         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
1710         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
1711         (init_deps): Don't initialize it.
1712         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
1713         * combine.c (delete_noop_moves): Don't update libcall notes.
1714         (can_combine_p): Remove now pointless #if 0 block.
1715         (try_combine): Remove another obsolete #if 0 block.
1716         (distribute_notes): Don't distribute libcall notes.
1717         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
1718         * dce.c (libcall_dead_p): Remove.
1719         (delete_unmarked_insns): Don't handle libcall blocks.
1720         (preserve_libcall_for_dce): Remove.
1721         (prescan_insns_for_dce): Don't special-case libcall block insns.
1722         * reload1 (reload): Don't handle libcall notes. 
1723         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
1724         documentation.
1725
1726 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1727
1728         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
1729         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1730         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1731
1732 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1733
1734         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
1735         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1736         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1737
1738 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1739
1740         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
1741
1742 2008-06-16  Ira Rosen  <irar@il.ibm.com>
1743
1744         PR tree-optimization/36493
1745         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1746         the arguments list. Use VECTYPE to create vector pointer.
1747         (vectorizable_store): Fail if accesses through a pointer to vectype
1748         do not alias the original memory reference operands.
1749         Call vect_create_data_ref_ptr without the removed argument.
1750         (vectorizable_load): Likewise.
1751         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1752         removed argument.
1753
1754 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
1755
1756         PR target/36336
1757         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
1758         reg_equiv_constant.
1759
1760 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1761
1762         * config/mips/loongson2ef.md: New file.
1763         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1764         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1765         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1766         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1767         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1768         and loongson_2f.
1769         (loongson2ef.md): New include.
1770         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1771         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1772         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1773         (loongson_gt_<mode>, loongson_extract_halfword)
1774         (loongson_insert_halfword_0, loongson_insert_halfword_2)
1775         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1776         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1777         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1778         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1779         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1780         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1781         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1782         (vec_interleave_low<mode>): Define type attribute.
1783         * config/mips/mips.c (mips_ls2): New static variable.
1784         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1785         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1786         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1787         Implement target scheduling hooks.
1788         (mips_multipass_dfa_lookahead): Update to handle tuning for
1789         Loongson 2E/2F.
1790         (mips_sched_init): Initialize data for Loongson scheduling.
1791         (mips_ls2_variable_issue): New static function.
1792         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1793         Add sanity check.
1794         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1795         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1796         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1797         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1798         Handle ST Loongson 2E/2F cores.
1799         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1800
1801 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1802
1803         * omp-low.c (extract_omp_for_data): Fix comment typo.
1804         * c.opt: Fix typo.
1805
1806 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1807
1808         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1809         FIXME note about gcc/config.guess.
1810         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1811         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1812         * doc/cppopts.texi: Likewise.
1813         * doc/extend.texi: Likewise.
1814         * doc/gcc.texi: Likewise.
1815         * doc/gccint.texi: Likewise.
1816         * doc/gcov.texi: Likewise.
1817         * doc/gty.texi: Likewise.
1818         * doc/hostconfig.texi: Likewise.
1819         * doc/install.texi: Likewise.
1820         * doc/invoke.texi: Likewise.
1821         * doc/loop.texi: Likewise.
1822         * doc/makefile.texi: Likewise.
1823         * doc/md.texi: Likewise.
1824         * doc/passes.texi: Likewise.
1825         * doc/tm.texi: Likewise.
1826         * doc/tree-ssa.texi: Likewise.
1827         * doc/trouble.texi: Likewise.
1828
1829 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1830             Nathan Sidwell  <nathan@codesourcery.com>
1831             Maxim Kuvyrkov  <maxim@codesourcery.com>
1832             Richard Sandiford  <rdsandiford@googlemail.com>
1833         
1834         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1835         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1836         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1837         builtins.
1838         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1839         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1840         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1841         V8QImode cases.
1842         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1843         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1844         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1845         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1846         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1847         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1848         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1849         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1850         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1851         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1852         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1853         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1854         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1855         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1856         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1857         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1858         (mips_builtins): Add Loongson builtins.
1859         (mips_loongson_2ef_bdesc): New.
1860         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1861         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1862         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1863         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1864         New.
1865         (mips_expand_vector_init): New.
1866         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1867         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1868         if appropriate.
1869         * config/mips/mips.md: Add unspec numbers for Loongson
1870         builtins.  Include loongson.md.
1871         (MOVE64): Include Loongson vector modes.
1872         (SPLITF): Include Loongson vector modes.
1873         (HALFMODE): Handle Loongson vector modes.
1874         * config/mips/loongson.md: New.
1875         * config/mips/loongson.h: New.
1876         * config.gcc: Add loongson.h header for mips*-*-* targets.
1877         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1878
1879 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1880
1881         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1882         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1883         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1884         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1885         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1886         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1887         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1888         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1889         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1890         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1891         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1892         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1893         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1894         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1895         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1896         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1897         Remove use_fixproto=yes.
1898         (ia64*-*-hpux*): Remove comment about using fixproto.
1899         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1900
1901 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1902
1903         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1904         library rebuilds.
1905         * configure: Regenerate.
1906
1907 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1908
1909         PR middle-end/36520
1910         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1911         before evaluating it.
1912
1913 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1914
1915         PR c/36507
1916         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1917         nested inline functions.
1918         (start_decl, start_function): Don't invert DECL_EXTERNAL
1919         for nested inline functions.
1920
1921 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1922
1923         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1924         splits that must be made for correctness.
1925
1926 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1927
1928         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1929         (AVAIL_NON_MIPS16): Likewise.
1930         (mips_builtin_description): Replace target_flags with a predicate.
1931         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1932         (dspr2_32): New availability predicates.
1933         (MIPS_BUILTIN): New macro.
1934         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1935         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1936         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1937         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1938         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1939         (mips_dsp_32only_bdesc): Merge into...
1940         (mips_builtins): ...this new array.
1941         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1942         (mips_init_builtins): Update after above changes.
1943         (mips_expand_builtin_1): Merge into...
1944         (mips_expand_builtin): ...here and update after above changes.
1945
1946 2008-06-12  Paul Brook  <paul@codesourcery.com>
1947
1948         * longlong.h (__arm__): Define count_leading_zeros.
1949         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1950         (clzsi2, clzdi2): New functions.
1951         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1952         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1953         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1954         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1955         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1956         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1957         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1958         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1959         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1960         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1961
1962 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1963
1964         * config/m68k/m68k.c (m68k_tune_flags): New.
1965         (override_options): Compute m68k_tune_flags.
1966         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1967         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1968
1969 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1970
1971         PR middle-end/36506
1972         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1973
1974 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1975
1976         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1977         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1978
1979 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1980
1981         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1982         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1983
1984 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1985
1986         PR middle-end/36506
1987         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1988         reductions.
1989
1990 2008-06-12  Richard Guenther  <rguenther@suse.de>
1991
1992         PR tree-optimization/36345
1993         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1994         add memory_tag_needed flag.
1995         (may_alias_p): Declare.
1996         * tree-ssa-alias.c (may_alias_p): Export.
1997         (set_initial_properties): Use memory_tag_needed flag.
1998         (update_reference_counts): Likewise.
1999         (reset_alias_info): Reset memory_tag_needed flag.
2000         (create_name_tags): Check memory_tag_needed flag.
2001         (dump_points_to_info_for): Dump it.
2002         * tree-ssa-structalias.c (struct variable_info): Remove
2003         directly_dereferenced flag.
2004         (new_var_info): Do not initialize it.
2005         (process_constraint_1): Do not set it.
2006         (update_alias_info): Set is_dereferenced flag.
2007         (set_uids_in_ptset): Use may_alias_p.
2008         (set_used_smts): Check memory_tag_needed flag.
2009         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
2010         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
2011         memory_tag_needed flag.
2012         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
2013         from broken design.
2014
2015 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
2016
2017         * config/i386/i386.c (ix86_compute_frame_layout): Disable
2018         red zone for w64 abi.
2019         (ix86_expand_prologue): Likewise.
2020         (ix86_force_to_memory): Likewise.
2021         (ix86_free_from_memory): Likewise.
2022
2023 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
2024
2025         PR target/36425
2026         * config/rs6000/rs6000.c (rs6000_override_options): Set
2027         rs6000_isel conditionally to the absence of comand line override.
2028         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2029         Remove duplicate rs6000_isel setting.
2030         * config/rs6000/eabispe.h: Ditto.
2031
2032 2008-06-11  Richard Guenther  <rguenther@suse.de>
2033
2034         * alias.c (get_alias_set): Use the element alias-set for arrays.
2035         (record_component_aliases): For arrays and vectors do nothing.
2036         * c-common.c (strict_aliasing_warning): Handle the cases
2037         of alias set zero explicitly.
2038         * Makefile.in (dfp.o-warn): Add -Wno-error.
2039
2040 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
2041
2042         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
2043         tune_32 tune_64.
2044         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
2045         tune_32 tune_64 to supported_defaults.  Allow values not
2046         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
2047         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
2048         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
2049         with_cpu_64 to generic for 64-bit-supporting configurations, not
2050         with_cpu.  Remove FIXMEs.
2051         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
2052         --with-arch-64, --with-tune-32, --with-tune-64): Document.
2053         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
2054         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
2055         arch_32 and arch_64.
2056
2057 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2058             Olivier Hainque  <hainque@adacore.com>
2059
2060         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
2061         Use DECL_SIZE_UNIT to retrieve the size of the field.
2062
2063 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
2064
2065         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
2066         with function calls after declarations.  Lay out
2067         neon_float_type_node before further use.
2068
2069 2008-06-11  Richard Guenther  <rguenther@suse.de>
2070
2071         * tree-flow.h (may_point_to_global_var): Declare.
2072         * tree-ssa-alias.c (may_point_to_global_var): New function.
2073         * tree-ssa-sink.c (is_hidden_global_store): Use it.
2074
2075 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
2076
2077         * configure.ac: Teach that fido supports .debug_line.
2078         * configure: Regenerate.
2079
2080 2008-06-10  Tom Tromey  <tromey@redhat.com>
2081
2082         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
2083         debug hook.
2084
2085 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
2086
2087         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
2088         (encode_decimal64, decode_decimal64, encode_decimal128,
2089         decode_decimal128): Reverse order of 32-bit parts of value if host
2090         and target endianness differ.
2091
2092 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
2093
2094         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
2095         Avoid division by 0.
2096         (tree_mod_pow2_value_transform): Likewise.
2097         (tree_ic_transform): Likewise.
2098         (tree_stringops_transform): Likewise.
2099         (tree_mod_subtract_transform): Likewise.
2100         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
2101         (copy_edges_for_bb): Likewise.
2102         (initialize_cfun): Likewise.
2103
2104 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2105
2106         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
2107         nonmemory_operand. Add "N" operand constraint.
2108         (*btsi): Ditto.
2109         (*jcc_btdi_mask_rex64): New instruction and split pattern.
2110         (*jcc_btsi_mask): Ditto.
2111         (*jcc_btsi_mask_1): Ditto.
2112
2113 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
2114
2115         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
2116         TYPE_CANONICAL for copied element type.
2117
2118 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2119
2120         PR target/36473
2121         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
2122         Add m_CORE2 and m_GENERIC.
2123         * config/i386/predicates.md (bt_comparison_operator): New predicate.
2124         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
2125         (*btsi): Ditto.
2126         (*jcc_btdi_rex64): New instruction and split pattern.
2127         (*jcc_btsi): Ditto.
2128         (*jcc_btsi_1): Ditto.
2129         (*btsq): Fix Intel asm dialect operand order.
2130         (*btrq): Ditto.
2131         (*btcq): Ditto.
2132
2133 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
2134
2135         PR middle-end/36447
2136         * simplify-rtx.c (simplify_subreg): Add check for shift count 
2137         greater than size.
2138
2139 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
2140
2141         * doc/md.texi: Synchronize with later constraints.md change.
2142         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
2143         with a C implementation.
2144         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
2145         MFLO handling.
2146         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
2147         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
2148         when moving to and from MD_REGNUM.
2149         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
2150         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
2151         Handle byte and halfword moves.
2152         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
2153         separately.
2154         * config/mips/constraints.md (h): Turn into NO_REGS.
2155         (l, x): Update documentation.
2156         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
2157         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
2158         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
2159         (HILO): New mode iterator.
2160         (MOVE128): Add TI.
2161         (any_div): New code iterator.
2162         (u): Extend code attribute to div and udiv.
2163         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
2164         d_operand in the splitters.  Remove redundant CONST_INT checks.
2165         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
2166         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
2167         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
2168         accordingly, using normal moves instead of unspecs to move LO into
2169         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
2170         (<u>mulsidi3): Handle expansion in C code.
2171         (<u>mulsidi3_32bit_internal): Rename to...
2172         (<u>mulsidi3_32bit): ...this.
2173         (<u>mulsidi3_32bit_r4000): Fix insn separator.
2174         (*<u>mulsidi3_64bit): Rename to...
2175         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
2176         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
2177         to set LO and HI to the multiplication result.  Use a normal move
2178         for MFLO and an unspec for MFHI.
2179         (*<u>mulsidi3_64bit_parts): Replace with...
2180         (<u>mulsidi3_64bit_hilo): ...this new instruction.
2181         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
2182         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
2183         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
2184         instead of HI.  Split the instruction into a separate multiplication
2185         and MFHI if !TARGET_FIX_R4000.
2186         (<su>muldi3_highpart): Likewise.
2187         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
2188         and the "=h" clobber.
2189         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
2190         (<u>mulditi3): New expander.
2191         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
2192         (madsi): Remove "=h" clobber.
2193         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
2194         Force the modulus result to be a GPR and split the instruction into
2195         a division followed by an MFHI after reload.
2196         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
2197         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
2198         the MIPS16 HIGH define_split.
2199         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
2200         of acc<->gpr moves to "multi".
2201         (*movdi_64bit): Replace the single "x" alternative with
2202         alternatives for moving into and out of "a".
2203         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
2204         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
2205         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
2206         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
2207         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
2208         (movti): New expander.
2209         (*movti, *movti_mips16): New insns.
2210         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
2211         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
2212         (mthi<GPR:mode>_<HILO:mode>): Likewise.
2213         * config/mips/predicates.md (fpr_operand): Delete.
2214         (d_operand): New predicate.
2215
2216 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
2217
2218         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
2219         failure on some Bourne shells.
2220         (x86_64-*-*): Ditto.
2221
2222 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
2223
2224         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
2225
2226 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
2227
2228         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
2229         (sparc-sun-solaris2*): Likewise.
2230
2231 2008-06-09  Arnaud Charlet  <charlet@adacore.com
2232
2233         * doc/install.texi: Update requirements to build the Ada compiler.
2234
2235 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
2236
2237         * df-scan.c (struct df_scan_problem_data): Remove the
2238         mw_link_pool alloc pool.
2239         (df_scan_free_internal): Don't free it.
2240         (df_scan_alloc): Don't allocate it.
2241         * df.h (struct df_link): Update comment.
2242
2243 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2244
2245         * except.h: Correct checks for when SJLJ exceptions must be used.
2246
2247 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2248
2249         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
2250         default.
2251         
2252 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
2253
2254         PR tree-optimization/36218
2255         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
2256         configure for the build system.
2257         (BUILD_LDFLAGS): Define.
2258         * configure: Regenerate.
2259         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
2260
2261 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
2262
2263         PR target/36424
2264         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
2265         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
2266         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
2267
2268 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
2269
2270         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
2271
2272 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
2273
2274         * config.gcc (Obsolete configurations): Remove list of
2275         configurations.
2276         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
2277         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
2278         targets matched by those patterns.
2279         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
2280         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
2281         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
2282         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
2283         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
2284         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
2285         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
2286         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
2287         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
2288         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
2289         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
2290         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
2291         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
2292         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
2293         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
2294         Make code for Solaris 7 and greater unconditional for Solaris.
2295         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
2296         Remove --with-* handling.
2297         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
2298         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
2299         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
2300         LINK_OS_WINDISS_SPEC): Remove.
2301         * config/rs6000/sysv4.opt (mwindiss): Remove.
2302         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
2303         * configure: Regenerate.
2304         * doc/cpp.texi: Don't mention BeOS.
2305         * doc/extend.texi (interrupt): Don't mention MS1.
2306         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
2307         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
2308         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
2309         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
2310         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
2311         Remove.
2312         * doc/invoke.texi (MT Options): Remove.
2313         (-mwindiss): Remove.
2314         (CRIS Options): Remove cris-axis-aout references.
2315         (HPPA Options): Don't mention hppa1.1-*-pro.
2316         * doc/md.texi: (MorphoTech family): Remove.
2317         * libgcc2.c: Don't handle UWIN.
2318         * config/alpha/t-unicosmk: Remove.
2319         * config/alpha/unicosmk.h: Remove.
2320         * config/arm/kaos-arm.h: Remove.
2321         * config/arm/kaos-strongarm.h: Remove.
2322         * config/arm/strongarm-coff.h: Remove.
2323         * config/arm/strongarm-elf.h: Remove.
2324         * config/arm/strongarm-pe.h: Remove.
2325         * config/arm/t-strongarm-pe: Remove.
2326         * config/arm/t-xscale-coff: Remove.
2327         * config/arm/t-xscale-elf: Remove.
2328         * config/arm/xscale-coff.h: Remove.
2329         * config/arm/xscale-elf.h: Remove.
2330         * config/chorus.h: Remove.
2331         * config/cris/aout.h: Remove.
2332         * config/cris/aout.opt: Remove.
2333         * config/cris/t-aout: Remove.
2334         * config/i386/beos-elf.h: Remove.
2335         * config/i386/kaos-i386.h: Remove.
2336         * config/i386/ptx4-i.h: Remove.
2337         * config/i386/sco5.h: Remove.
2338         * config/i386/sco5.opt: Remove.
2339         * config/i386/sysv4-cpp.h: Remove.
2340         * config/i386/sysv5.h: Remove.
2341         * config/i386/t-beos: Remove.
2342         * config/i386/t-sco5: Remove.
2343         * config/i386/t-uwin: Remove.
2344         * config/i386/uwin.asm: Remove.
2345         * config/i386/uwin.h: Remove.
2346         * config/kaos.h: Remove.
2347         * config/mips/windiss.h: Remove.
2348         * config/mt: Remove directory.
2349         * config/pa/pa-osf.h: Remove.
2350         * config/pa/pa-pro-end.h: Remove.
2351         * config/pa/t-pro: Remove.
2352         * config/ptx4.h: Remove.
2353         * config/rs6000/beos.h: Remove.
2354         * config/rs6000/kaos-ppc.h: Remove.
2355         * config/rs6000/t-beos: Remove.
2356         * config/rs6000/windiss.h: Remove.
2357         * config/sh/kaos-sh.h: Remove.
2358         * config/sol2-6.h: Remove.
2359         * config/sparc/sol26-sld.h: Remove.
2360         * config/sparc/sysv4-only.h: Remove.
2361         * config/vax/bsd.h: Remove.
2362         * config/vax/t-memfuncs: Remove.
2363         * config/vax/ultrix.h: Remove.
2364         * config/vax/vaxv.h: Remove.
2365         * config/windiss.h: Remove.
2366
2367 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
2368
2369         PR rtl-optimization/36438
2370         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
2371         for vector shifts with constant scalar shift operands.
2372
2373 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
2374
2375         * doc/invoke.texi: Document -march=xlr.
2376         * config/mips/xlr.md: New file.
2377         * config/mips/mips.md: Include it.
2378         (cpu): Add "xlr".
2379         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
2380         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
2381         (mips_rtx_cost_data): Likewise.
2382
2383 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
2384
2385         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
2386         PRE_INC and PRE_DEC cases.
2387
2388 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2389
2390         PR rtl-optimization/36419
2391         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
2392         the emitting jump insn.
2393
2394         PR target/36362
2395         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
2396         is not bool, boolify the whole *expr_p and convert to the desired type.
2397
2398 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2399
2400         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
2401         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
2402         Add omp_private_outer_ref hook, add another argument to
2403         omp_clause_default_ctor hook.
2404         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
2405         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
2406         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
2407         hook_tree_tree_tree_tree_null.
2408         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
2409         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
2410         * hooks.c (hook_tree_tree_tree_tree_null): New function.
2411         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
2412         * tree.def (OMP_TASK): New tree code.
2413         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
2414         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
2415         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
2416         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
2417         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
2418         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
2419         OMP_CLAUSE_COLLAPSE_EXPR): Define.
2420         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
2421         (OMP_DIRECTIVE_P): Add OMP_TASK.
2422         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
2423         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
2424         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
2425         and OMP_CLAUSE_UNTIED entries.
2426         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
2427         num_ops to 2.
2428         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2429         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
2430         * tree-pretty-print.c (dump_omp_clause): Handle
2431         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
2432         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
2433         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
2434         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
2435         warning about unsigned iterators.  Change decl/init/cond/incr
2436         arguments to TREE_VECs, check arguments for all collapsed loops.
2437         (c_finish_omp_taskwait): New function.
2438         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
2439         ws_clauses.
2440         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
2441         default_function_array_conversion on init.  Add par_clauses argument.
2442         If decl is present in parallel's lastprivate clause, change it to
2443         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
2444         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
2445         collapse count in clauses.
2446         (c_parser_omp_for, c_parser_omp_parallel): Adjust
2447         c_parser_omp_for_loop callers.
2448         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
2449         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
2450         (c_parser_omp_clause_name): Handle collapse and untied clauses.
2451         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
2452         functions.
2453         (c_parser_omp_clause_schedule): Handle schedule(auto).
2454         Include correct location in the error message.
2455         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
2456         and PRAGMA_OMP_CLAUSE_UNTIED.
2457         (OMP_TASK_CLAUSE_MASK): Define.
2458         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
2459         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
2460         * tree-nested.c (convert_nonlocal_omp_clauses,
2461         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
2462         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
2463         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2464         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
2465         OMP_CLAUSE_DECL.
2466         (conver_nonlocal_reference, convert_local_reference,
2467         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
2468         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
2469         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
2470         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
2471         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
2472         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
2473         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
2474         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
2475         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2476         OMP_CLAUSE_UNTIED.
2477         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
2478         * c-common.h (c_finish_omp_taskwait): New prototype.
2479         * gimple-low.c (lower_stmt): Handle OMP_TASK.
2480         * tree-parloops.c (create_parallel_loop): Create 1 entry
2481         vectors for OMP_FOR_{INIT,COND,INCR}.
2482         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2483         (make_edges): Handle OMP_TASK.
2484         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
2485         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2486         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
2487         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
2488         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
2489         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2490         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2491         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
2492         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
2493         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
2494         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
2495         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
2496         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
2497         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
2498         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
2499         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
2500         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
2501         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
2502         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
2503         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
2504         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
2505         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
2506         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
2507         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
2508         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
2509         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
2510         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
2511         original iterator is present in lastprivate clause or if
2512         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
2513         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2514         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
2515         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
2516         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
2517         if it is set, lookup var in outer contexts too.  Handle
2518         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
2519         to be implicitly determined firstprivate for task regions.
2520         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
2521         if it is set, lookup var in outer contexts too.  Set
2522         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
2523         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
2524         OMP_CLAUSE_UNTIED.  Take region_type as last argument
2525         instead of in_parallel and in_combined_parallel.
2526         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2527         Adjust callers.
2528         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
2529         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
2530         (new_omp_context): Set default_kind to
2531         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
2532         (omp_region_type): New enum.
2533         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
2534         fields, add region_type.
2535         (new_omp_context): Take region_type as argument instead of is_parallel
2536         and is_combined_parallel.
2537         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
2538         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
2539         ctx->is_combined_parallel checks.
2540         (gimplify_omp_task): New function.
2541         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2542         OMP_CLAUSE_UNTIED.
2543         * omp-low.c (extract_omp_for_data): Use schedule(static)
2544         for schedule(auto).  Handle pointer and unsigned iterators.
2545         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
2546         Add loops argument.  Extract data for collapsed OMP_FOR loops.
2547         (expand_parallel_call): Assert sched_kind isn't auto,
2548         map runtime schedule to index 3.
2549         (struct omp_for_data_loop): New type.
2550         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
2551         Add loop, loops, collapse and iter_type fields.
2552         (workshare_safe_to_combine_p): Disallow combined for if
2553         iter_type is unsigned long long.  Don't combine collapse > 1 loops
2554         unless all bounds and steps are constant.  Adjust extract_omp_for_data
2555         caller.
2556         (expand_omp_for_generic): Handle pointer, unsigned and long long
2557         iterators.  Handle collapsed OMP_FOR loops.  Adjust
2558         for struct omp_for_data changes.  If libgomp function doesn't return
2559         boolean_type_node, add comparison of the return value with 0.
2560         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
2561         pointer, unsigned and long long iterators.  Adjust for struct
2562         omp_for_data changes.
2563         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
2564         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
2565         unsigned long long.  Allocate loops array, pass it to
2566         extract_omp_for_data.  For collapse > 1 loops use always
2567         expand_omp_for_generic.
2568         (omp_context): Add sfield_map and srecord_type fields.
2569         (is_task_ctx, lookup_sfield): New functions.
2570         (use_pointer_for_field): Use is_task_ctx helper.  Change first
2571         argument's type from const_tree to tree.  Clarify comment.
2572         In OMP_TASK disallow copy-in/out sharing.
2573         (build_sender_ref): Call lookup_sfield instead of lookup_field.
2574         (install_var_field): Add mask argument.  Populate both record_type
2575         and srecord_type if needed.
2576         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
2577         in srecord_type.
2578         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
2579         and DECL_FIELD_OFFSET.
2580         (scan_sharing_clauses): Adjust install_var_field callers.  For
2581         firstprivate clauses on explicit tasks allocate the var by value in
2582         record_type unconditionally, rather than by reference.
2583         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
2584         Use is_taskreg_ctx instead of is_parallel_ctx.
2585         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2586         (create_omp_child_function_name): Add task_copy argument, use
2587         *_omp_cpyfn* names if it is true.
2588         (create_omp_child_function): Add task_copy argument, if true create
2589         *_omp_cpyfn* helper function.
2590         (scan_omp_parallel): Adjust create_omp_child_function callers.
2591         Rename parallel_nesting_level to taskreg_nesting_level.
2592         (scan_omp_task): New function.
2593         (lower_rec_input_clauses): Don't run constructors for firstprivate
2594         explicit task vars which are initialized by *_omp_cpyfn*.  
2595         Pass outer var ref to omp_clause_default_ctor hook if
2596         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
2597         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
2598         OMP_CLAUSE_REDUCTION_INIT.
2599         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
2600         avoid duplicate setting of fields.  Handle
2601         OMP_CLAUSE_PRIVATE_OUTER_REF.
2602         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
2603         copy-out if TREE_READONLY, only copy-in.
2604         (expand_task_copyfn): New function.
2605         (expand_task_call): New function.
2606         (struct omp_taskcopy_context): New type.
2607         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
2608         New functions.
2609         (lower_omp_parallel): Rename to...
2610         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2611         Call create_task_copyfn if srecord_type is needed.  Adjust
2612         sender_decl type.
2613         (task_shared_vars): New variable.
2614         (check_omp_nesting_restrictions): Warn if work-sharing,
2615         barrier, master or ordered region is closely nested inside OMP_TASK.
2616         Add warnings for barrier if closely nested inside of work-sharing,
2617         ordered, or master region.
2618         (scan_omp_1): Call check_omp_nesting_restrictions even for
2619         GOMP_barrier calls.  Rename parallel_nesting_level to
2620         taskreg_nesting_level.  Handle OMP_TASK.
2621         (lower_lastprivate_clauses): Even if some lastprivate is found on a
2622         work-sharing construct, continue looking for them on parent parallel
2623         construct.
2624         (lower_omp_for_lastprivate): Add lastprivate clauses
2625         to the beginning of dlist rather than end.  Adjust for struct
2626         omp_for_data changes.
2627         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
2628         not after it.  Handle collapsed OMP_FOR loops, adjust for
2629         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
2630         (get_ws_args_for): Adjust extract_omp_for_data caller.
2631         (scan_omp_for): Handle collapsed OMP_FOR
2632         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2633         (lower_omp_single_simple): If libgomp function doesn't return
2634         boolean_type_node, add comparison of the return value with 0.
2635         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
2636         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
2637         (parallel_nesting_level): Rename to...
2638         (taskreg_nesting_level): ... this.
2639         (is_taskreg_ctx): New function.
2640         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
2641         of is_parallel_ctx.
2642         (execute_lower_omp): Rename parallel_nesting_level to
2643         taskreg_nesting_level.
2644         (expand_omp_parallel): Rename to...
2645         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2646         Call omp_task_call for OMP_TASK regions.
2647         (expand_omp): Adjust caller, handle OMP_TASK.
2648         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
2649
2650         * bitmap.c (bitmap_default_obstack_depth): New variable.
2651         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
2652         if argument is NULL and bitmap_default_obstack is already initialized.
2653         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
2654         at the end.
2655         * matrix-reorg.c (matrix_reorg): Likewise.
2656
2657 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
2658
2659         * config/i386/i386.md (*indirect_jump): Macroize using P
2660         mode iterator.  Remove !TARGET_64BIT from insn constraints.
2661         (*tablejump_1): Ditto.
2662         (*indirect_jump_rex64): Remove insn pattern.
2663         (*tablejump_1_rex64): Ditto.
2664         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
2665         and eh_return_si insn patterns.
2666
2667 2008-06-06  Richard Guenther  <rguenther@suse.de>
2668
2669         * tree-ssa-structalias.c (merge_smts_into): Remove.
2670         (find_what_p_points_to): Do not bother to compute the
2671         points-to set for pt_anything pointers.
2672         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
2673         for pt_anything pointers is ok.
2674
2675 2008-06-06  Jan Hubicka  <jh@suse.cz>
2676
2677         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
2678
2679 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2680
2681         * cgraph.c: Fix typos in comments.
2682         (cgraph_availability_names): Fix string typo.
2683         * fold-const.c: Fix typos in comments.
2684         (fold_binary): Fix typo in warning.
2685         * genautomata.c: Fix typos in comments.
2686         (check_presence_pattern_sets): Fix typo in local variable.
2687         (output_description): Fix typo in output.
2688         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
2689         * hwint.h: Likewise.
2690         * matrix-reorg.c (check_allocation_function): Likewise.
2691         * omega.c (smooth_weird_equations): Likewise.
2692         * auto-inc-dec.c: Fix typos in comments.
2693         * bb-reorder.c: Likewise.
2694         * builtins.c: Likewise.
2695         * c-common.c: Likewise.
2696         * c-cppbuiltin.c: Likewise.
2697         * c-parser.c: Likewise.
2698         * c-pretty-print.c: Likewise.
2699         * cfgcleanup.c: Likewise.
2700         * cfgexpand.c: Likewise.
2701         * cfghooks.c: Likewise.
2702         * cfglayout.c: Likewise.
2703         * cfgloopmanip.c: Likewise.
2704         * cgraphunit.c: Likewise.
2705         * coverage.c: Likewise.
2706         * dbxout.c: Likewise.
2707         * df-byte-scan.c: Likewise.
2708         * df-core.c: Likewise.
2709         * df-problems.c: Likewise.
2710         * df-scan.c: Likewise.
2711         * dfp.c: Likewise.
2712         * dominance.c: Likewise.
2713         * domwalk.c: Likewise.
2714         * dse.c: Likewise.
2715         * dwarf2out.c: Likewise.
2716         * emit-rtl.c: Likewise.
2717         * et-forest.c: Likewise.
2718         * function.c: Likewise.
2719         * function.h: Likewise.
2720         * gcc.c: Likewise.
2721         * gcov-io.c: Likewise.
2722         * gcov.c: Likewise.
2723         * gcse.c: Likewise.
2724         * genattrtab.c: Likewise.
2725         * ggc-page.c: Likewise.
2726         * gimplify.c: Likewise.
2727         * gthr-lynx.h: Likewise.
2728         * haifa-sched.c: Likewise.
2729         * ipa-cp.c: Likewise.
2730         * ipa-inline.c: Likewise.
2731         * ipa-prop.h: Likewise.
2732         * ipa-pure-const.c: Likewise.
2733         * ipa-struct-reorg.c: Likewise.
2734         * ipa-struct-reorg.h: Likewise.
2735         * ipa-type-escape.c: Likewise.
2736         * ipa.c: Likewise.
2737         * loop-doloop.c: Likewise.
2738         * mips-tfile.c: Likewise.
2739         * mkmap-flat.awk: Likewise.
2740         * mkmap-symver.awk: Likewise.
2741         * modulo-sched.c: Likewise.
2742         * omp-low.c: Likewise.
2743         * optabs.c: Likewise.
2744         * optabs.h: Likewise.
2745         * opts.c: Likewise.
2746         * passes.c: Likewise.
2747         * postreload-gcse.c: Likewise.
2748         * postreload.c: Likewise.
2749         * predict.c: Likewise.
2750         * pretty-print.h: Likewise.
2751         * profile.c: Likewise.
2752         * protoize.c: Likewise.
2753         * ra-conflict.c: Likewise.
2754         * real.c: Likewise.
2755         * recog.c: Likewise.
2756         * regclass.c: Likewise.
2757         * regs.h: Likewise.
2758         * reload.c: Likewise.
2759         * rtl-error.c: Likewise.
2760         * rtlanal.c: Likewise.
2761         * scan.h: Likewise.
2762         * sched-rgn.c: Likewise.
2763         * see.c: Likewise.
2764         * stmt.c: Likewise.
2765         * target.h: Likewise.
2766         * tree-dfa.c: Likewise.
2767         * tree-eh.c: Likewise.
2768         * tree-flow-inline.h: Likewise.
2769         * tree-inline.c: Likewise.
2770         * tree-into-ssa.c: Likewise.
2771         * tree-loop-distribution.c: Likewise.
2772         * tree-nested.c: Likewise.
2773         * tree-parloops.c: Likewise.
2774         * tree-pass.h: Likewise.
2775         * tree-pretty-print.c: Likewise.
2776         * tree-profile.c: Likewise.
2777         * tree-scalar-evolution.c: Likewise.
2778         * tree-sra.c: Likewise.
2779         * tree-ssa-alias-warnings.c: Likewise.
2780         * tree-ssa-ccp.c: Likewise.
2781         * tree-ssa-coalesce.c: Likewise.
2782         * tree-ssa-dom.c: Likewise.
2783         * tree-ssa-dse.c: Likewise.
2784         * tree-ssa-forwprop.c: Likewise.
2785         * tree-ssa-live.c: Likewise.
2786         * tree-ssa-live.h: Likewise.
2787         * tree-ssa-loop-im.c: Likewise.
2788         * tree-ssa-loop-ivopts.c: Likewise.
2789         * tree-ssa-loop-niter.c: Likewise.
2790         * tree-ssa-loop-prefetch.c: Likewise.
2791         * tree-ssa-phiopt.c: Likewise.
2792         * tree-ssa-phiprop.c: Likewise.
2793         * tree-ssa-sccvn.c: Likewise.
2794         * tree-ssa-ter.c: Likewise.
2795         * tree-ssa-threadupdate.c: Likewise.
2796         * tree-ssa.c: Likewise.
2797         * tree-vect-analyze.c: Likewise.
2798         * tree-vect-transform.c: Likewise.
2799         * tree-vectorizer.c: Likewise.
2800         * tree-vn.c: Likewise.
2801         * tree-vrp.c: Likewise.
2802         * tree.c: Likewise.
2803         * tree.def: Likewise.
2804         * tree.h: Likewise.
2805         * unwind-dw2-fde.c: Likewise.
2806         * unwind.inc: Likewise.
2807         * value-prof.c: Likewise.
2808         * vmsdbgout.c: Likewise.
2809
2810 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2811
2812         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2813         always place FP constants in the TOC for TARGET_POWERPC64.
2814         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2815
2816 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2817
2818         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2819         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2820         enable for TARGET_E500_DOUBLE.
2821         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2822         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2823         floating-point modes like integer modes for E500 double.
2824         (rs6000_legitimate_offset_address_p): Likewise.
2825         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2826         addressing for DDmode for E500 double.
2827         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2828         modes as using 64-bits of registers for E500 double.
2829         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2830         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2831         specially for E500 double.
2832         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2833         TDmode for E500 double.
2834         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2835         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2836         (rs6000_split_multireg_move): Do not handle TDmode specially for
2837         E500 double.
2838         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2839         using 64-bit registers for E500 double.
2840         (emit_frame_save): Do not handle DDmode specially for E500 double.
2841         (gen_frame_mem_offset): Likewise.
2842         (rs6000_function_value): Do not call spe_build_register_parallel
2843         for DDmode or TDmode.
2844         (rs6000_libcall_value): Likewise.
2845         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2846         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2847         for E500 double.
2848
2849 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2850
2851         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2852         in comments.
2853
2854 2008-06-04  Junjie Gu <jgu@tensilica.com>
2855
2856         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2857         comparison for frame pointers.
2858
2859 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2860
2861         PR target/27386
2862         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2863
2864 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2865
2866         PR target/30243
2867         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2868         register is already smaller or equal to required mode. 
2869
2870 2008-06-04  Xinliang David Li  <davidxl@google.com>
2871
2872         * tree-call-cdce.c: New file. 
2873         (cond_dead_built_in_calls): New static variable.
2874         (input_domain): New struct.
2875         (check_pow): New function.
2876         (check_builtin_call): Ditto.
2877         (check_target_format): Ditto.
2878         (is_call_dce_candidate): Ditto.
2879         (gen_one_condition): Ditto.
2880         (gen_conditions_for_domain): Ditto.
2881         (get_domain): Ditto.
2882         (gen_conditions_for_pow_cst_base): Ditto.
2883         (gen_conditions_for_pow_int_base): Ditto.
2884         (gen_conditions_for_pow): Ditto.
2885         (get_no_error_domain): Ditto.
2886         (gen_shrink_wrap_conditions): Ditto.
2887         (shrink_wrap_one_built_in_call): Ditto.
2888         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2889         (tree_call_cdce): Ditto.
2890         (gate_call_cdce): Ditto.
2891         (pass_call_cdce): New gimple pass.
2892         * passes.c: (init_optimization_passes): New pass.
2893         * tree-pass.h: New pass declaration.
2894         * opts.c (decode_options): New flag setting.
2895         * common.opt: Add -ftree-builtin-call-dce flag.
2896         * Makefile.in: Add new source file.
2897         * tempvar.def: New tv_id.
2898         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2899
2900 2008-06-04  Richard Guenther  <rguenther@suse.de>
2901
2902         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2903         (is_call_clobbered): Always check var_ann->call_clobbered.
2904         (mark_call_clobbered): Always set var_ann->call_clobbered.
2905         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2906         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2907         (reset_alias_info): Clear call clobbering info on MTAGs and
2908         globals as well.
2909         (set_pt_anything): Set pt_global_mem.
2910         (create_tag_raw): Adjust comment.
2911         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2912
2913 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2914             Maxim Kuvyrkov  <maxim@codesourcery.com>
2915
2916         * config/m68k/m68k.opt (mxgot): New option.
2917         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2918         (m68k_output_addr_const_extra): New.
2919         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2920         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2921         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2922         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2923
2924 2008-06-04  Richard Guenther  <rguenther@suse.de>
2925
2926         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2927         negative or non-representable offsets.
2928
2929 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2930
2931         * config/i386/i386.c (ix86_gen_leave): New.
2932         (ix86_gen_pop1): Likewise.
2933         (ix86_gen_add3): Likewise.
2934         (ix86_gen_sub3): Likewise.
2935         (ix86_gen_sub3_carry): Likewise.
2936         (ix86_gen_one_cmpl2): Likewise.
2937         (ix86_gen_monitor): Likewise.
2938         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2939         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2940         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2941         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2942         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2943         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2944         (ix86_expand_epilogue): Updated.
2945         (print_operand): Handle integer register operand for 'z'.
2946         (ix86_expand_strlensi_unroll_1): Likewise.
2947         (ix86_expand_strlen): Likewise.
2948         (ix86_expand_builtin): Likewise.
2949         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2950         mov{q}/mov{l} and add{q}/add{l}.
2951
2952 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2953
2954         * config/i386/i386.md (P): New mode iterator.
2955         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2956         using P mode iterator.
2957         (DFmode push_operand splitter): Ditto.
2958         (XFmode push_operand splitter): Ditto.
2959         (DFmode float_extend SFmode push_operand splitter): Ditto.
2960         (XFmode float_extend SFmode push_operand splitter): Do not generate
2961         SImode pushes for 64bit target.  Macroize Dimode and SImode
2962         pushes using P mode iterator.
2963         (XFmode float_extend DFmode push_operand splitter): Ditto.
2964
2965 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2966
2967         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2968         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2969         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2970         return type to int.
2971         (ix86_call_abi_override): Remove check for call_used_regs.
2972
2973 2008-06-03  Richard Guenther  <rguenther@suse.de>
2974
2975         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2976         for the lhs of calls if the return type contains pointers.
2977
2978 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2979
2980         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2981         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2982         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2983         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2984         of cfun and DEFAULT_ABI to deceide abi mode.
2985         (DEFAULT_ABI): New.
2986         (REG_PARM_STACK_SPACE): Removed.
2987         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2988         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2989         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2990         (ix86_function_abi): Likewise.
2991         (ix86_function_type_abi): Likewise.
2992         (ix86_call_abi_override): Likewise.
2993         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2994         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2995         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2996         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2997         specific defines.
2998         (X86_64_REGPARM_MAX): New.
2999         (X86_64_SSE_REGPARM_MAX): New.
3000         (X64_REGPARM_MAX): New.
3001         (X64_SSE_REGPARM_MAX): New.
3002         (X86_32_REGPARM_MAX): New.
3003         (X86_32_SSE_REGPARM_MAX): New.
3004         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
3005         (ix86_function_regparm): Handle user calling abi.
3006         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
3007         by DEFAULT_ABI versus SYSV_ABI check.
3008         (ix86_reg_parm_stack_space): New.
3009         (ix86_function_type_abi): New.
3010         (ix86_call_abi_override): New.
3011         (ix86_function_abi): New.
3012         (ix86_cfun_abi): New.
3013         (init_cumulative_args): Call abi specific initialization.
3014         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
3015         (function_arg_64): Extend SSE_REGPARM_MAX check.
3016         (function_arg (): Remove TARGET_64BIT_MS_ABI.
3017         (ix86_pass_by_reference): Likewise.
3018         (ix86_function_value_regno_p): Likewise.
3019         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
3020         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
3021         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
3022         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
3023         (setup_incoming_varargs_64): Adjust regparm for call abi.
3024         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
3025         (ix86_va_start): Likewise.
3026         (ix86_gimplify_va_arg): Likewise.
3027         (ix86_expand_prologue): Likewise.
3028         (output_pic_addr_const): Likewise.
3029         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
3030         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
3031         (x86_output_mi_thunk): Likewise.
3032         (x86_function_profiler): Likewise.
3033         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
3034         (SYSV_ABI, MS_ABI): New constants.
3035         (DEFAULT_ABI): New.
3036         (init_regs): Add prototype of function in regclass.c file.
3037         (OVERRIDE_ABI_FORMAT): New.
3038         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
3039         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
3040         (OUTGOING_REG_PARM_STACK_SPACE): New.
3041         (ix86_reg_parm_stack_space): New prototype.
3042         (CUMULATIVE_ARGS): Add call_abi member.
3043         (machine_function): Add call_abi member.
3044         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
3045         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
3046
3047 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
3048
3049         PR target/34879
3050         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
3051         (avr_builtin_setjmp_frame_value): New function.
3052         * config/avr/avr.md (nonlocal_goto_receiver): Define.
3053         (nonlocal_goto): Define.
3054
3055 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
3056
3057         * config/mips/mips.c (mips_emit_loadgp): Return early if
3058         there is nothing do to, otherwise emit a blockage if
3059         !TARGET_EXPLICIT_RELOCS || crtl->profile.
3060         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
3061
3062 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3063
3064         * configure.ac: Drop unneeded backslash ending up in config.in.
3065         * acinclude.m4: Likewise.
3066         * config.in: Regenerate.
3067
3068 2008-05-26  Jan Hubicka  <jh@suse.cz>
3069
3070         * predict.c (maybe_hot_frequency_p): Break out of...
3071         (maybe_hot_bb_p): ... here.
3072         (maybe_hot_edge_p): New.
3073         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
3074         * basic-block.h (maybe_hot_edge_p): Declare.
3075
3076 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
3077
3078         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
3079         (*cmpfp_<mode>_cc): Ditto.
3080         (*fp_jcc_8<mode>_387): Ditto.
3081         (*fop_<MODEF:mode>_2_i387): Ditto.
3082         (*fop_<MODEF:mode>_3_i387): Ditto.
3083         (*fop_xf_2_i387): Ditto.
3084         (*fop_xf_3_i387): Ditto.
3085
3086 2008-06-02  Tomas Bily  <tbily@suse.cz>
3087
3088         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
3089
3090 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3091
3092         * config/mips/mips.c (mips_valid_offset_p): New function.
3093         (mips_valid_lo_sum_p): Likewise.
3094         (mips_classify_address): Use them.
3095         (mips_force_address): New function.
3096         (mips_legitimize_address): Use it.
3097         * config/mips/mips.md (MOVE128): New mode iterator.
3098         (movtf): Require TARGET_64BIT.  Remove empty strings.
3099         (*movtf_internal): Rename to...
3100         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
3101         of "R" and use {,fp}{load,store} attributes instead of "multi".
3102         Use a separate define_split.
3103         (*movtf_mips16): New pattern.
3104
3105 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3106
3107         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
3108         * config/mips/mips.c (mips_expand_before_return): New function.
3109         (mips_expand_epilogue): Call it.
3110         * config/mips/mips.md (return): Turn into a define_expand.
3111         (*return): New insn.
3112
3113 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3114
3115         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
3116         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
3117         functions.  Do not emit uses and clobbers of CONCATs; individually
3118         use and clobber their operands.
3119         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
3120         gen_clobber, emit_use and gen_use.
3121         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3122         (expand_builtin_return): Likewise.
3123         * cfgbuild.c (count_basic_blocks): Likewise.
3124         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
3125         * explow.c (emit_stack_restore): Likewise.
3126         * expmed.c (extract_bit_field_1): Likewise.
3127         * expr.c (convert_move, emit_move_complex_parts): Likewise.
3128         (emit_move_multi_word, store_constructor): Likewise.
3129         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
3130         (thread_prologue_and_epilogue_insns): Likewise.
3131         * lower-subreg.c (resolve_simple_move): Likewise.
3132         * optabs.c (widen_operand, expand_binop): Likewise.
3133         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
3134         * reload.c (find_reloads): Likewise.
3135         * reload1.c (eliminate_regs_in_insn): Likewise.
3136         * stmt.c (expand_nl_goto_receiver): Likewise.
3137         * config/alpha/alpha.md (builtin_longjmp): Likewise.
3138         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
3139         * config/arm/arm.c (arm_load_pic_register): Likewise.
3140         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
3141         * config/arm/arm.md (untyped_return): Likewise.
3142         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
3143         * config/avr/avr.c (expand_prologue): Likewise.
3144         * config/bfin/bfin.c (do_unlink): Likewise.
3145         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
3146         * config/cris/cris.c (cris_expand_prologue): Likewise.
3147         * config/darwin.c (machopic_indirect_data_reference): Likewise.
3148         (machopic_legitimize_pic_address): Likewise.
3149         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
3150         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
3151         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
3152         (ix86_expand_convert_uns_didf_sse): Likewise.
3153         (ix86_expand_vector_init_general): Likewise.
3154         * config/ia64/ia64.md (eh_epilogue): Likewise.
3155         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
3156         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
3157         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
3158         (config/iq2000/iq2000.c): Likewise.
3159         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
3160         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3161         (builtin_longjmp): Likewise.
3162         * config/mn10300/mn10300.md (call, call_value): Likewise.
3163         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
3164         * config/pdp11/pdp11.md (abshi2): Likewise.
3165         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
3166         * config/s390/s390.c (s390_emit_prologue): Likewise.
3167         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
3168         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
3169         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
3170         * config/sh/sh.c (prepare_move_operands): Likewise.
3171         (output_stack_adjust, sh_expand_epilogue): Likewise.
3172         (sh_set_return_address, sh_expand_t_scc): Likewise.
3173         * config/sparc/sparc.c (load_pic_register): Likewise.
3174         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
3175         * config/spu/spu.c (spu_expand_epilogue): Likewise.
3176         * config/v850/v850.c (expand_epilogue): Likewise.
3177
3178 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
3179
3180         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
3181         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
3182         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
3183         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
3184         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
3185         stack pointer register.
3186         (output_movhi): Remove code for interrupt specific writing to the 
3187         stack pointer register.
3188
3189 2008-05-31  Richard Guenther  <rguenther@suse.de>
3190
3191         PR tree-optimization/34244
3192         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
3193         (tree_expr_nonzero_warnv_p): Likewise.
3194         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
3195         ssa_name_nonnegative_p.
3196         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
3197         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
3198         not tree_expr_nonzero_warnv_p.
3199
3200         PR tree-optimization/36262
3201         Revert
3202         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
3203
3204         PR tree-optimization/34244
3205         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
3206         (record_numbers_of_iterations): New function.
3207         (execute_vrp): Cache the numbers of iterations of loops.
3208         * tree-scalar-evolution.c (scev_reset_except_niters):
3209         New function.
3210         (scev_reset): Use scev_reset_except_niters.
3211         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
3212
3213 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
3214
3215         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3216         __WORKAROUND_RETS when appropriate.
3217
3218 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
3219
3220         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
3221         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
3222         mode iterator.
3223         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
3224         *fop_df_comm_sse insn patterns using MODEF mode iterator.
3225         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
3226         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
3227         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
3228         *fop_df_1_mixed insn patterns using MODEF mode iterator.
3229         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
3230         *fop_df_1_sse insn patterns using MODEF mode iterator.
3231         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
3232         *fop_df_1_i387 insn patterns using MODEF mode iterator.
3233         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
3234         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
3235         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
3236         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
3237         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
3238         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
3239         (*fop_xf_4_i387): Use <MODE> for mode attribute.
3240         (*fop_xf_5_i387): Ditto.
3241         (*fop_xf_6_i387): Ditto.
3242
3243 2008-05-30  Richard Guenther  <rguenther@suse.de>
3244
3245         * builtins.c (build_string_literal): Avoid generating
3246         a non-gimple_val result.
3247
3248 2008-05-30  DJ Delorie  <dj@redhat.com>
3249
3250         * exec-tool.in: Use an environment variable (private) instead of a
3251         file (shared) as a semaphore, so as to not break parallel builds.
3252
3253 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3254
3255         * optabs.c (maybe_encapsulate_block): Remove.
3256         (emit_libcall_block): Adjust accordingly.
3257         * optabs.h (maybe_encapsulate_block): Remove prototype.
3258
3259         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
3260         Don't use maybe_encapsulate_block.
3261
3262 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3263
3264         * config/rs6000/rs6000.c (rs6000_legitimize_address,
3265         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
3266         rtx is a SYMBOL_REF before calling get_pool_constant.
3267
3268 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3269
3270         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
3271
3272 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
3273
3274         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
3275         rather than OS names to choose INO_T_EQ definition.
3276         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
3277         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
3278
3279 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
3280
3281         PR target/36348
3282         * config/darwin-f.c: New.
3283         * config/t-darwin: Added rule to build darwin-f.o.
3284         * config.gcc: Defined new variable, fortran_target_objs.
3285         (*-*-darwin*): Set fortran_target_objs.
3286         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
3287         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
3288         * configure: Regenerated.
3289
3290 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
3291
3292         PR target/35771
3293         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
3294         canonical type if needed.
3295
3296 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3297
3298         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
3299
3300 2008-05-29  Richard Guenther  <rguenther@suse.de>
3301
3302         PR tree-optimization/36343
3303         PR tree-optimization/36346
3304         PR tree-optimization/36347
3305         * tree-flow.h (clobber_what_p_points_to): Declare.
3306         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
3307         pointed-to variable is dereferenced is irrelevant to whether
3308         the pointer can access the pointed-to variable.
3309         (clobber_what_p_points_to): New function.
3310         * tree-ssa-alias.c (set_initial_properties): Use it.
3311         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
3312         call clobber check for NMTs.
3313
3314 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
3315         
3316         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
3317         for printing gcov_type.
3318
3319 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
3320
3321         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
3322         and the eh region information.
3323         * value-prof.c (gimple_move_stmt_histograms): New function.
3324         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
3325
3326 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
3327
3328         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
3329
3330 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
3331
3332         * value-prof.c (tree_ic_transform): Print counts.
3333         * tree-profile.c (tree_gen_ic_func_profiler):
3334         Clear __gcov_indreict_call_callee variable to avoid misattribution
3335         of the profile.
3336
3337 2008-05-28  Rafael Espindola  <espindola@google.com>
3338
3339         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
3340         invalid sharing.
3341
3342 2008-05-28  Richard Guenther  <rguenther@suse.de>
3343
3344         PR tree-optimization/36339
3345         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
3346         and clobbering code out of the loop.
3347
3348 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3349
3350         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint