OSDN Git Service

* alloc-pool.c (hash_descriptor, eq_descriptor,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2
3         * alloc-pool.c (hash_descriptor, eq_descriptor,
4         alloc_pool_descriptor): Fix -Wc++-compat warnings.
5         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6         Likewise.
7         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
8         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
9         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
10         Likewise.
11         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
12         Likewise.
13
14 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
15
16         * tree-flow.h (loop_only_exit_p): Declare.
17         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
18         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
19         the number of iterations if it is constant.  Otherwise, if this is the
20         only possible exit of the loop, use the conservative estimate on the
21         number of iterations of the entire loop if available.
22
23 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
24
25         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
26         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
27         Add synchronization functions.
28         * config/sync.c: New file.
29         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
30         (LIBGCC_SYNC_CFLAGS): Likewise.
31
32 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
33
34         PR target/36710
35         * config/i386/i386.md (mode): Add TF to "mode" attribute.
36         (*pushtf_sse): New insn pattern.
37         (pushtf splitters): New splitters.
38
39 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
40
41         PR middle-end/35736
42         * predict.c (build_predict_expr): Use void_type_node for the tree
43         type, instead of NULL_TREE.
44
45 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
46
47         * config/i386/i386.c (contains_aligned_value_p): Return true
48         for TCmode.
49         (ix86_data_alignment): Align TCmode to 128bits.
50         (ix86_local_alignment): Likewise.
51
52 2008-07-03  Andrew Haley  <aph@redhat.com>
53
54         PR bootstrap/33304
55         * vec.h (VEC_TA): New.
56         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
57         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
58         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
59         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
60         (C_COMMON_FIXED_TYPES): Remove first arg.
61         (C_COMMON_FIXED_MODE_TYPES): Likewise.
62         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
63         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
64         not to use empty macro arguments.
65
66 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
67
68         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
69         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
70         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
71         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
72         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
73         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
74         config/ia64/crtn.asm, config/m68hc11/larith.asm,
75         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
76         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
77         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
78         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
79         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
80         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
81         config/rs6000/e500crtres64gpr.asm,
82         config/rs6000/e500crtres64gprctr.asm,
83         config/rs6000/e500crtrest32gpr.asm,
84         config/rs6000/e500crtrest64gpr.asm,
85         config/rs6000/e500crtresx32gpr.asm,
86         config/rs6000/e500crtresx64gpr.asm,
87         config/rs6000/e500crtsav32gpr.asm,
88         config/rs6000/e500crtsav64gpr.asm,
89         config/rs6000/e500crtsav64gprctr.asm,
90         config/rs6000/e500crtsavg32gpr.asm,
91         config/rs6000/e500crtsavg64gpr.asm,
92         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
93         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
94         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
95         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
96         config/sparc/sol2-cn.asm: Remove .file directives.
97
98 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
99
100         * resource.c (mark_referenced_resources): Look inside
101         UNSPEC_VOLATILEs and ASM_INPUTs.
102
103 2008-07-02  Ian Lance Taylor  <iant@google.com>
104
105         * rtlanal.c (add_reg_note): New function.
106         * rtl.h (add_reg_note): Declare.
107         * auto-inc-dec.c (attempt_change): Use add_reg_note.
108         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
109         * builtins.c (expand_builtin_longjmp): Likewise.
110         (expand_builtin_nonlocal_goto): Likewise.
111         * calls.c (emit_call_1, expand_call): Likewise.
112         * cfgexpand.c (add_reg_br_prob_note): Likewise.
113         * cfglayout.c (fixup_reorder_chain): Likewise.
114         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
115         (commit_one_edge_insertion): Likewise.
116         * combine.c (move_deaths, distribute_notes): Likewise.
117         * df-problems.c (df_set_note): Likewise.
118         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
119         (set_unique_reg_note): Likewise.
120         (emit_copy_of_insn_after): Likewise.
121         * expr.c (expand_expr_real): Likewise.
122         * gcse.c (add_label_notes): Likewise.
123         * haifa-sched.c (create_check_block_twin): Likewise.
124         * jump.c (mark_jump_label_1): Likewise.
125         * loop-doloop.c (add_test, doloop_modify): Likewise.
126         * loop-unswitch.c (compare_and_jump_seq): Likewise.
127         * lower-subreg.c (move_eh_region_note): Likewise.
128         * optabs.c (emit_libcall_block): Likewise.
129         * predict.c (predict_insn): Likewise.
130         (combine_predictions_for_insn): Likewise.
131         * recog.c (peephole2_optimize): Likewise.
132         * regmove.c (try_auto_increment): Likewise.
133         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
134         * reload.c (find_reloads): Likewise.
135         * reload1.c (fixup_eh_region_note): Likewise.
136         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
137         * reorg.c (delete_prior_computation): Likewise.
138         (delete_computation, dbr_schedule): Likewise.
139         * config/pa/pa.c (legitimize_pic_address): Likewise.
140         * config/sh/sh.c (sh_reorg): Likewise.
141
142 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
143
144         PR target/36669
145         * config/libgcc-glibc.ver: Add %exclude.
146         * config/m32r/libgcc-glibc.ver: Likwise.
147         * config/s390/libgcc-glibc.ver: Likwise.
148         * config/sh/libgcc-glibc.ver: Likwise.
149         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
150
151         * config/i386/libgcc-glibc.ver: New.
152
153         * config/i386/libgcc-x86_64-glibc.ver: Removed.
154
155 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
156
157         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
158         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
159         i[34567]86-*-linux*, x86_64-*-linux*.  Add
160         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
161         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
162         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
163         i[34567]86-*-linux*, x86_64-*-linux*.
164
165         * libgcc-std.ver: Add empty GCC_4.4.0.
166
167         * mkmap-symver.awk: Support multiple versions per symbol.
168
169         * config/i386/i386.c (ix86_init_builtins): Always define
170         __builtin_fabsq and __builtin_copysignq with fallbacks.
171         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
172         and __builtin_copysignq if SSE2 isn't available.
173
174         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
175         (LIBGCC2_TF_CEXT): Likwise.
176         (TF_SIZE): Likwise.
177
178         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
179
180         * config/i386/sfp-machine.h: Moved to libgcc.
181
182         * config/i386/sfp-machine.h: New.
183         * config/i386/t-linux: Likwise.
184
185         * config/i386/t-darwin: Remove softfp_wrap_start and
186         softfp_wrap_end.
187         * config/i386/t-darwin64: Likewise.
188
189         * config/i386/t-fprules-softfp64: Renamed to ...
190         * config/i386/t-fprules-softfp: This.
191
192         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
193         and softfp_wrap_end.
194
195 2008-07-02  Jason Merrill  <jason@redhat.com>
196
197         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
198
199         * tree.c (ctor_to_list): New fn.
200         * tree.h: Declare it.
201         (CONSTRUCTOR_ELT): New macro.
202         (CONSTRUCTOR_NELTS): New macro.
203
204 2008-07-02  Richard Guenther  <rguenther@suse.de>
205
206         * tree-ssa-structalias.c (struct variable_info): Reorder
207         to fill padding on 64bit hosts.  Make collapsed_to an int.
208         (get_varinfo_fc): Deal with that.
209         (new_var_info): Likewise.
210         (collapse_rest_of_var): Likewise.
211
212 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
213
214         * doc/install.texi (--enable-java-home): Document.
215         (--enable-aot-compile-rpm): Likewise.
216         (--with-arch-directory): Likewise.
217         (--with-os-directory): Likewise.
218         (--with-origin-name): Likewise.
219         (--with-arch-suffix): Likewise.
220         (--with-jvm-root-dir): Likewise.
221         (--with-jvm-jar-dir): Likewise.
222         (--with-python-dir): Likewise.
223
224 2008-07-02  Richard Guenther  <rguenther@suse.de>
225
226         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
227         from decls explicitly.  Merge operand checking from tuples.
228
229 2008-07-02  Martin Jambor  <mjambor@suse.cz>
230
231         * tree-switch-conversion.c: Included timevar.h which I forgot before.
232         
233 2008-07-02  Martin Jambor  <mjambor@suse.cz>
234
235         * tree-switch-conversion.c: Included timevar.h
236         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
237
238         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
239
240 2008-07-02  Martin Jambor  <mjambor@suse.cz>
241
242         * tree-switch-conversion.c: Corrected various comments and
243         whitespace issues
244         (build_constructors): Fixed minor formatting mistakes.
245
246         * invoke.texi (Optimize Options): Corrected the
247         switch-conversion-max-branch-ratio parameter.
248
249 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
250
251         * final.c (asm_insn_count): Return zero for an empty asm body.
252
253 2008-07-02  Richard Guenther  <rguenther@suse.de>
254
255         * bitmap.h (bitmap_set_bit): Return bool.
256         (bitmap_clear_bit): Likewise.
257         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
258         write to the bitmap if it would.
259         (bitmap_clear_bit): Likewise.
260         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
261         bitmap_set_bit return value.
262         (add_pred_graph_edge): Likewise.
263         (add_graph_edge): Likewise.
264         (do_sd_constraint): Likewise.
265         (do_ds_constraint): Likewise.
266
267 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
268
269         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
270         Fix -Wc++-compat and/or -Wcast-qual warnings.
271         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
272         gen_regparm_prefix): Likewise.
273         * vmsdbgout.c (write_modbeg, lookup_filename,
274         vmsdbgout_source_line, vmsdbgout_init): Likewise.
275
276 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
277
278         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
279         defaults.h definition apply.
280
281 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
282
283         * function.c (assign_parm_remove_parallels): New.
284         (assign_parm_setup_block_p): Do not return true for non-BLKmode
285         PARALLELs.
286         (assign_parm_setup_block): Do not handle them.
287         (assign_parm_setup_reg, assign_parm_setup_stack): Call
288         assign_parm_remove_parallels.
289
290 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
291
292         * c-typeck.c (convert_for_assignment): Use
293         vector_targets_convertible_p.
294         * c-common.c (vector_targets_convertible_p): New.
295         * c-common.h (vector_targets_convertible_p): New prototype.
296         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
297         opaque_p_V2SI_type_node.
298
299 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
300
301         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
302         RFmode constants.
303
304 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
305
306         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
307         TFmode constants via two element DImode vector for hosts with
308         HOST_BITS_PER_WIDE_INT < 64.
309         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
310         also for HOST_BITS_PER_WIDE_INT < 64.
311
312 2008-07-01  Richard Guenther  <rguenther@suse.de>
313
314         PR tree-optimization/36666
315         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
316         (get_constraint_exp_from_ssa_var): Split into ...
317         (get_constraint_exp_for_temp): ... this ...
318         (get_constraint_for_ssa_var): ... and that.
319         Return constraint expressions for all touched sub-fields
320         if the results address is not taken.
321         (process_constraint): Remove assertion that aggregate
322         assignments do not happen at this place.
323         (get_constraint_for_component_ref): Add address_p argument.
324         Return constraint expressions for all touched sub-fields
325         if the results address is not taken.
326         (do_deref): Use get_constraint_exp_for_temp.
327         (get_constraint_for_1): Rename from ...
328         (get_constraint_for): ... this.  Add the old function as wrapper.
329         (do_structure_copy): Use get_constraint_for_1.
330
331 2008-07-01  Martin Jambor  <mjambor@suse.cz>
332
333         * Makefile.in (tree-switch-conversion.o): Add.
334         (OBJS-common): Add tree-swtch-conversion.o.
335         * passes.c (init_optimization_passes): Add pass_convert_switch.
336         * tree-pass.h: (pass_convert_switch): Add.
337         * tree-switch-conversion.c: New file.
338         * gcc.dg/tree-ssa/cswtch.c: New testcase.
339         * common.opt (ftree-cswtch): New option.
340         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
341         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
342         * opts.c (decode_options): Set flag_tree_switch_conversion when
343         optimization level is >= 2.
344         * doc/invoke.texi (Optimize Options): Added description of
345         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
346
347 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
348
349         * config/darwin-driver.c (darwin_default_min_version): Fix
350         -Wc++-compat warnings.
351
352 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
353
354         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
355         of operand 0.
356
357 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
358
359         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
360         
361 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
362
363         PR rtl-optimization/34744
364         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
365         (df_scan_free_internal): Free data structures not
366         allocated in storage pools.
367         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
368         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
369         df_scan_free_mws_vec.
370         * dse.c (dse_step6): Free offset_map_p and offset_map_n
371         unconditionally.
372
373 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
374
375         * config/i386/i386.c (contains_aligned_value_p): Return true
376         for __float128.
377         (ix86_function_arg_boundary): Return its natural boundary
378         for __float128.
379         (return_in_memory_32): Don't check TDmode.
380         (ix86_split_to_parts): Support splitting into 4 parts and
381         support TFmode for 32bit target.
382         (ix86_split_long_move): Support splitting into 4 parts.
383         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
384         for SSE2.
385         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
386         (ix86_init_builtins): Here.
387         (ix86_scalar_mode_supported_p): Always return true for TFmode.
388         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
389         'q' and 'w', respectively. 
390
391         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
392         TARGET_64BIT.
393         (movtf_internal): Likewise.
394         (<code>tf2): Likewise.
395         (*absnegtf2_sse): Likewise.
396         (copysign<mode>3): Likewise.
397         (copysign<mode>3_const): Likewise.
398         (copysign<mode>3_var): Likewise.
399         (define_split UNSPEC_COPYSIGN): Likewise.
400         * config/i386/sse.md (*nandtf3): Likewise.
401         (<code>tf3): Likewise.
402         (*<code>tf3): Likewise.
403
404 2008-06-30  Joey Ye  <joey.ye@intel.com>
405             H.J. Lu  <hongjiu.lu@intel.com>
406
407         * global.c (compute_regsets): Set frame_pointer_needed here.
408         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
409
410 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
411
412         * doc/install.texi (specific): Expand Windows build notes.
413
414 2008-06-30  Ira Rosen  <irar@il.ibm.com>
415
416         PR tree-optimization/36648
417         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
418         number of prolog iterations by step. Fix the comment.
419
420 2008-06-30  Richard Guenther  <rguenther@suse.de>
421
422         PR middle-end/36671
423         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
424         handle calls from ECF_MALLOC functions.
425         (handle_pure_call): ECF_MALLOC functions do not return
426         call-used memory.
427         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
428
429 2008-06-29  Andreas Schwab  <schwab@suse.de>
430
431         * config/m68k/m68k.c (print_operand): Always print a float
432         constant in hex.
433         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
434         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
435         Remove macros.
436
437         * config/rs6000/x-linux64: Remove never used file.
438
439 2008-06-29  Richard Guenther  <rguenther@suse.de>
440
441         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
442         prototype.
443         (struct alias_info): Move ...
444         * tree-ssa-alias.c: ... here.
445         (update_alias_info): Declare.
446         (compute_may_aliases): Call it.
447         (update_alias_info): New function.
448         * tree-ssa-structalias.c (update_alias_info): Move ...
449         * tree-ssa-alias.c (update_alias_info_1): ... here.
450         * tree-ssa-structalias.c (process_constraint_1): Remove
451         unused from_call argument.  Rename to ...
452         (process_constraint): ... this.  Delete old wrapper.
453         (make_constraint_to): Adjust callers.
454         (handle_const_call): Likewise.
455         (handle_pure_call): Likewise.
456         (init_base_vars): Likewise.
457         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
458         (find_func_aliases): We don't need structure copies for
459         complex types.
460         (make_constraint_from_anything): Remove.
461         (create_variable_info_for): For globals make constraints
462         from escaped, not from anything.
463         (compute_points_to_sets): Do not call update_alias_info.
464         (ipa_pta_execute): Use make_constraint_from.
465
466 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
467
468         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
469         (bitmap.o-warn, dominance.o-warn): New.
470         * configure.ac (cxx_compat_warn): Delete.
471         (loose_warn): Add -Wcast-qual and -Wc++-compat.
472         * system.h: Remove #pragma diagnostic for -Wcast-qual and
473         -Wc++-compat.
474         * configure: Regenerate.
475
476         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
477         warnings.
478
479 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
480
481         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
482         * df-scan.c (df_notes_rescan): Likewise.
483         * ggc-page.c (set_page_table_entry): Likewise.
484         * intl.c (gcc_gettext_width): Likewise.
485         * varasm.c (get_unnamed_section, get_noswitch_section,
486         get_section): Likewise.
487
488 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
489
490         * regrename.c (build_def_use): Don't copy RTX.
491
492 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
493
494         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
495         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
496         punctuation.  Use @ref instead of @xref.
497         (Function Names): Remove stray @display/@end display.
498         (C++ Attributes): Use @ref instead of @xref.
499         (Deprecated Features): Fix punctuation around @xref.
500         (Backwards Compatibility): Likewise.
501         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
502
503 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
504
505         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
506         constants for E500 double.
507
508 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
509
510         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
511         element type of const_vector.
512
513 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
514
515         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
516         Remove FLAGS_REG clobber from expander pattern.
517         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
518         (anddi3, andsi3, andhi3, andqi3): Ditto.
519         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
520         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
521         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
522         (ashlsi3, ashlhi3, ashlqi3): Ditto.
523         (ashrsi3, ashrhi3, ashrqi3): Ditto.
524         (lshrsi3, lshrhi3, lshrqi3): Ditto.
525         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
526         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
527
528 2008-06-28  Richard Guenther  <rguenther@suse.de>
529
530         * tree-ssa-structalias.c (callused_id, var_callused,
531         callused_tree): Add.
532         (handle_pure_call): New function.
533         (find_func_aliases): Call it.
534         (find_what_p_points_to): Handle the call-used set.
535         (clobber_what_escaped): Likewise.
536         (compute_call_used_vars): New function.
537         (init_base_vars): Init the call-used variable.
538         (do_sd_constraint): Do not propagate the solution from CALLUSED
539         but use CALLUSED as a placeholder.
540         (solve_graph): Likewise.
541         * tree-flow-inline.h (gimple_call_used_vars): New function.
542         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
543         (compute_call_used_vars): Declare.
544         * tree-ssa-alias.c (set_initial_properties): Call
545         compute_call_used_vars.
546         (reset_alias_info): Clear call-used variables.
547         (add_call_clobber_ops): Assert we are not called for const/pure
548         functions.  Remove handling of them.
549         (add_call_read_ops): Handle pure functions by adding the
550         call-used set of variables as VUSEs.
551         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
552         (delete_tree_ssa): Free it.
553         * tree-dfa.c (remove_referenced_var): Clear the var from the
554         call-used bitmap.
555
556 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
557
558         * tree.c (build_varargs_function_type_list): New.
559         (build_function_type_list_1): New.
560         (build_function_type_list): Use build_function_type_list_1.
561         * tree.h (build_varargs_function_type_list): New.
562
563 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
564
565         PR target/34856
566         * config/spu/spu.c (spu_builtin_splats): Do not generate
567         invalid CONST_VECTOR expressions.
568         (spu_expand_vector_init): Likewise.
569
570 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
571
572         * optabs.c (libfunc_decls): New variable.
573         (libfunc_decl_hash, libfunc_decl_eq): New functions.
574         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
575         for the same function twice.
576
577 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
578
579         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
580         ix86_expand_binary_operator directly.
581         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
582         for operand 2.
583         (*ashrti3_1): Ditto.
584         (*lshrti3_1): Ditto.
585         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
586         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
587         using only one splitter.  Conditionaly execute splitter before or
588         after peephole2 pass.
589         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
590         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
591         Use only one alternative in asm template.
592         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
593         in asm template.
594         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
595         "J" operand constraint for operand 2.
596         (*ashldi3_cconly_rex64): Ditto.
597         (*ashrdi3_cmp_rex64): Ditto.
598         (*ashrdi3_cconly_rex64): Ditto.
599         (*lshrdi3_cmp_rex64): Ditto.
600         (*lshrdi3_cconly_rex64): Ditto.
601         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
602         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
603         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
604         gen_x86_shrd_1.
605
606 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
607
608         * gimplify.c (omp_is_private): Don't return true if decl is not
609         already private on #pragma omp for or #pragma omp parallel for.
610
611         PR debug/36617
612         * tree-cfg.c (struct move_stmt_d): Replace block field with
613         orig_block and new_block fields.
614         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
615         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
616         (move_block_to_fn): Replace vars_map and new_label_map arguments
617         with struct move_stmt_d pointer.
618         (replace_block_vars_by_duplicates): New function.
619         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
620         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
621         all subblocks of ORIG_BLOCK to the new function.  Call
622         replace_block_vars_by_duplicates.
623         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
624         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
625         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
626         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
627         (expand_omp): Temporarily set input_location to the location of
628         region's controlling stmt.
629         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
630         BIND_EXPR, push ctx->block_vars and gimplification vars into
631         the BIND_EXPR and its block's BLOCK_VARS instead of directly
632         into dest function.
633         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
634         there are any BLOCK_VARS.
635         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
636         OMP_PARALLEL or OMP_TASK stmt.
637         (lower_omp): Save and restore input_location around the lower_omp_1
638         call.
639
640 2008-06-27  Richard Guenther  <rguenther@suse.de>
641
642         PR tree-optimization/36400
643         PR tree-optimization/36373
644         PR tree-optimization/36344
645         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
646         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
647         (update_alias_info): Remove call clobbering code.
648         (make_constraint_to): New helper function.
649         (make_escape_constraint): Likewise.
650         (handle_rhs_call): Use it on all pointer containing arguments.
651         Also mark the static chain escaped.
652         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
653         instead of ANYTHING.
654         (make_constraint_from): New helper split out from ...
655         (make_constraint_from_anything): ... here.
656         (find_func_aliases): Add constraints for escape sites.
657         (intra_create_variable_infos): Make constraints from NONLOCAL
658         for parameters.
659         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
660         as ANYTHING.
661         (clobber_what_p_points_to): Remove.
662         (clobber_what_escaped): New function.
663         (init_base_vars): Init NONLOCAL and ESCAPED.
664         (do_sd_constraint): Do not propagate the solution from ESCAPED
665         but use ESCAPED as a placeholder.
666         (solve_graph): Likewise.
667         * tree-flow.h (clobber_what_p_points_to): Remove.
668         (clobber_what_escaped): Declare.
669         * tree-ssa-alias.c (set_initial_properties): Call it.
670         Remove code clobbering escaped pointers.
671
672 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
673
674         * function.c (allocate_struct_function): Only allocate a unique
675         funcdef_no if the decl is nonzero.
676
677 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
678
679         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
680         * config/mips/mips.c (mips_split_const_insns): New function.
681         * config/mips/mips.md (move_type): New attribute.
682         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
683         (dword_mode): New attribute.
684         (type): Avoid long line.  Map "move_type"s to "type"s,
685         choosing "multi" for doubleword moves if appropriate.
686         Swap MTC/MFC comments to match their declaration order.
687         (extended_mips16): Default to "yes" if "move_type" is "sll0",
688         "type" is "branch" or "jal" is "direct".
689         (length): Handle "extended_mips16" first.  Make the default
690         "0" for "ghost" instructions.  Set the length from "move_type".
691         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
692         of "type", with "sll0" for the register alternative.  Remove the
693         "extended_mips16" attribute.
694         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
695         of "type", with "shift_shift" for the register alternative.
696         Remove the "length" attribute.
697         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
698         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
699         of "type", with "andi" for the register alternative.
700         (*zero_extendqihi2): Likewise.
701         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
702         of "andi" instead of a "type" of "arith".
703         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
704         instead of "type".
705         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
706         (mov_<store>r, *mov<mode>_ra): Likewise.
707         (extendsidi2): Use "move_type" instead of "type", with "move"
708         for the register alternative.
709         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
710         of "type", with "signext" for the register alternative.
711         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
712         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
713         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
714         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
715         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
716         (unnamed branch insn): Likewise.
717         (*movdi_gp32_fp64): Fold into...
718         (*movdi_32bit): ...here.
719         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
720         (*movdf_hardfloat): ...this new pattern.
721         (*movdf_softfloat): Remove redundant FPR alternatives.
722         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
723         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
724         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
725         the "move" attribute.
726         (*movdi_32bit): Use "move_type" instead of "type" and remove the
727         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
728         and "store" for COP loads and stores.
729         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
730         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
731         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
732         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
733         (*movtf_mips16, *movv2sf): Likewise.
734         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
735         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
736         (mfhc1<mode>): Use "move_type" instead of "move".
737         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
738         (loadgp_blockage): Remove the "length" attribute.
739         (blockage, set_got_version, update_got_version): Likewise.
740         (call_internal): Remove the "extended_mips16" attribute.
741         (call_value_internal, call_value_multiple_internal): Likewise.
742         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
743         instead of "move".
744         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
745         the "length" attribute.
746
747 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
748
749         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
750         -Wcast-qual warnings.
751         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
752         handle_pragma_pop_macro): Likewise.
753         * collect2.c (resolve_lib_name): Likewise.
754         * config/arc/arc.c (arc_init): Likewise.
755         * config/arm/arm.c (neon_builtin_compare,
756         locate_neon_builtin_icode): Likewise.
757         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
758         * config/bfin/bfin.c (bfin_init_machine_status,
759         bfin_optimize_loop): Likewise.
760         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
761         * config/cris/cris.c (cris_init_expanders): Likewise.
762         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
763         * config/darwin.c (machopic_indirection_eq,
764         machopic_indirection_name, machopic_output_indirection): Likewise.
765         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
766         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
767         frv_optimize_membar): Likewise.
768         * config/i386/cygwin.h (mingw_scan,
769         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
770         * config/i386/cygwin1.c (mingw_scan): Likewise.
771         * config/i386/i386.c (machopic_output_stub): Likewise.
772         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
773         i386_pe_unique_section): Likewise.
774         * config/ia64/ia64.c (ia64_init_machine_status,
775         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
776         Likewise.
777         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
778         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
779         * config/m68k/m68k.c (m68k_handle_option,
780         m68k_sched_md_init_global): Likewise.
781         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
782         mcore_unique_section): Likewise.
783         * config/mips/mips.c (mips_block_move_straight,
784         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
785         Likewise.
786         * config/mmix/mmix.c (mmix_init_machine_status,
787         mmix_encode_section_info): Likewise.
788         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
789         * config/rs6000/rs6000.c (rs6000_init_machine_status,
790         print_operand_address, output_toc, redefine_groups,
791         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
792         * config/s390/s390.c (s390_init_machine_status): Likewise.
793         * config/score/score.c (score_block_move_straight,
794         score_block_move_loop_body): Likewise.
795         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
796         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
797         * emit-rtl.c (find_auto_inc): Likewise.
798         * gcc.c (translate_options, process_command): Likewise.
799         * reorg.c (dbr_schedule): Likewise.
800         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
801         * xcoffout.c (xcoffout_declare_function): Likewise.
802
803 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
804
805         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
806         ipa-pta working again.
807
808 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
809
810         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
811         genautomata.
812
813 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
814
815         * config.gcc (powerpc*-*-*): Add new core e500mc.
816         * config/rs6000/e500mc.md: New file.
817         * config/rs6000/rs6000.c (processor_costs): Add new costs for
818         e500mc.
819         (rs6000_override_options): Add e500mc case to
820         processor_target_table. Altivec and Spe options not allowed
821         with e500mc. Add isel instruction to e500mc by
822         default. Initialize rs6000_cost for e500mc.
823         (rs6000_issue_rate): Set issue rate for e500mc.
824         * config/rs6000/rs6000.h (processor_type): Add
825         PROCESSOR_PPCE500MC.
826         (ASM_CPU_SPEC): Add e500mc.
827         Set TARGET_ISEL to rs6000_isel.
828         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
829         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
830         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
831         Include e500mc.md.
832         * doc/invoke.texi: Add e500mc to list of cpus.
833
834 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
835
836         PR c/34867
837         * c-lex.c (lex_charconst): Initialize unsignedp.
838
839 2008-06-27  Olivier Hainque  <hainque@adacore.com>
840
841         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
842         documented assumptions.
843
844 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
845
846         * dwarf2out.c: Remove trailing white spaces.  Break long line
847         in comments.
848
849 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
850
851         * libfuncs.h (LTI_synchronize): New libfunc_index.
852         (synchronize_libfunc): Declare.
853         * builtins.c (expand_builtin_synchronize): Consider using
854         synchronize_libfunc before falling back on an asm blockage.
855         * config/mips/mips.c: Include libfuncs.h
856         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
857
858 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
859
860         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
861         parameter.  Copy stack_reg to r11 where appropriate.
862         (no_global_regs_above): Add gpr parameter.
863         (rs6000_stack_info): Only add padding for SPE save area if we
864         are saving SPE GPRs and CR.
865         (saveres_routine_syms): New variable.
866         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
867         Define.
868         (rs6000_savres_routine_sym): New function.
869         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
870         split out of...
871         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
872         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
873         Tweak FPR out-of-line saving.
874         (rs6000_make_savres_rtx): New function.
875         (rs6000_use_multiple_p): New function.
876         (rs6000_savres_strategy): New function.
877         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
878         out-of-line if appropriate.
879         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
880         if we are optimizing for size.
881         (GP_SAVE_INLINE): Define.
882         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
883         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
884         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
885         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
886         (*save_fpregs_<mode>): Add use of r11.
887         (*restore_gpregs_<mode>): New insn.
888         (*return_and_restore_gpregs_<mode>): New insn.
889         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
890         use r11.
891         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
892         (*restore_gpregs_spe): New insn.
893         (*return_and_restore_gpregs_spe): New insn.
894         * config/rs6000/predicates.md (save_world_operation): Fix check.
895
896 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
897
898         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
899         this point, so assert that.
900
901 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
902
903         * cfganal.c: Include vec.h and vecprim.h.
904         (compute_idf): Import from...
905         * tree-into-ssa (compute_idf): ...here.
906         * basic-block.h (compute_idf): Export.
907
908 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
909
910         * c-decl.c (merge_decls): Use !current_function_decl to check for
911         extern declaration of C99 inline function being at file scope.
912
913 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
914
915         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
916
917 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
918
919         * alias.c (record_alias_subset, init_alias_analysis): Fix
920         -Wc++-compat and/or -Wcast-qual warnings.
921         * attribs.c (lookup_attribute_spec): Likewise.
922         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
923         copy_bb, connect_traces,
924         find_rarely_executed_basic_blocks_and_cr): Likewise.
925         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
926         note_btr_set, migrate_btr_defs): Likewise.
927         * builtins.c (result_vector, expand_builtin_memcpy,
928         expand_builtin_mempcpy_args, expand_builtin_strncpy,
929         builtin_memset_read_str, expand_builtin_printf,
930         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
931         Likewise.
932         * caller-save.c (mark_set_regs): Likewise.
933         * calls.c (expand_call, emit_library_call_value_1): Likewise.
934         * cgraph.c (cgraph_edge): Likewise.
935         * combine.c (likely_spilled_retval_1): Likewise.
936         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
937         htab_counts_entry_del, get_coverage_counts): Likewise.
938         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
939         new_cselib_val): Likewise.
940         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
941         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
942         Likewise.
943         * df-core.c (df_compact_blocks): Likewise.
944         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
945         * df-scan.c (df_grow_reg_info, df_ref_create,
946         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
947         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
948         df_record_entry_block_defs, df_record_exit_block_uses,
949         df_bb_verify): Likewise.
950         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
951         DF_REF_EXTRACT_MODE_CONST): New.
952         * dominance.c (get_immediate_dominator, get_dominated_by,
953         nearest_common_dominator, root_of_dom_tree,
954         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
955         -Wc++-compat and/or -Wcast-qual warnings.
956         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
957         record_store, replace_read, check_mem_read_rtx, scan_insn,
958         dse_step1, dse_record_singleton_alias_set): Likewise.
959         * dwarf2asm.c (dw2_force_const_mem): Likewise.
960
961 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
962
963         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
964         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
965         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
966         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
967         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
968         add_ranges_num, add_ranges_by_labels, file_info_cmp,
969         file_name_acquire, output_file_names, add_const_value_attribute,
970         premark_used_types_helper, file_table_eq, file_table_hash,
971         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
972         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
973         -Wcast-qual warnings.
974         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
975         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
976         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
977         gen_reg_rtx, start_sequence, init_emit): Likewise.
978         * et-forest.c (et_new_occ, et_new_tree): Likewise.
979         * except.c (init_eh_for_function, gen_eh_region,
980         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
981         arh_to_landing_pad, arh_to_label, add_action_record,
982         add_call_site, switch_to_exception_section): Likewise.
983         * expmed.c (synth_mult): Likewise.
984         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
985         store_expr): Likewise.
986         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
987         Likewise.
988         * function.c (assign_stack_temp_for_type,
989         allocate_struct_function, match_asm_constraints_1): Likewise.
990         * gcov-io.c (gcov_allocate): Likewise.
991         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
992         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
993         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
994         record_one_set, insert_expr_in_table, insert_set_in_table,
995         dump_hash_table, compute_hash_table_work, alloc_hash_table,
996         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
997         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
998         -Wcast-qual warnings.
999
1000 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1001
1002         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
1003         -Wcast-qual warnings.
1004         * gcc.c (process_command): Likewise.
1005         * genattrtab.c (oballoc): Use XOBNEW.
1006         (oballocvec): Define.
1007         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
1008         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
1009         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
1010         -Wc++-compat and/or -Wcast-qual warnings.
1011         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
1012         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
1013         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
1014         gen_presence_absence_set, gen_automaton, gen_regexp_el,
1015         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
1016         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
1017         add_excls, process_presence_absence_names,
1018         process_presence_absence_patterns, add_presence_absence,
1019         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
1020         get_free_state, add_arc, get_free_automata_list_el,
1021         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
1022         transform_3, cache_presence, create_ainsns, create_automata,
1023         create_state_ainsn_table, dfa_insn_code_enlarge,
1024         output_trans_func, output_min_issue_delay_func,
1025         output_dead_lock_func, output_reset_func,
1026         output_get_cpu_unit_code_func, output_dfa_start_func,
1027         expand_automata): Likewise.
1028         * genextract.c (gen_insn): Likewise.
1029         * gengtype-lex.l: Likewise.
1030         * gengtype.c (read_input_list, adjust_field_type,
1031         process_gc_options): Likewise.
1032         * genoutput.c (note_constraint): Likewise.
1033         * genpreds.c (mangle, add_constraint): Likewise.
1034         * genrecog.c (process_define_predicate, new_decision,
1035         add_to_sequence): Likewise.
1036         * gensupport.c (record_insn_name): Likewise.
1037
1038 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1039
1040         * config/i386/driver-i386.c (detect_caches_amd,
1041         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
1042         and/or -Wcast-qual warnings.
1043         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
1044         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
1045         gt_pch_save): Likewise.
1046         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
1047         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
1048         * global.c (compute_regsets): Likewise.
1049         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1050         finish_graph_dump_file): Likewise.
1051         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
1052         unlink_bb_notes): Likewise.
1053         * integrate.c (get_hard_reg_initial_val): Likewise.
1054         * ipa-prop.c (ipa_push_func_to_list): Likewise.
1055         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
1056         * local-alloc.c (update_equiv_regs): Likewise.
1057         * loop-invariant.c (check_invariant_table_size,
1058         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
1059         Likewise.
1060         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
1061         altered_reg_used, mark_altered): Likewise.
1062         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
1063         insert_var_expansion_initialization,
1064         combine_var_copies_in_loop_exit, apply_opt_in_copies,
1065         release_var_copies): Likewise.
1066         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
1067         analyze_matrix_decl, add_allocation_site, analyze_transpose,
1068         analyze_accesses_for_phi_node, check_var_notmodified_p,
1069         check_allocation_function, find_sites_in_func,
1070         record_all_accesses_in_func, transform_access_sites,
1071         transform_allocation_sites): Likewise.
1072         * omp-low.c (new_omp_region, create_omp_child_function_name,
1073         check_omp_nesting_restrictions, check_combined_parallel,
1074         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
1075         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
1076         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1077         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
1078         Likewise.
1079         * opts-common.c (prune_options): Likewise.
1080         * opts.c (add_input_filename, print_filtered_help,
1081         get_option_state): Likewise.
1082         * params.c (add_params): Likewise.
1083         * passes.c (set_pass_for_id, next_pass_1,
1084         do_per_function_toporder, pass_fini_dump_file): Likewise.
1085         * postreload.c (reload_cse_simplify_operands): Likewise.
1086         * predict.c (tree_predicted_by_p, tree_predict_edge,
1087         clear_bb_predictions, combine_predictions_for_bb): Likewise.
1088
1089 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1090
1091         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
1092         warnings.
1093         * recog.c (check_asm_operands, validate_change_1): Likewise.
1094         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
1095         subst_asm_stack_regs): Likewise.
1096         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
1097         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
1098         * regmove.c (reg_is_remote_constant_p): Likewise.
1099         * regrename.c (regrename_optimize, scan_rtx_reg,
1100         kill_clobbered_value, kill_set_value, kill_autoinc_value):
1101         Likewise.
1102         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
1103         regstat_compute_calls_crossed): Likewise.
1104         * reload1.c (init_reload, new_insn_chain,
1105         has_nonexceptional_receiver, reload, copy_reloads,
1106         calculate_needs_all_insns, init_elim_table): Likewise.
1107         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
1108         * rtl.c (shallow_copy_rtx_stat): Likewise.
1109         * rtlanal.c (parms_set): Likewise.
1110         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
1111         sbitmap_resize, sbitmap_vector_alloc): Likewise.
1112         * sched-ebb.c (earliest_block_with_similiar_load,
1113         add_deps_for_risky_insns): Likewise.
1114         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
1115         schedule_region): Likewise.
1116         * see.c (eq_descriptor_pre_extension,
1117         hash_descriptor_pre_extension, hash_del_pre_extension,
1118         eq_descriptor_properties, hash_descriptor_properties,
1119         hash_del_properties, see_seek_pre_extension_expr,
1120         see_initialize_data_structures, see_print_register_properties,
1121         see_print_pre_extension_expr, see_delete_merged_def_extension,
1122         see_delete_unmerged_def_extension, see_emit_use_extension,
1123         see_pre_delete_extension, see_map_extension, see_commit_changes,
1124         see_analyze_merged_def_local_prop,
1125         see_analyze_merged_def_local_prop,
1126         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
1127         see_set_prop_merged_def, see_set_prop_unmerged_def,
1128         see_set_prop_unmerged_use, see_print_one_extension,
1129         see_merge_one_use_extension, see_merge_one_def_extension,
1130         see_store_reference_and_extension, see_update_uses_relevancy,
1131         see_update_defs_relevancy): Likewise.
1132         * statistics.c (hash_statistics_hash, hash_statistics_eq,
1133         hash_statistics_free, curr_statistics_hash): Likewise.
1134         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
1135         expand_asm_operands, expand_return, case_bit_test_cmp,
1136         expand_case): Likewise.
1137         * stor-layout.c (start_record_layout): Likewise.
1138         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
1139         gt_pch_save_stringpool): Likewise.
1140         * tree-data-ref.c (hash_stmt_vertex_info,
1141         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
1142         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
1143
1144 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
1145
1146         PR target/36627
1147         * config/i386/i386.md : Change constraints of HImode and QImode
1148         immediate operands from "i" to "n".  Change SImode "ni" constraint to
1149         "i" and SImode "rmi" constraint to "g".  Remove all constraints
1150         from const0_operand and const1_operand predicated operands.
1151         (i): Change QImode and HImode attribute from "i" to "n".
1152         (*subqi_2): Change HImode operands to QImode.
1153         (*subqi_3): Ditto.
1154
1155 2008-06-25  Olivier Hainque  <hainque@adacore.com>
1156
1157         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
1158         sed substitutions.
1159
1160 2008-06-25  Richard Guenther  <rguenther@suse.de>
1161
1162         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
1163         not overflow the result type.
1164
1165 2008-06-25  Richard Guenther  <rguenther@suse.de>
1166
1167         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
1168         (vn_lookup): Likewise.
1169
1170 2008-06-25  Richard Guenther  <rguenther@suse.de>
1171
1172         PR tree-optimization/35518
1173         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
1174         * tree-sra.c (instantiate_element): Use fold_build3 to build
1175         BIT_FIELD_REFs.
1176         (try_instantiate_multiple_fields): Likewise.
1177
1178 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1179
1180         * config/rs6000/rs6000.md: Change all string instruction's clobber to
1181         be early clobbers.
1182
1183 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1184
1185         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
1186         use_backchain_to_restore_sp to true
1187         if the offset of the link register save area would go over the 32k - 1
1188         offset limit of the load
1189         instructions.
1190
1191 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
1192
1193         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
1194         anchor for the type-punning blurb.  Cross-reference "Structures
1195         unions enumerations and bit-fields implementation".  Provide a
1196         cast-through-pointer example.  Make final sentence self-contained.
1197         * doc/implement-c.texi (Structures unions enumerations and
1198         bit-fields implementation): Cross-reference the type-punning blurb
1199         in the -fstrict-aliasing documentation.
1200
1201 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1202
1203         PR middle-end/36594
1204         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
1205         the memory instead of the memory itself for the save area.
1206
1207 2008-06-24  Olivier Hainque  <hainque@adacore.com>
1208             Nicolas Roche  <roche@adacore.com>
1209
1210         * gengtype.c (srcdir_len): size_t instead of int.
1211         (get_file_realbasename): New function.  For F a filename, the real
1212         basename of F, with all the path components stripped.
1213         (get_file_srcdir_relative_path): New function.  For F a filename, the
1214         relative path to F from $(srcdir).
1215         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
1216         get_file_realbasename.  Adjust the head comment.
1217         (get_prefix_langdir_index): New function. For F a filename, return the
1218         lang_dir_names[] relative index of the language directory that is
1219         a prefix in F.
1220         (get_file_langdir): For F a filename, return the name of the language
1221         directory where F is located.
1222         (get_file_gtfilename): New function. The gt- output file name for an
1223         input filename F.
1224         (get_output_file_with_visibility): Replace in-line computations with
1225         uses of get_file_gtfilename and get_prefix_langdir_index.
1226         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
1227
1228 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
1229
1230         PR tree-optimization/36504
1231         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
1232         references without base address.
1233
1234 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1235
1236         PR middle-end/36584
1237         * calls.c (expand_call): Increase alignment for recursive functions.
1238
1239 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
1240
1241         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
1242         (TARGET_FUNCTION_VALUE): New define.
1243         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
1244         * config/avr/avr.h (FUNCTION_VALUE): Remove.
1245
1246 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1247
1248         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
1249         (fmod<mode>3): Ditto.
1250         (remainderxf3): Ditto.
1251         (remainder<mode>3): Ditto.
1252
1253 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
1254
1255         PR target/36533
1256         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
1257         REG is a hard register.
1258
1259         PR tree-optimization/36508
1260         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
1261         499, don't check it at all in release compilers.
1262
1263 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1264
1265         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
1266         together with SSE_TARGET_MATH to disable insn pattern.
1267         (*fop_<MODEF:mode>_2_i387): Ditto.
1268         (*fop_<MODEF:mode>_3_i387): Ditto.
1269
1270 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
1271
1272         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
1273         
1274 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1275
1276         PR middle-end/34906
1277         * gimplify.c (gimplify_asm_expr): Check the return code of
1278         parse_output_constraint call, set function return and is_inout
1279         value if it failed.
1280
1281 2008-06-22  Ian Lance Taylor  <iant@google.com>
1282
1283         * c-lex.c (narrowest_unsigned_type): Change itk to int.
1284         (narrowest_signed_type): Likewise.
1285         * c-typeck.c (c_common_type): Change local variable mclass to enum
1286         mode_class, twice.
1287         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
1288         tcc_comparison, not the tree code itself.
1289         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
1290         (c_expand_expr): Cast modifier to enum expand_modifier.
1291         * c-common.h (C_RID_CODE): Add casts.
1292         (C_SET_RID_CODE): Define.
1293         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
1294         (c_lex_one_token): Add cast to avoid warning.
1295         (c_parser_objc_type_name): Rename local typename to type_name.
1296         (check_no_duplicate_clause): Change code parameter to enum
1297         omp_clause_code.
1298         (c_parser_omp_var_list_parens): Change kind parameter to enum
1299         omp_clause_code.
1300         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
1301         c_parser_omp_list_var_parens.
1302         (c_parser_omp_threadprivate): Likewise.
1303         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
1304         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
1305         * c-format.c (NO_FMT): Define.
1306         (printf_length_specs): Use NO_FMT.
1307         (asm_fprintf_length_specs): Likewise.
1308         (gcc_diag_length_specs): Likewise.
1309         (scanf_length_specs): Likewise.
1310         (strfmon_length_specs): Likewise.
1311         (gcc_gfc_length_specs): Likewise.
1312         (printf_flag_specs): Change 0 to STD_C89.
1313         (asm_fprintf_flag_specs): Likewise.
1314         (gcc_diag_flag_specs): Likewise.
1315         (gcc_cxxdiag_flag_specs): Likewise.
1316         (scanf_flag_specs): Likewise.
1317         (strftime_flag_specs): Likewise.
1318         (strfmon_flag_specs): Likewise.
1319         (print_char_table): Likewise.
1320         (asm_fprintf_char_table): Likewise.
1321         (gcc_diag_char_table): Likewise.
1322         (gcc_tdiag_char_table): Likewise.
1323         (gcc_cdiag_char_table): Likewise.
1324         (gcc_cxxdiag_char_table): Likewise.
1325         (gcc_gfc_char_table): Likewise.
1326         (scan_char_table): Likewise.
1327         (time_char_table): Likewis.
1328         (monetary_char_table): Likewise.
1329         * c-format.h (BADLEN): Likewise.
1330
1331 2008-06-21  Ian Lance Taylor  <iant@google.com>
1332
1333         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
1334         Define END_OF_BASE_TREE_CODES around inclusion.
1335         * tree.c (tree_code_type): New global array.
1336         (tree_code_length, tree_code_name): Likewise.
1337         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
1338         $(lang_tree_files).
1339         (all-tree.def, s-alltree): New targets.
1340         (gencheck.h, s-gencheck): Remove.
1341         (tree.o): Depend upon all-tree.def.
1342         (build/gencheck.o): Remove gencheck.h dependency.
1343         (mostlyclean): Don't remove gencheck.h.
1344         * c-common.h (enum c_tree_code): Remove.
1345         * c-lang.c (tree_code_type): Remove.
1346         (tree_code_length, tree_code_name): Remove.
1347         * gencheck.c (tree_codes): Include all-tree.def, rather than
1348         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
1349         after it is used.
1350         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
1351         than tree.def.
1352         * cp/cp-tree.h (enum cplus_tree_code): Remove.
1353         (operator_name_info): Size to MAX_TREE_CODES.
1354         (assignment_operator_name_info): Likewise.
1355         * cp/cp-lang.c (tree_code_type): Remove.
1356         (tree_code_length, tree_code_name): Remove.
1357         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
1358         (assignment_operator_name_info): Likewise.
1359         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
1360         MAX_TREE_CODES.
1361         * cp/mangle.c (write_expression): Likewise.
1362         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
1363         * fortran/f95-lang.c (tree_code_type): Remove.
1364         (tree_code_length, tree_code_name): Remove.
1365         * java/java-tree.h (enum java_tree_code): Remove.
1366         * java/lang.c (tree_code_type): Remove.
1367         (tree_code_length, tree_code_name): Remove.
1368         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
1369         * objc/objc-act.h (enum objc_tree_code): Remove.
1370         * objc/objc-lang.c (tree_code_type): Remove.
1371         (tree_code_length, tree_code_name): Remove.
1372         * objcp/objcp-lang.c (tree_code_type): Remove.
1373         (tree_code_length, tree_code_name): Remove.
1374         * ada/ada-tree.h (enum gnat_tree_code): Remove.
1375         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
1376         * ada/misc.c (tree_code_type): Remove.
1377         (tree_code_length, tree_code_name): Remove.
1378
1379 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1380
1381         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
1382         the grand_bitmap_obstack.
1383
1384 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1385
1386         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
1387         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
1388         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
1389         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
1390         move_stmt_r, new_label_mapper): Likewise.
1391         * tree-complex.c (cvc_lookup): Likewise.
1392         * tree-dfa.c (create_function_ann): Likewise.
1393         * tree-dump.c (dump_register): Likewise.
1394         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
1395         find_phi_replacement_condition): Likewise.
1396         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
1397         tree_function_versioning): Likewise.
1398         * tree-into-ssa.c (cmp_dfsnum): Likewise.
1399         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
1400         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
1401         get_nonlocal_debug_decl, convert_nonlocal_reference,
1402         convert_nonlocal_omp_clauses, get_local_debug_decl,
1403         convert_local_reference, convert_local_omp_clauses,
1404         convert_nl_goto_reference, convert_nl_goto_receiver,
1405         convert_tramp_reference, convert_call_expr): Likewise.
1406         * tree-outof-ssa.c (contains_tree_r): Likewise.
1407         * tree-parloops.c (reduction_phi, initialize_reductions,
1408         eliminate_local_variables_1, add_field_for_reduction,
1409         add_field_for_name, create_phi_for_local_result,
1410         create_call_for_reduction_1, create_loads_for_reductions,
1411         create_stores_for_reduction, create_loads_and_stores_for_name):
1412         Likewise.
1413         * tree-phinodes.c (allocate_phi_node): Likewise.
1414         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
1415         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
1416         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
1417         * tree-ssa-coalesce.c (compare_pairs): Likewise.
1418         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
1419         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
1420         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
1421         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
1422         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
1423         vn_nary_op_insert): Likewise.
1424         * tree-ssa.c (redirect_edge_var_map_add,
1425         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
1426         * tree-vectorizer.c (vectorize_loops): Likewise.
1427         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
1428         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
1429         tree_cons_stat, build1_stat, build_variant_type_copy,
1430         decl_init_priority_lookup, decl_fini_priority_lookup,
1431         decl_priority_info, decl_restrict_base_lookup,
1432         decl_restrict_base_insert, decl_debug_expr_lookup,
1433         decl_debug_expr_insert, decl_value_expr_lookup,
1434         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
1435         type_hash_add, get_file_function_name, tree_check_failed,
1436         tree_not_check_failed, tree_range_check_failed,
1437         omp_clause_range_check_failed, build_omp_clause,
1438         build_vl_exp_stat): Likewise.
1439         * value-prof.c (gimple_histogram_value,
1440         gimple_duplicate_stmt_histograms): Likewise.
1441         * var-tracking.c (attrs_list_insert, attrs_list_copy,
1442         unshare_variable, variable_union_info_cmp_pos, variable_union,
1443         dataflow_set_different_1, dataflow_set_different_2,
1444         vt_find_locations, variable_was_changed, set_variable_part,
1445         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
1446         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
1447         section_entry_hash, object_block_entry_eq,
1448         object_block_entry_hash, create_block_symbol,
1449         initialize_cold_section_name, default_function_rodata_section,
1450         strip_reg_name, set_user_assembler_name, const_desc_eq,
1451         build_constant_desc, output_constant_def, lookup_constant_def,
1452         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
1453         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
1454         default_internal_label): Likewise.
1455         * varray.c (varray_init, varray_grow): Likewise.
1456         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
1457
1458 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
1459
1460         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
1461         operators for "test" insn.  Macroize insn using SWI mode macro.
1462         (*jcc_fused_2): Ditto.
1463         (*jcc_fused_3): Macroize insn using SWI mode macro.
1464         (*jcc_fused_4): Ditto.
1465
1466 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
1467
1468         * tree-ssa-pre.c: Fix typo in comment.
1469         (init_antic, fini_antic): Add explicit funtions for
1470         initializing and deinitializing ANTIC and AVAIL sets.
1471         (create_expression_by_pieces): Fix typo in comment.
1472         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
1473         (execute_pre): Eventually dump details about ANTIC_IN.
1474
1475 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1476
1477         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
1478         * gcc.c (translate_options, init_spec, store_arg, read_specs,
1479         add_to_obstack, file_at_path, find_a_file, execute,
1480         add_preprocessor_option, add_assembler_option, add_linker_option,
1481         process_command, insert_wrapper, do_option_spec, do_self_spec,
1482         spec_path, do_spec_1, is_directory, main, used_arg,
1483         getenv_spec_function): Likewise.
1484         * tlink.c (symbol_hash_lookup, file_hash_lookup,
1485         demangled_hash_lookup, symbol_push, file_push, frob_extension):
1486         Likewise.
1487
1488 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1489
1490         * doc/rtl.texi: Updated subreg section.
1491
1492 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
1493
1494         PR c++/36523
1495         * cgraphunit.c (cgraph_process_new_functions): Don't clear
1496         node->needed and node->reachable.
1497         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
1498         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
1499         (expand_task_call): Don't call expand_task_copyfn.
1500         (expand_task_copyfn): Renamed to...
1501         (finalize_task_copyfn): ... this.
1502
1503 2008-06-19  Jan Hubicka  <jh@suse.cz>
1504
1505         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
1506         clobbering framepointer.
1507
1508 2008-06-19  Jan Hubicka  <jh@suse.cz>
1509
1510         * tree-optimize.c (execute_early_local_optimizations): Set
1511         cgraph_state only at first invocation.
1512
1513 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1514
1515         * system.h (-Wc++-compat): Activate as a warning, no an error.
1516
1517 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
1518
1519         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
1520         instead of "#" in insn asm template.
1521         (*jcc_fused_2): Ditto.
1522
1523 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
1524
1525         * config/i386/i386.h (ix86_tune_indices)
1526         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
1527         (TARGET_FUSE_CMP_AND_BRANCH): New define.
1528         * config/i386/i386.md (*jcc_fused_1): New insn pattern
1529         (*jcc_fused_2): Ditto.
1530         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
1531         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
1532         (print operand): Handle 'E' and 'e' code.
1533
1534 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
1535
1536         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
1537         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1538         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1539
1540 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
1541
1542         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
1543         node->decl.
1544         (cgraph_expand_function): Use local copy of decl.
1545         (cgraph_expand_all_functions): Remove redundant initialization of
1546         order_pos.
1547         (cgraph_optimize): Reword internal_error message.
1548
1549 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
1550
1551         * arm-protos.h (arm_return_in_memory): Remove public
1552         arm_return_in_memory() prototype.
1553         * arm.c (arm_return_in_memory): Add static prototype, add target
1554         hook macro, change definition and comments.
1555         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
1556
1557 2008-06-19  Ben Elliston  <bje@au.ibm.com>
1558
1559         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
1560         real.c: Remove references to IEEE 754R.
1561         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
1562         * doc/libgcc.texi (Decimal float library routines): Likewise.
1563
1564 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1565
1566         * targhooks.h (struct gcc_target): New member unwind_word_mode.
1567         (default_unwind_word_mode): Add prototype.
1568         * targhooks.c (default_unwind_word_mode): New function.
1569         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
1570         instead of word_mode.
1571         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
1572         (TARGET_INITIALIZER): Use it.
1573
1574         * c-common.c (handle_mode_attribute): Support "unwind_word"
1575         mode attribute.
1576         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
1577
1578         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
1579         word_mode to access SjLj_Function_Context member "data".
1580         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
1581         conversion from targetm.eh_return_filter_mode () to
1582         targetm.unwind_word_mode () if they differ.
1583
1584         * builtin-types.def (BT_UNWINDWORD): New primitive type.
1585         (BT_FN_UNWINDWORD_PTR): New function type.
1586         (BT_FN_WORD_PTR): Remove.
1587         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
1588         * except.c (expand_builtin_extend_pointer): Convert pointer to
1589         targetm.unwind_word_mode () instead of word_mode.
1590
1591         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
1592         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
1593         (spu_unwind_word_mode): New function.
1594         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
1595         (TARGET_UNWIND_WORD_MODE): Define.
1596         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
1597
1598 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1599
1600         * config/spu/spu.c (reg_align): Remove.
1601         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
1602         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
1603         (spu_split_store): Likewise.
1604
1605 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
1606
1607         * gcc/tree-vn.c: Fix typo in comment.
1608
1609 2008-06-18  Jan Hubicka  <jh@suse.cz>
1610
1611         * cgraphunit.c (cgraph_optimize): Output debug info when doing
1612         toplevel reorder too.
1613
1614 2008-06-18  Jan Hubicka  <jh@suse.cz>
1615
1616         * c-opts.c (c_common_post_options): PCH is not compatible with
1617         no-unit-at-a-time.
1618         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
1619         -fno-toplevel-reorder by default now.
1620
1621 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1622
1623         PR documentation/30739
1624         * doc/install.texi (Prerequisites): Document dependency on awk.
1625
1626 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
1627             Ian Lance Taylor  <iant@google.com>
1628
1629         PR rtl-optimization/35604
1630         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
1631         only want to change jump destinations, not eventual label comparisons.
1632
1633 2008-06-16  Jan Hubicka  <jh@suse.cz>
1634
1635         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
1636         syntax errors.
1637         (cgraph_analyze_function): Likewise.
1638
1639 2008-06-16  Jan Hubicka  <jh@suse.cz>
1640
1641         * cgraph.h (cgraph_mark_if_needed): New function.
1642         * cgraphunit.c (cgraph_mark_if_needed): New function.
1643         * c-decl.c (duplicate_decl): Use it.
1644
1645 2008-06-16  Jan Hubicka  <jh@suse.cz>
1646
1647         * cgraph.c (cgraph_add_new_function): When in expansion state, do
1648         lowering.
1649
1650 2008-06-16  Jan Hubicka  <jh@suse.cz>
1651
1652         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
1653
1654 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
1655             Kazu Hirata  <kazu@codesourcery.com>
1656             Maxim Kuvyrkov  <maxim@codesourcery.com
1657
1658         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
1659         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
1660         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
1661         EXTRA_SPEC_FUNCTIONS.
1662         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
1663         (DRIVER_SELF_SPECS): Adjust.
1664         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
1665         * config/mips/st.h, config/mips/t-st: New.
1666         * config/mips/driver-native.c, config/mips/x-native: New.
1667         * doc/invoke.texi (MIPS): Document 'native' value for -march and
1668         -mtune options.
1669
1670 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1671
1672         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
1673         from it.
1674         (ISA_HAS_FP_CONDMOVE): New macro.
1675         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
1676         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
1677         (ISA_HAS_NMADD3_NMSUB3): New macro.
1678         * config/mips/mips.c (mips_rtx_costs): Update.
1679         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
1680         compiling for ST Loongson 2E/2F.
1681         (madd<mode>): Rename to madd4<mode>.  Update.
1682         (madd3<mode>): New pattern.
1683         (msub<mode>): Rename to msub4<mode>.  Update.
1684         (msub3<mode>): New pattern.
1685         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
1686         (nmadd3<mode>): New pattern.
1687         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
1688         (nmadd3<mode>_fastmath): New pattern.
1689         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
1690         (nmsub3<mode>): New pattern.
1691         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
1692         (nmsub3<mode>_fastmath): New pattern.
1693         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
1694
1695 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
1696
1697         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
1698         (DF_REF_INSN_INFO): New.
1699         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
1700         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
1701         with a NULL DF_REF_INSN_INFO.
1702         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
1703         DF_INSN_SET.
1704         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
1705         DF_INSN_INFO_EQ_USES): New.
1706         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
1707         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
1708         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
1709         * df-core.c: Update comment for above changes.
1710         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
1711         DF_INSN_UID_* macros.
1712         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
1713         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
1714         insn rtx.  Update all callers.
1715         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
1716         df_ref_create_structure, df_insn_refs_collect): Likewise.
1717         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
1718         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
1719         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
1720         macros to access the insn refs.
1721         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
1722         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
1723         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
1724         for accessing the refs.
1725         (try_fwprop_subst): Likewise.
1726         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
1727         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
1728         for accessing the refs.
1729         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
1730         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
1731         to look at the insn refs.
1732         (record_uses): Likewise.
1733         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
1734         function anymore.
1735         (mark_artificial_uses): Don't mark_insn for artificial refs.
1736         (mark_reg_rependencies): Likewise.
1737
1738         * doc/rtl.texi: Remove documentation of ADDRESSOF.
1739
1740 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1741
1742         * configure: Regenerate.
1743
1744 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1745
1746         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
1747         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1748         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1749
1750 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1751
1752         * config/avr/avr.c (avr_mcu_t): Add attiny167.
1753         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1754         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1755
1756 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1757
1758         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
1759         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1760         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1761
1762 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1763
1764         * tree-ssa-sccvn.c: Fix format of comments.
1765
1766 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1767
1768         * cgraph.c: Remove unneeded forward declarations of eq_node()
1769         and hash_node().
1770
1771 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
1772
1773         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
1774         REG_RETVAL notes.
1775         (see_update_relevancy): Likewise.
1776         * fwprop.c (try_fwprop_subst): Likewise.
1777         * rtlanal.c (noop_move_p): Likewise.
1778         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
1779         notes to non-existing libcall blocks.
1780         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
1781         Remove orig_set.
1782         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
1783         (dead_libcall_p): Remove.
1784         (delete_trivially_dead_insns): Don't use it.
1785         * web.c (union_defs): Remove comment about keeping nops.
1786         * gcse.c (hash_scan_insn): Don't take libcall pointers.
1787         (compute_hash_table_work): Don't track libcall notes.
1788         (do_local_cprop): Don't take libcall pointers.  Don't update
1789         libcall notes.
1790         (adjust_libcall_notes): Deleted.
1791         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
1792         ever have existed in the first place).
1793         (replace_store_insn): Don't try to remove libcall notes.
1794         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
1795         (resolve_reg_notes): Don't call them.
1796         (resolve_simple_move): Likewise.
1797         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
1798         Don't remove REG_RETVAL notes.
1799         * emit-rtl.c (try_split): Don't update libcall notes.
1800         (emit_copy_of_insn_after): Dito.
1801         * cselib.c (cselib_current_insn_in_libcall): Remove.
1802         (cselib_process_insn): Don't set/clear it.
1803         (new_elt_loc_list): Don't record it.
1804         (cselib_init): Don't initialize it.
1805         * cselib.c (struct elt_loc_list): Remove in_libcall field.
1806         * loop-invariant.c (find_invariant_insn): Don't look for libcall
1807         notes.
1808         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
1809         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
1810         (init_deps): Don't initialize it.
1811         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
1812         * combine.c (delete_noop_moves): Don't update libcall notes.
1813         (can_combine_p): Remove now pointless #if 0 block.
1814         (try_combine): Remove another obsolete #if 0 block.
1815         (distribute_notes): Don't distribute libcall notes.
1816         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
1817         * dce.c (libcall_dead_p): Remove.
1818         (delete_unmarked_insns): Don't handle libcall blocks.
1819         (preserve_libcall_for_dce): Remove.
1820         (prescan_insns_for_dce): Don't special-case libcall block insns.
1821         * reload1 (reload): Don't handle libcall notes. 
1822         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
1823         documentation.
1824
1825 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1826
1827         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
1828         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1829         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1830
1831 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1832
1833         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
1834         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1835         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1836
1837 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1838
1839         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
1840
1841 2008-06-16  Ira Rosen  <irar@il.ibm.com>
1842
1843         PR tree-optimization/36493
1844         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1845         the arguments list. Use VECTYPE to create vector pointer.
1846         (vectorizable_store): Fail if accesses through a pointer to vectype
1847         do not alias the original memory reference operands.
1848         Call vect_create_data_ref_ptr without the removed argument.
1849         (vectorizable_load): Likewise.
1850         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1851         removed argument.
1852
1853 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
1854
1855         PR target/36336
1856         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
1857         reg_equiv_constant.
1858
1859 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1860
1861         * config/mips/loongson2ef.md: New file.
1862         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1863         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1864         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1865         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1866         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1867         and loongson_2f.
1868         (loongson2ef.md): New include.
1869         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1870         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1871         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1872         (loongson_gt_<mode>, loongson_extract_halfword)
1873         (loongson_insert_halfword_0, loongson_insert_halfword_2)
1874         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1875         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1876         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1877         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1878         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1879         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1880         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1881         (vec_interleave_low<mode>): Define type attribute.
1882         * config/mips/mips.c (mips_ls2): New static variable.
1883         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1884         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1885         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1886         Implement target scheduling hooks.
1887         (mips_multipass_dfa_lookahead): Update to handle tuning for
1888         Loongson 2E/2F.
1889         (mips_sched_init): Initialize data for Loongson scheduling.
1890         (mips_ls2_variable_issue): New static function.
1891         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1892         Add sanity check.
1893         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1894         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1895         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1896         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1897         Handle ST Loongson 2E/2F cores.
1898         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1899
1900 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1901
1902         * omp-low.c (extract_omp_for_data): Fix comment typo.
1903         * c.opt: Fix typo.
1904
1905 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1906
1907         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1908         FIXME note about gcc/config.guess.
1909         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1910         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1911         * doc/cppopts.texi: Likewise.
1912         * doc/extend.texi: Likewise.
1913         * doc/gcc.texi: Likewise.
1914         * doc/gccint.texi: Likewise.
1915         * doc/gcov.texi: Likewise.
1916         * doc/gty.texi: Likewise.
1917         * doc/hostconfig.texi: Likewise.
1918         * doc/install.texi: Likewise.
1919         * doc/invoke.texi: Likewise.
1920         * doc/loop.texi: Likewise.
1921         * doc/makefile.texi: Likewise.
1922         * doc/md.texi: Likewise.
1923         * doc/passes.texi: Likewise.
1924         * doc/tm.texi: Likewise.
1925         * doc/tree-ssa.texi: Likewise.
1926         * doc/trouble.texi: Likewise.
1927
1928 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1929             Nathan Sidwell  <nathan@codesourcery.com>
1930             Maxim Kuvyrkov  <maxim@codesourcery.com>
1931             Richard Sandiford  <rdsandiford@googlemail.com>
1932         
1933         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1934         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1935         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1936         builtins.
1937         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1938         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1939         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1940         V8QImode cases.
1941         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1942         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1943         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1944         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1945         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1946         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1947         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1948         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1949         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1950         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1951         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1952         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1953         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1954         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1955         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1956         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1957         (mips_builtins): Add Loongson builtins.
1958         (mips_loongson_2ef_bdesc): New.
1959         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1960         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1961         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1962         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1963         New.
1964         (mips_expand_vector_init): New.
1965         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1966         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1967         if appropriate.
1968         * config/mips/mips.md: Add unspec numbers for Loongson
1969         builtins.  Include loongson.md.
1970         (MOVE64): Include Loongson vector modes.
1971         (SPLITF): Include Loongson vector modes.
1972         (HALFMODE): Handle Loongson vector modes.
1973         * config/mips/loongson.md: New.
1974         * config/mips/loongson.h: New.
1975         * config.gcc: Add loongson.h header for mips*-*-* targets.
1976         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1977
1978 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1979
1980         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1981         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1982         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1983         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1984         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1985         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1986         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1987         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1988         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1989         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1990         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1991         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1992         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1993         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1994         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1995         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1996         Remove use_fixproto=yes.
1997         (ia64*-*-hpux*): Remove comment about using fixproto.
1998         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1999
2000 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2001
2002         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
2003         library rebuilds.
2004         * configure: Regenerate.
2005
2006 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008         PR middle-end/36520
2009         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
2010         before evaluating it.
2011
2012 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
2013
2014         PR c/36507
2015         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
2016         nested inline functions.
2017         (start_decl, start_function): Don't invert DECL_EXTERNAL
2018         for nested inline functions.
2019
2020 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
2021
2022         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
2023         splits that must be made for correctness.
2024
2025 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
2026
2027         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
2028         (AVAIL_NON_MIPS16): Likewise.
2029         (mips_builtin_description): Replace target_flags with a predicate.
2030         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
2031         (dspr2_32): New availability predicates.
2032         (MIPS_BUILTIN): New macro.
2033         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
2034         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
2035         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
2036         Replace the TARGET_FLAGS parameters with AVAIL parameters.
2037         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
2038         (mips_dsp_32only_bdesc): Merge into...
2039         (mips_builtins): ...this new array.
2040         (mips_bdesc_map, mips_bdesc_arrays): Delete.
2041         (mips_init_builtins): Update after above changes.
2042         (mips_expand_builtin_1): Merge into...
2043         (mips_expand_builtin): ...here and update after above changes.
2044
2045 2008-06-12  Paul Brook  <paul@codesourcery.com>
2046
2047         * longlong.h (__arm__): Define count_leading_zeros.
2048         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
2049         (clzsi2, clzdi2): New functions.
2050         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
2051         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
2052         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
2053         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
2054         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
2055         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
2056         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
2057         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
2058         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
2059         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
2060
2061 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
2062
2063         * config/m68k/m68k.c (m68k_tune_flags): New.
2064         (override_options): Compute m68k_tune_flags.
2065         (MULL_COST, MULW_COST): Update for various variants of CFV2.
2066         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
2067
2068 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2069
2070         PR middle-end/36506
2071         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
2072
2073 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2074
2075         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
2076         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
2077
2078 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2079
2080         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
2081         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
2082
2083 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2084
2085         PR middle-end/36506
2086         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
2087         reductions.
2088
2089 2008-06-12  Richard Guenther  <rguenther@suse.de>
2090
2091         PR tree-optimization/36345
2092         * tree-flow.h (struct ptr_info_def): Align escape_mask,
2093         add memory_tag_needed flag.
2094         (may_alias_p): Declare.
2095         * tree-ssa-alias.c (may_alias_p): Export.
2096         (set_initial_properties): Use memory_tag_needed flag.
2097         (update_reference_counts): Likewise.
2098         (reset_alias_info): Reset memory_tag_needed flag.
2099         (create_name_tags): Check memory_tag_needed flag.
2100         (dump_points_to_info_for): Dump it.
2101         * tree-ssa-structalias.c (struct variable_info): Remove
2102         directly_dereferenced flag.
2103         (new_var_info): Do not initialize it.
2104         (process_constraint_1): Do not set it.
2105         (update_alias_info): Set is_dereferenced flag.
2106         (set_uids_in_ptset): Use may_alias_p.
2107         (set_used_smts): Check memory_tag_needed flag.
2108         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
2109         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
2110         memory_tag_needed flag.
2111         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
2112         from broken design.
2113
2114 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
2115
2116         * config/i386/i386.c (ix86_compute_frame_layout): Disable
2117         red zone for w64 abi.
2118         (ix86_expand_prologue): Likewise.
2119         (ix86_force_to_memory): Likewise.
2120         (ix86_free_from_memory): Likewise.
2121
2122 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
2123
2124         PR target/36425
2125         * config/rs6000/rs6000.c (rs6000_override_options): Set
2126         rs6000_isel conditionally to the absence of comand line override.
2127         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2128         Remove duplicate rs6000_isel setting.
2129         * config/rs6000/eabispe.h: Ditto.
2130
2131 2008-06-11  Richard Guenther  <rguenther@suse.de>
2132
2133         * alias.c (get_alias_set): Use the element alias-set for arrays.
2134         (record_component_aliases): For arrays and vectors do nothing.
2135         * c-common.c (strict_aliasing_warning): Handle the cases
2136         of alias set zero explicitly.
2137         * Makefile.in (dfp.o-warn): Add -Wno-error.
2138
2139 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
2140
2141         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
2142         tune_32 tune_64.
2143         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
2144         tune_32 tune_64 to supported_defaults.  Allow values not
2145         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
2146         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
2147         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
2148         with_cpu_64 to generic for 64-bit-supporting configurations, not
2149         with_cpu.  Remove FIXMEs.
2150         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
2151         --with-arch-64, --with-tune-32, --with-tune-64): Document.
2152         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
2153         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
2154         arch_32 and arch_64.
2155
2156 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2157             Olivier Hainque  <hainque@adacore.com>
2158
2159         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
2160         Use DECL_SIZE_UNIT to retrieve the size of the field.
2161
2162 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
2163
2164         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
2165         with function calls after declarations.  Lay out
2166         neon_float_type_node before further use.
2167
2168 2008-06-11  Richard Guenther  <rguenther@suse.de>
2169
2170         * tree-flow.h (may_point_to_global_var): Declare.
2171         * tree-ssa-alias.c (may_point_to_global_var): New function.
2172         * tree-ssa-sink.c (is_hidden_global_store): Use it.
2173
2174 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
2175
2176         * configure.ac: Teach that fido supports .debug_line.
2177         * configure: Regenerate.
2178
2179 2008-06-10  Tom Tromey  <tromey@redhat.com>
2180
2181         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
2182         debug hook.
2183
2184 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
2185
2186         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
2187         (encode_decimal64, decode_decimal64, encode_decimal128,
2188         decode_decimal128): Reverse order of 32-bit parts of value if host
2189         and target endianness differ.
2190
2191 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
2192
2193         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
2194         Avoid division by 0.
2195         (tree_mod_pow2_value_transform): Likewise.
2196         (tree_ic_transform): Likewise.
2197         (tree_stringops_transform): Likewise.
2198         (tree_mod_subtract_transform): Likewise.
2199         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
2200         (copy_edges_for_bb): Likewise.
2201         (initialize_cfun): Likewise.
2202
2203 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2204
2205         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
2206         nonmemory_operand. Add "N" operand constraint.
2207         (*btsi): Ditto.
2208         (*jcc_btdi_mask_rex64): New instruction and split pattern.
2209         (*jcc_btsi_mask): Ditto.
2210         (*jcc_btsi_mask_1): Ditto.
2211
2212 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
2213
2214         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
2215         TYPE_CANONICAL for copied element type.
2216
2217 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2218
2219         PR target/36473
2220         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
2221         Add m_CORE2 and m_GENERIC.
2222         * config/i386/predicates.md (bt_comparison_operator): New predicate.
2223         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
2224         (*btsi): Ditto.
2225         (*jcc_btdi_rex64): New instruction and split pattern.
2226         (*jcc_btsi): Ditto.
2227         (*jcc_btsi_1): Ditto.
2228         (*btsq): Fix Intel asm dialect operand order.
2229         (*btrq): Ditto.
2230         (*btcq): Ditto.
2231
2232 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
2233
2234         PR middle-end/36447
2235         * simplify-rtx.c (simplify_subreg): Add check for shift count 
2236         greater than size.
2237
2238 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
2239
2240         * doc/md.texi: Synchronize with later constraints.md change.
2241         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
2242         with a C implementation.
2243         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
2244         MFLO handling.
2245         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
2246         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
2247         when moving to and from MD_REGNUM.
2248         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
2249         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
2250         Handle byte and halfword moves.
2251         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
2252         separately.
2253         * config/mips/constraints.md (h): Turn into NO_REGS.
2254         (l, x): Update documentation.
2255         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
2256         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
2257         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
2258         (HILO): New mode iterator.
2259         (MOVE128): Add TI.
2260         (any_div): New code iterator.
2261         (u): Extend code attribute to div and udiv.
2262         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
2263         d_operand in the splitters.  Remove redundant CONST_INT checks.
2264         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
2265         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
2266         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
2267         accordingly, using normal moves instead of unspecs to move LO into
2268         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
2269         (<u>mulsidi3): Handle expansion in C code.
2270         (<u>mulsidi3_32bit_internal): Rename to...
2271         (<u>mulsidi3_32bit): ...this.
2272         (<u>mulsidi3_32bit_r4000): Fix insn separator.
2273         (*<u>mulsidi3_64bit): Rename to...
2274         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
2275         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
2276         to set LO and HI to the multiplication result.  Use a normal move
2277         for MFLO and an unspec for MFHI.
2278         (*<u>mulsidi3_64bit_parts): Replace with...
2279         (<u>mulsidi3_64bit_hilo): ...this new instruction.
2280         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
2281         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
2282         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
2283         instead of HI.  Split the instruction into a separate multiplication
2284         and MFHI if !TARGET_FIX_R4000.
2285         (<su>muldi3_highpart): Likewise.
2286         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
2287         and the "=h" clobber.
2288         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
2289         (<u>mulditi3): New expander.
2290         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
2291         (madsi): Remove "=h" clobber.
2292         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
2293         Force the modulus result to be a GPR and split the instruction into
2294         a division followed by an MFHI after reload.
2295         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
2296         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
2297         the MIPS16 HIGH define_split.
2298         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
2299         of acc<->gpr moves to "multi".
2300         (*movdi_64bit): Replace the single "x" alternative with
2301         alternatives for moving into and out of "a".
2302         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
2303         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
2304         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
2305         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
2306         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
2307         (movti): New expander.
2308         (*movti, *movti_mips16): New insns.
2309         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
2310         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
2311         (mthi<GPR:mode>_<HILO:mode>): Likewise.
2312         * config/mips/predicates.md (fpr_operand): Delete.
2313         (d_operand): New predicate.
2314
2315 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
2316
2317         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
2318         failure on some Bourne shells.
2319         (x86_64-*-*): Ditto.
2320
2321 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
2322
2323         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
2324
2325 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
2326
2327         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
2328         (sparc-sun-solaris2*): Likewise.
2329
2330 2008-06-09  Arnaud Charlet  <charlet@adacore.com
2331
2332         * doc/install.texi: Update requirements to build the Ada compiler.
2333
2334 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
2335
2336         * df-scan.c (struct df_scan_problem_data): Remove the
2337         mw_link_pool alloc pool.
2338         (df_scan_free_internal): Don't free it.
2339         (df_scan_alloc): Don't allocate it.
2340         * df.h (struct df_link): Update comment.
2341
2342 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2343
2344         * except.h: Correct checks for when SJLJ exceptions must be used.
2345
2346 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2347
2348         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
2349         default.
2350         
2351 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
2352
2353         PR tree-optimization/36218
2354         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
2355         configure for the build system.
2356         (BUILD_LDFLAGS): Define.
2357         * configure: Regenerate.
2358         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
2359
2360 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
2361
2362         PR target/36424
2363         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
2364         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
2365         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
2366
2367 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
2368
2369         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
2370
2371 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
2372
2373         * config.gcc (Obsolete configurations): Remove list of
2374         configurations.
2375         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
2376         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
2377         targets matched by those patterns.
2378         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
2379         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
2380         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
2381         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
2382         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
2383         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
2384         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
2385         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
2386         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
2387         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
2388         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
2389         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
2390         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
2391         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
2392         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
2393         Make code for Solaris 7 and greater unconditional for Solaris.
2394         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
2395         Remove --with-* handling.
2396         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
2397         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
2398         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
2399         LINK_OS_WINDISS_SPEC): Remove.
2400         * config/rs6000/sysv4.opt (mwindiss): Remove.
2401         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
2402         * configure: Regenerate.
2403         * doc/cpp.texi: Don't mention BeOS.
2404         * doc/extend.texi (interrupt): Don't mention MS1.
2405         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
2406         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
2407         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
2408         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
2409         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
2410         Remove.
2411         * doc/invoke.texi (MT Options): Remove.
2412         (-mwindiss): Remove.
2413         (CRIS Options): Remove cris-axis-aout references.
2414         (HPPA Options): Don't mention hppa1.1-*-pro.
2415         * doc/md.texi: (MorphoTech family): Remove.
2416         * libgcc2.c: Don't handle UWIN.
2417         * config/alpha/t-unicosmk: Remove.
2418         * config/alpha/unicosmk.h: Remove.
2419         * config/arm/kaos-arm.h: Remove.
2420         * config/arm/kaos-strongarm.h: Remove.
2421         * config/arm/strongarm-coff.h: Remove.
2422         * config/arm/strongarm-elf.h: Remove.
2423         * config/arm/strongarm-pe.h: Remove.
2424         * config/arm/t-strongarm-pe: Remove.
2425         * config/arm/t-xscale-coff: Remove.
2426         * config/arm/t-xscale-elf: Remove.
2427         * config/arm/xscale-coff.h: Remove.
2428         * config/arm/xscale-elf.h: Remove.
2429         * config/chorus.h: Remove.
2430         * config/cris/aout.h: Remove.
2431         * config/cris/aout.opt: Remove.
2432         * config/cris/t-aout: Remove.
2433         * config/i386/beos-elf.h: Remove.
2434         * config/i386/kaos-i386.h: Remove.
2435         * config/i386/ptx4-i.h: Remove.
2436         * config/i386/sco5.h: Remove.
2437         * config/i386/sco5.opt: Remove.
2438         * config/i386/sysv4-cpp.h: Remove.
2439         * config/i386/sysv5.h: Remove.
2440         * config/i386/t-beos: Remove.
2441         * config/i386/t-sco5: Remove.
2442         * config/i386/t-uwin: Remove.
2443         * config/i386/uwin.asm: Remove.
2444         * config/i386/uwin.h: Remove.
2445         * config/kaos.h: Remove.
2446         * config/mips/windiss.h: Remove.
2447         * config/mt: Remove directory.
2448         * config/pa/pa-osf.h: Remove.
2449         * config/pa/pa-pro-end.h: Remove.
2450         * config/pa/t-pro: Remove.
2451         * config/ptx4.h: Remove.
2452         * config/rs6000/beos.h: Remove.
2453         * config/rs6000/kaos-ppc.h: Remove.
2454         * config/rs6000/t-beos: Remove.
2455         * config/rs6000/windiss.h: Remove.
2456         * config/sh/kaos-sh.h: Remove.
2457         * config/sol2-6.h: Remove.
2458         * config/sparc/sol26-sld.h: Remove.
2459         * config/sparc/sysv4-only.h: Remove.
2460         * config/vax/bsd.h: Remove.
2461         * config/vax/t-memfuncs: Remove.
2462         * config/vax/ultrix.h: Remove.
2463         * config/vax/vaxv.h: Remove.
2464         * config/windiss.h: Remove.
2465
2466 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
2467
2468         PR rtl-optimization/36438
2469         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
2470         for vector shifts with constant scalar shift operands.
2471
2472 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
2473
2474         * doc/invoke.texi: Document -march=xlr.
2475         * config/mips/xlr.md: New file.
2476         * config/mips/mips.md: Include it.
2477         (cpu): Add "xlr".
2478         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
2479         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
2480         (mips_rtx_cost_data): Likewise.
2481
2482 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
2483
2484         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
2485         PRE_INC and PRE_DEC cases.
2486
2487 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2488
2489         PR rtl-optimization/36419
2490         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
2491         the emitting jump insn.
2492
2493         PR target/36362
2494         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
2495         is not bool, boolify the whole *expr_p and convert to the desired type.
2496
2497 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2498
2499         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
2500         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
2501         Add omp_private_outer_ref hook, add another argument to
2502         omp_clause_default_ctor hook.
2503         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
2504         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
2505         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
2506         hook_tree_tree_tree_tree_null.
2507         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
2508         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
2509         * hooks.c (hook_tree_tree_tree_tree_null): New function.
2510         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
2511         * tree.def (OMP_TASK): New tree code.
2512         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
2513         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
2514         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
2515         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
2516         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
2517         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
2518         OMP_CLAUSE_COLLAPSE_EXPR): Define.
2519         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
2520         (OMP_DIRECTIVE_P): Add OMP_TASK.
2521         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
2522         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
2523         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
2524         and OMP_CLAUSE_UNTIED entries.
2525         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
2526         num_ops to 2.
2527         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2528         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
2529         * tree-pretty-print.c (dump_omp_clause): Handle
2530         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
2531         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
2532         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
2533         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
2534         warning about unsigned iterators.  Change decl/init/cond/incr
2535         arguments to TREE_VECs, check arguments for all collapsed loops.
2536         (c_finish_omp_taskwait): New function.
2537         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
2538         ws_clauses.
2539         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
2540         default_function_array_conversion on init.  Add par_clauses argument.
2541         If decl is present in parallel's lastprivate clause, change it to
2542         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
2543         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
2544         collapse count in clauses.
2545         (c_parser_omp_for, c_parser_omp_parallel): Adjust
2546         c_parser_omp_for_loop callers.
2547         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
2548         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
2549         (c_parser_omp_clause_name): Handle collapse and untied clauses.
2550         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
2551         functions.
2552         (c_parser_omp_clause_schedule): Handle schedule(auto).
2553         Include correct location in the error message.
2554         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
2555         and PRAGMA_OMP_CLAUSE_UNTIED.
2556         (OMP_TASK_CLAUSE_MASK): Define.
2557         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
2558         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
2559         * tree-nested.c (convert_nonlocal_omp_clauses,
2560         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
2561         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
2562         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2563         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
2564         OMP_CLAUSE_DECL.
2565         (conver_nonlocal_reference, convert_local_reference,
2566         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
2567         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
2568         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
2569         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
2570         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
2571         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
2572         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
2573         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
2574         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2575         OMP_CLAUSE_UNTIED.
2576         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
2577         * c-common.h (c_finish_omp_taskwait): New prototype.
2578         * gimple-low.c (lower_stmt): Handle OMP_TASK.
2579         * tree-parloops.c (create_parallel_loop): Create 1 entry
2580         vectors for OMP_FOR_{INIT,COND,INCR}.
2581         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2582         (make_edges): Handle OMP_TASK.
2583         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
2584         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2585         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
2586         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
2587         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
2588         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2589         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2590         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
2591         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
2592         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
2593         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
2594         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
2595         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
2596         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
2597         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
2598         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
2599         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
2600         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
2601         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
2602         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
2603         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
2604         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
2605         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
2606         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
2607         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
2608         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
2609         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
2610         original iterator is present in lastprivate clause or if
2611         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
2612         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2613         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
2614         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
2615         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
2616         if it is set, lookup var in outer contexts too.  Handle
2617         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
2618         to be implicitly determined firstprivate for task regions.
2619         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
2620         if it is set, lookup var in outer contexts too.  Set
2621         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
2622         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
2623         OMP_CLAUSE_UNTIED.  Take region_type as last argument
2624         instead of in_parallel and in_combined_parallel.
2625         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2626         Adjust callers.
2627         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
2628         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
2629         (new_omp_context): Set default_kind to
2630         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
2631         (omp_region_type): New enum.
2632         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
2633         fields, add region_type.
2634         (new_omp_context): Take region_type as argument instead of is_parallel
2635         and is_combined_parallel.
2636         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
2637         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
2638         ctx->is_combined_parallel checks.
2639         (gimplify_omp_task): New function.
2640         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2641         OMP_CLAUSE_UNTIED.
2642         * omp-low.c (extract_omp_for_data): Use schedule(static)
2643         for schedule(auto).  Handle pointer and unsigned iterators.
2644         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
2645         Add loops argument.  Extract data for collapsed OMP_FOR loops.
2646         (expand_parallel_call): Assert sched_kind isn't auto,
2647         map runtime schedule to index 3.
2648         (struct omp_for_data_loop): New type.
2649         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
2650         Add loop, loops, collapse and iter_type fields.
2651         (workshare_safe_to_combine_p): Disallow combined for if
2652         iter_type is unsigned long long.  Don't combine collapse > 1 loops
2653         unless all bounds and steps are constant.  Adjust extract_omp_for_data
2654         caller.
2655         (expand_omp_for_generic): Handle pointer, unsigned and long long
2656         iterators.  Handle collapsed OMP_FOR loops.  Adjust
2657         for struct omp_for_data changes.  If libgomp function doesn't return
2658         boolean_type_node, add comparison of the return value with 0.
2659         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
2660         pointer, unsigned and long long iterators.  Adjust for struct
2661         omp_for_data changes.
2662         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
2663         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
2664         unsigned long long.  Allocate loops array, pass it to
2665         extract_omp_for_data.  For collapse > 1 loops use always
2666         expand_omp_for_generic.
2667         (omp_context): Add sfield_map and srecord_type fields.
2668         (is_task_ctx, lookup_sfield): New functions.
2669         (use_pointer_for_field): Use is_task_ctx helper.  Change first
2670         argument's type from const_tree to tree.  Clarify comment.
2671         In OMP_TASK disallow copy-in/out sharing.
2672         (build_sender_ref): Call lookup_sfield instead of lookup_field.
2673         (install_var_field): Add mask argument.  Populate both record_type
2674         and srecord_type if needed.
2675         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
2676         in srecord_type.
2677         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
2678         and DECL_FIELD_OFFSET.
2679         (scan_sharing_clauses): Adjust install_var_field callers.  For
2680         firstprivate clauses on explicit tasks allocate the var by value in
2681         record_type unconditionally, rather than by reference.
2682         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
2683         Use is_taskreg_ctx instead of is_parallel_ctx.
2684         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2685         (create_omp_child_function_name): Add task_copy argument, use
2686         *_omp_cpyfn* names if it is true.
2687         (create_omp_child_function): Add task_copy argument, if true create
2688         *_omp_cpyfn* helper function.
2689         (scan_omp_parallel): Adjust create_omp_child_function callers.
2690         Rename parallel_nesting_level to taskreg_nesting_level.
2691         (scan_omp_task): New function.
2692         (lower_rec_input_clauses): Don't run constructors for firstprivate
2693         explicit task vars which are initialized by *_omp_cpyfn*.  
2694         Pass outer var ref to omp_clause_default_ctor hook if
2695         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
2696         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
2697         OMP_CLAUSE_REDUCTION_INIT.
2698         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
2699         avoid duplicate setting of fields.  Handle
2700         OMP_CLAUSE_PRIVATE_OUTER_REF.
2701         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
2702         copy-out if TREE_READONLY, only copy-in.
2703         (expand_task_copyfn): New function.
2704         (expand_task_call): New function.
2705         (struct omp_taskcopy_context): New type.
2706         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
2707         New functions.
2708         (lower_omp_parallel): Rename to...
2709         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2710         Call create_task_copyfn if srecord_type is needed.  Adjust
2711         sender_decl type.
2712         (task_shared_vars): New variable.
2713         (check_omp_nesting_restrictions): Warn if work-sharing,
2714         barrier, master or ordered region is closely nested inside OMP_TASK.
2715         Add warnings for barrier if closely nested inside of work-sharing,
2716         ordered, or master region.
2717         (scan_omp_1): Call check_omp_nesting_restrictions even for
2718         GOMP_barrier calls.  Rename parallel_nesting_level to
2719         taskreg_nesting_level.  Handle OMP_TASK.
2720         (lower_lastprivate_clauses): Even if some lastprivate is found on a
2721         work-sharing construct, continue looking for them on parent parallel
2722         construct.
2723         (lower_omp_for_lastprivate): Add lastprivate clauses
2724         to the beginning of dlist rather than end.  Adjust for struct
2725         omp_for_data changes.
2726         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
2727         not after it.  Handle collapsed OMP_FOR loops, adjust for
2728         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
2729         (get_ws_args_for): Adjust extract_omp_for_data caller.
2730         (scan_omp_for): Handle collapsed OMP_FOR
2731         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2732         (lower_omp_single_simple): If libgomp function doesn't return
2733         boolean_type_node, add comparison of the return value with 0.
2734         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
2735         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
2736         (parallel_nesting_level): Rename to...
2737         (taskreg_nesting_level): ... this.
2738         (is_taskreg_ctx): New function.
2739         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
2740         of is_parallel_ctx.
2741         (execute_lower_omp): Rename parallel_nesting_level to
2742         taskreg_nesting_level.
2743         (expand_omp_parallel): Rename to...
2744         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2745         Call omp_task_call for OMP_TASK regions.
2746         (expand_omp): Adjust caller, handle OMP_TASK.
2747         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
2748
2749         * bitmap.c (bitmap_default_obstack_depth): New variable.
2750         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
2751         if argument is NULL and bitmap_default_obstack is already initialized.
2752         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
2753         at the end.
2754         * matrix-reorg.c (matrix_reorg): Likewise.
2755
2756 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
2757
2758         * config/i386/i386.md (*indirect_jump): Macroize using P
2759         mode iterator.  Remove !TARGET_64BIT from insn constraints.
2760         (*tablejump_1): Ditto.
2761         (*indirect_jump_rex64): Remove insn pattern.
2762         (*tablejump_1_rex64): Ditto.
2763         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
2764         and eh_return_si insn patterns.
2765
2766 2008-06-06  Richard Guenther  <rguenther@suse.de>
2767
2768         * tree-ssa-structalias.c (merge_smts_into): Remove.
2769         (find_what_p_points_to): Do not bother to compute the
2770         points-to set for pt_anything pointers.
2771         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
2772         for pt_anything pointers is ok.
2773
2774 2008-06-06  Jan Hubicka  <jh@suse.cz>
2775
2776         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
2777
2778 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2779
2780         * cgraph.c: Fix typos in comments.
2781         (cgraph_availability_names): Fix string typo.
2782         * fold-const.c: Fix typos in comments.
2783         (fold_binary): Fix typo in warning.
2784         * genautomata.c: Fix typos in comments.
2785         (check_presence_pattern_sets): Fix typo in local variable.
2786         (output_description): Fix typo in output.
2787         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
2788         * hwint.h: Likewise.
2789         * matrix-reorg.c (check_allocation_function): Likewise.
2790         * omega.c (smooth_weird_equations): Likewise.
2791         * auto-inc-dec.c: Fix typos in comments.
2792         * bb-reorder.c: Likewise.
2793         * builtins.c: Likewise.
2794         * c-common.c: Likewise.
2795         * c-cppbuiltin.c: Likewise.
2796         * c-parser.c: Likewise.
2797         * c-pretty-print.c: Likewise.
2798         * cfgcleanup.c: Likewise.
2799         * cfgexpand.c: Likewise.
2800         * cfghooks.c: Likewise.
2801         * cfglayout.c: Likewise.
2802         * cfgloopmanip.c: Likewise.
2803         * cgraphunit.c: Likewise.
2804         * coverage.c: Likewise.
2805         * dbxout.c: Likewise.
2806         * df-byte-scan.c: Likewise.
2807         * df-core.c: Likewise.
2808         * df-problems.c: Likewise.
2809         * df-scan.c: Likewise.
2810         * dfp.c: Likewise.
2811         * dominance.c: Likewise.
2812         * domwalk.c: Likewise.
2813         * dse.c: Likewise.
2814         * dwarf2out.c: Likewise.
2815         * emit-rtl.c: Likewise.
2816         * et-forest.c: Likewise.
2817         * function.c: Likewise.
2818         * function.h: Likewise.
2819         * gcc.c: Likewise.
2820         * gcov-io.c: Likewise.
2821         * gcov.c: Likewise.
2822         * gcse.c: Likewise.
2823         * genattrtab.c: Likewise.
2824         * ggc-page.c: Likewise.
2825         * gimplify.c: Likewise.
2826         * gthr-lynx.h: Likewise.
2827         * haifa-sched.c: Likewise.
2828         * ipa-cp.c: Likewise.
2829         * ipa-inline.c: Likewise.
2830         * ipa-prop.h: Likewise.
2831         * ipa-pure-const.c: Likewise.
2832         * ipa-struct-reorg.c: Likewise.
2833         * ipa-struct-reorg.h: Likewise.
2834         * ipa-type-escape.c: Likewise.
2835         * ipa.c: Likewise.
2836         * loop-doloop.c: Likewise.
2837         * mips-tfile.c: Likewise.
2838         * mkmap-flat.awk: Likewise.
2839         * mkmap-symver.awk: Likewise.
2840         * modulo-sched.c: Likewise.
2841         * omp-low.c: Likewise.
2842         * optabs.c: Likewise.
2843         * optabs.h: Likewise.
2844         * opts.c: Likewise.
2845         * passes.c: Likewise.
2846         * postreload-gcse.c: Likewise.
2847         * postreload.c: Likewise.
2848         * predict.c: Likewise.
2849         * pretty-print.h: Likewise.
2850         * profile.c: Likewise.
2851         * protoize.c: Likewise.
2852         * ra-conflict.c: Likewise.
2853         * real.c: Likewise.
2854         * recog.c: Likewise.
2855         * regclass.c: Likewise.
2856         * regs.h: Likewise.
2857         * reload.c: Likewise.
2858         * rtl-error.c: Likewise.
2859         * rtlanal.c: Likewise.
2860         * scan.h: Likewise.
2861         * sched-rgn.c: Likewise.
2862         * see.c: Likewise.
2863         * stmt.c: Likewise.
2864         * target.h: Likewise.
2865         * tree-dfa.c: Likewise.
2866         * tree-eh.c: Likewise.
2867         * tree-flow-inline.h: Likewise.
2868         * tree-inline.c: Likewise.
2869         * tree-into-ssa.c: Likewise.
2870         * tree-loop-distribution.c: Likewise.
2871         * tree-nested.c: Likewise.
2872         * tree-parloops.c: Likewise.
2873         * tree-pass.h: Likewise.
2874         * tree-pretty-print.c: Likewise.
2875         * tree-profile.c: Likewise.
2876         * tree-scalar-evolution.c: Likewise.
2877         * tree-sra.c: Likewise.
2878         * tree-ssa-alias-warnings.c: Likewise.
2879         * tree-ssa-ccp.c: Likewise.
2880         * tree-ssa-coalesce.c: Likewise.
2881         * tree-ssa-dom.c: Likewise.
2882         * tree-ssa-dse.c: Likewise.
2883         * tree-ssa-forwprop.c: Likewise.
2884         * tree-ssa-live.c: Likewise.
2885         * tree-ssa-live.h: Likewise.
2886         * tree-ssa-loop-im.c: Likewise.
2887         * tree-ssa-loop-ivopts.c: Likewise.
2888         * tree-ssa-loop-niter.c: Likewise.
2889         * tree-ssa-loop-prefetch.c: Likewise.
2890         * tree-ssa-phiopt.c: Likewise.
2891         * tree-ssa-phiprop.c: Likewise.
2892         * tree-ssa-sccvn.c: Likewise.
2893         * tree-ssa-ter.c: Likewise.
2894         * tree-ssa-threadupdate.c: Likewise.
2895         * tree-ssa.c: Likewise.
2896         * tree-vect-analyze.c: Likewise.
2897         * tree-vect-transform.c: Likewise.
2898         * tree-vectorizer.c: Likewise.
2899         * tree-vn.c: Likewise.
2900         * tree-vrp.c: Likewise.
2901         * tree.c: Likewise.
2902         * tree.def: Likewise.
2903         * tree.h: Likewise.
2904         * unwind-dw2-fde.c: Likewise.
2905         * unwind.inc: Likewise.
2906         * value-prof.c: Likewise.
2907         * vmsdbgout.c: Likewise.
2908
2909 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2910
2911         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2912         always place FP constants in the TOC for TARGET_POWERPC64.
2913         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2914
2915 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2916
2917         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2918         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2919         enable for TARGET_E500_DOUBLE.
2920         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2921         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2922         floating-point modes like integer modes for E500 double.
2923         (rs6000_legitimate_offset_address_p): Likewise.
2924         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2925         addressing for DDmode for E500 double.
2926         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2927         modes as using 64-bits of registers for E500 double.
2928         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2929         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2930         specially for E500 double.
2931         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2932         TDmode for E500 double.
2933         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2934         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2935         (rs6000_split_multireg_move): Do not handle TDmode specially for
2936         E500 double.
2937         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2938         using 64-bit registers for E500 double.
2939         (emit_frame_save): Do not handle DDmode specially for E500 double.
2940         (gen_frame_mem_offset): Likewise.
2941         (rs6000_function_value): Do not call spe_build_register_parallel
2942         for DDmode or TDmode.
2943         (rs6000_libcall_value): Likewise.
2944         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2945         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2946         for E500 double.
2947
2948 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2949
2950         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2951         in comments.
2952
2953 2008-06-04  Junjie Gu <jgu@tensilica.com>
2954
2955         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2956         comparison for frame pointers.
2957
2958 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2959
2960         PR target/27386
2961         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2962
2963 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2964
2965         PR target/30243
2966         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2967         register is already smaller or equal to required mode. 
2968
2969 2008-06-04  Xinliang David Li  <davidxl@google.com>
2970
2971         * tree-call-cdce.c: New file. 
2972         (cond_dead_built_in_calls): New static variable.
2973         (input_domain): New struct.
2974         (check_pow): New function.
2975         (check_builtin_call): Ditto.
2976         (check_target_format): Ditto.
2977         (is_call_dce_candidate): Ditto.
2978         (gen_one_condition): Ditto.
2979         (gen_conditions_for_domain): Ditto.
2980         (get_domain): Ditto.
2981         (gen_conditions_for_pow_cst_base): Ditto.
2982         (gen_conditions_for_pow_int_base): Ditto.
2983         (gen_conditions_for_pow): Ditto.
2984         (get_no_error_domain): Ditto.
2985         (gen_shrink_wrap_conditions): Ditto.
2986         (shrink_wrap_one_built_in_call): Ditto.
2987         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2988         (tree_call_cdce): Ditto.
2989         (gate_call_cdce): Ditto.
2990         (pass_call_cdce): New gimple pass.
2991         * passes.c: (init_optimization_passes): New pass.
2992         * tree-pass.h: New pass declaration.
2993         * opts.c (decode_options): New flag setting.
2994         * common.opt: Add -ftree-builtin-call-dce flag.
2995         * Makefile.in: Add new source file.
2996         * tempvar.def: New tv_id.
2997         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2998
2999 2008-06-04  Richard Guenther  <rguenther@suse.de>
3000
3001         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
3002         (is_call_clobbered): Always check var_ann->call_clobbered.
3003         (mark_call_clobbered): Always set var_ann->call_clobbered.
3004         (clear_call_clobbered): Always clear var_ann->call_clobbered.
3005         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
3006         (reset_alias_info): Clear call clobbering info on MTAGs and
3007         globals as well.
3008         (set_pt_anything): Set pt_global_mem.
3009         (create_tag_raw): Adjust comment.
3010         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
3011
3012 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
3013             Maxim Kuvyrkov  <maxim@codesourcery.com>
3014
3015         * config/m68k/m68k.opt (mxgot): New option.
3016         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
3017         (m68k_output_addr_const_extra): New.
3018         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
3019         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
3020         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
3021         * doc/invoke.texi (M680x0 Options): Document -mxgot.
3022
3023 2008-06-04  Richard Guenther  <rguenther@suse.de>
3024
3025         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
3026         negative or non-representable offsets.
3027
3028 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3029
3030         * config/i386/i386.c (ix86_gen_leave): New.
3031         (ix86_gen_pop1): Likewise.
3032         (ix86_gen_add3): Likewise.
3033         (ix86_gen_sub3): Likewise.
3034         (ix86_gen_sub3_carry): Likewise.
3035         (ix86_gen_one_cmpl2): Likewise.
3036         (ix86_gen_monitor): Likewise.
3037         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
3038         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
3039         ix86_gen_one_cmpl2 and ix86_gen_monitor.
3040         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
3041         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
3042         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
3043         (ix86_expand_epilogue): Updated.
3044         (print_operand): Handle integer register operand for 'z'.
3045         (ix86_expand_strlensi_unroll_1): Likewise.
3046         (ix86_expand_strlen): Likewise.
3047         (ix86_expand_builtin): Likewise.
3048         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
3049         mov{q}/mov{l} and add{q}/add{l}.
3050
3051 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
3052
3053         * config/i386/i386.md (P): New mode iterator.
3054         (SFmode push_operand splitter): Macroize DImode and SImode pushes
3055         using P mode iterator.
3056         (DFmode push_operand splitter): Ditto.
3057         (XFmode push_operand splitter): Ditto.
3058         (DFmode float_extend SFmode push_operand splitter): Ditto.
3059         (XFmode float_extend SFmode push_operand splitter): Do not generate
3060         SImode pushes for 64bit target.  Macroize Dimode and SImode
3061         pushes using P mode iterator.
3062         (XFmode float_extend DFmode push_operand splitter): Ditto.
3063
3064 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
3065
3066         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
3067         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
3068         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
3069         return type to int.
3070         (ix86_call_abi_override): Remove check for call_used_regs.
3071
3072 2008-06-03  Richard Guenther  <rguenther@suse.de>
3073
3074         * tree-ssa-structalias.c (find_func_aliases): Add constraints
3075         for the lhs of calls if the return type contains pointers.
3076
3077 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
3078
3079         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
3080         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
3081         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
3082         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
3083         of cfun and DEFAULT_ABI to deceide abi mode.
3084         (DEFAULT_ABI): New.
3085         (REG_PARM_STACK_SPACE): Removed.
3086         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
3087         (STACK_BOUNDARY): Use default target to deceide stack boundary.
3088         * config/i386/i386-protos.h (ix86_cfun_abi): New.
3089         (ix86_function_abi): Likewise.
3090         (ix86_function_type_abi): Likewise.
3091         (ix86_call_abi_override): Likewise.
3092         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
3093         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
3094         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
3095         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
3096         specific defines.
3097         (X86_64_REGPARM_MAX): New.
3098         (X86_64_SSE_REGPARM_MAX): New.
3099         (X64_REGPARM_MAX): New.
3100         (X64_SSE_REGPARM_MAX): New.
3101         (X86_32_REGPARM_MAX): New.
3102         (X86_32_SSE_REGPARM_MAX): New.
3103         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
3104         (ix86_function_regparm): Handle user calling abi.
3105         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
3106         by DEFAULT_ABI versus SYSV_ABI check.
3107         (ix86_reg_parm_stack_space): New.
3108         (ix86_function_type_abi): New.
3109         (ix86_call_abi_override): New.
3110         (ix86_function_abi): New.
3111         (ix86_cfun_abi): New.
3112         (init_cumulative_args): Call abi specific initialization.
3113         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
3114         (function_arg_64): Extend SSE_REGPARM_MAX check.
3115         (function_arg (): Remove TARGET_64BIT_MS_ABI.
3116         (ix86_pass_by_reference): Likewise.
3117         (ix86_function_value_regno_p): Likewise.
3118         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
3119         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
3120         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
3121         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
3122         (setup_incoming_varargs_64): Adjust regparm for call abi.
3123         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
3124         (ix86_va_start): Likewise.
3125         (ix86_gimplify_va_arg): Likewise.
3126         (ix86_expand_prologue): Likewise.
3127         (output_pic_addr_const): Likewise.
3128         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
3129         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
3130         (x86_output_mi_thunk): Likewise.
3131         (x86_function_profiler): Likewise.
3132         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
3133         (SYSV_ABI, MS_ABI): New constants.
3134         (DEFAULT_ABI): New.
3135         (init_regs): Add prototype of function in regclass.c file.
3136         (OVERRIDE_ABI_FORMAT): New.
3137         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
3138         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
3139         (OUTGOING_REG_PARM_STACK_SPACE): New.
3140         (ix86_reg_parm_stack_space): New prototype.
3141         (CUMULATIVE_ARGS): Add call_abi member.
3142         (machine_function): Add call_abi member.
3143         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
3144         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
3145
3146 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
3147
3148         PR target/34879
3149         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
3150         (avr_builtin_setjmp_frame_value): New function.
3151         * config/avr/avr.md (nonlocal_goto_receiver): Define.
3152         (nonlocal_goto): Define.
3153
3154 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
3155
3156         * config/mips/mips.c (mips_emit_loadgp): Return early if
3157         there is nothing do to, otherwise emit a blockage if
3158         !TARGET_EXPLICIT_RELOCS || crtl->profile.
3159         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
3160
3161 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3162
3163         * configure.ac: Drop unneeded backslash ending up in config.in.
3164         * acinclude.m4: Likewise.
3165         * config.in: Regenerate.
3166
3167 2008-05-26  Jan Hubicka  <jh@suse.cz>
3168
3169         * predict.c (maybe_hot_frequency_p): Break out of...
3170         (maybe_hot_bb_p): ... here.
3171         (maybe_hot_edge_p): New.
3172         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
3173         * basic-block.h (maybe_hot_edge_p): Declare.
3174
3175 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
3176
3177         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
3178         (*cmpfp_<mode>_cc): Ditto.
3179         (*fp_jcc_8<mode>_387): Ditto.
3180         (*fop_<MODEF:mode>_2_i387): Ditto.
3181         (*fop_<MODEF:mode>_3_i387): Ditto.
3182         (*fop_xf_2_i387): Ditto.
3183         (*fop_xf_3_i387): Ditto.
3184
3185 2008-06-02  Tomas Bily  <tbily@suse.cz>
3186
3187         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
3188
3189 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3190
3191         * config/mips/mips.c (mips_valid_offset_p): New function.
3192         (mips_valid_lo_sum_p): Likewise.
3193         (mips_classify_address): Use them.
3194         (mips_force_address): New function.
3195         (mips_legitimize_address): Use it.
3196         * config/mips/mips.md (MOVE128): New mode iterator.
3197         (movtf): Require TARGET_64BIT.  Remove empty strings.
3198         (*movtf_internal): Rename to...
3199         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
3200         of "R" and use {,fp}{load,store} attributes instead of "multi".
3201         Use a separate define_split.
3202         (*movtf_mips16): New pattern.
3203
3204 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3205
3206         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
3207         * config/mips/mips.c (mips_expand_before_return): New function.
3208         (mips_expand_epilogue): Call it.
3209         * config/mips/mips.md (return): Turn into a define_expand.
3210         (*return): New insn.
3211
3212 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
3213
3214         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
3215         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
3216         functions.  Do not emit uses and clobbers of CONCATs; individually
3217         use and clobber their operands.
3218         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
3219         gen_clobber, emit_use and gen_use.
3220         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3221         (expand_builtin_return): Likewise.
3222         * cfgbuild.c (count_basic_blocks): Likewise.
3223         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
3224         * explow.c (emit_stack_restore): Likewise.
3225         * expmed.c (extract_bit_field_1): Likewise.
3226         * expr.c (convert_move, emit_move_complex_parts): Likewise.
3227         (emit_move_multi_word, store_constructor): Likewise.
3228         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
3229         (thread_prologue_and_epilogue_insns): Likewise.
3230         * lower-subreg.c (resolve_simple_move): Likewise.
3231         * optabs.c (widen_operand, expand_binop): Likewise.
3232         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
3233         * reload.c (find_reloads): Likewise.
3234         * reload1.c (eliminate_regs_in_insn): Likewise.
3235         * stmt.c (expand_nl_goto_receiver): Likewise.
3236         * config/alpha/alpha.md (builtin_longjmp): Likewise.
3237         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
3238         * config/arm/arm.c (arm_load_pic_register): Likewise.
3239         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
3240         * config/arm/arm.md (untyped_return): Likewise.
3241         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
3242         * config/avr/avr.c (expand_prologue): Likewise.
3243         * config/bfin/bfin.c (do_unlink): Likewise.
3244         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
3245         * config/cris/cris.c (cris_expand_prologue): Likewise.
3246         * config/darwin.c (machopic_indirect_data_reference): Likewise.
3247         (machopic_legitimize_pic_address): Likewise.
3248         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
3249         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
3250         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
3251         (ix86_expand_convert_uns_didf_sse): Likewise.
3252         (ix86_expand_vector_init_general): Likewise.
3253         * config/ia64/ia64.md (eh_epilogue): Likewise.
3254         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
3255         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
3256         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
3257         (config/iq2000/iq2000.c): Likewise.
3258         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
3259         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3260         (builtin_longjmp): Likewise.
3261         * config/mn10300/mn10300.md (call, call_value): Likewise.
3262         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
3263         * config/pdp11/pdp11.md (abshi2): Likewise.
3264         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
3265         * config/s390/s390.c (s390_emit_prologue): Likewise.
3266         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
3267         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
3268         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
3269         * config/sh/sh.c (prepare_move_operands): Likewise.
3270         (output_stack_adjust, sh_expand_epilogue): Likewise.
3271         (sh_set_return_address, sh_expand_t_scc): Likewise.
3272         * config/sparc/sparc.c (load_pic_register): Likewise.
3273         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
3274         * config/spu/spu.c (spu_expand_epilogue): Likewise.
3275         * config/v850/v850.c (expand_epilogue): Likewise.
3276
3277 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
3278
3279         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
3280         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
3281         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
3282         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
3283         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
3284         stack pointer register.
3285         (output_movhi): Remove code for interrupt specific writing to the 
3286         stack pointer register.
3287
3288 2008-05-31  Richard Guenther  <rguenther@suse.de>
3289
3290         PR tree-optimization/34244
3291         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
3292         (tree_expr_nonzero_warnv_p): Likewise.
3293         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
3294         ssa_name_nonnegative_p.
3295         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
3296         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
3297         not tree_expr_nonzero_warnv_p.
3298
3299         PR tree-optimization/36262
3300         Revert
3301         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
3302
3303         PR tree-optimization/34244
3304         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
3305         (record_numbers_of_iterations): New function.
3306         (execute_vrp): Cache the numbers of iterations of loops.
3307         * tree-scalar-evolution.c (scev_reset_except_niters):
3308         New function.
3309         (scev_reset): Use scev_reset_except_niters.
3310         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
3311
3312 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
3313
3314         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3315         __WORKAROUND_RETS when appropriate.
3316
3317 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
3318
3319         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
3320         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
3321         mode iterator.
3322         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
3323         *fop_df_comm_sse insn patterns using MODEF mode iterator.
3324         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
3325         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
3326         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
3327         *fop_df_1_mixed insn patterns using MODEF mode iterator.
3328         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
3329         *fop_df_1_sse insn patterns using MODEF mode iterator.
3330         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
3331         *fop_df_1_i387 insn patterns using MODEF mode iterator.
3332         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
3333         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
3334         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
3335         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
3336         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
3337         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
3338         (*fop_xf_4_i387): Use <MODE> for mode attribute.
3339         (*fop_xf_5_i387): Ditto.
3340         (*fop_xf_6_i387): Ditto.
3341
3342 2008-05-30  Richard Guenther  <rguenther@suse.de>
3343
3344         * builtins.c (build_string_literal): Avoid generating
3345         a non-gimple_val result.
3346
3347 2008-05-30  DJ Delorie  <dj@redhat.com>
3348
3349         * exec-tool.in: Use an environment variable (private) instead of a
3350         file (shared) as a semaphore, so as to not break parallel builds.
3351
3352 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3353
3354         * optabs.c (maybe_encapsulate_block): Remove.
3355         (emit_libcall_block): Adjust accordingly.
3356         * optabs.h (maybe_encapsulate_block): Remove prototype.
3357
3358         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
3359         Don't use maybe_encapsulate_block.
3360
3361 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3362
3363         * config/rs6000/rs6000.c (rs6000_legitimize_address,
3364         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
3365         rtx is a SYMBOL_REF before calling get_pool_constant.
3366
3367 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3368
3369         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
3370
3371 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
3372
3373         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
3374         rather than OS names to choose INO_T_EQ definition.
3375         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
3376         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
3377
3378 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
3379
3380         PR target/36348
3381         * config/darwin-f.c: New.
3382         * config/t-darwin: Added rule to build darwin-f.o.
3383         * config.gcc: Defined new variable, fortran_target_objs.
3384         (*-*-darwin*): Set fortran_target_objs.
3385         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
3386         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
3387         * configure: Regenerated.
3388
3389 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
3390
3391         PR target/35771
3392         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
3393         canonical type if needed.
3394
3395 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3396
3397         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
3398
3399 2008-05-29  Richard Guenther  <rguenther@suse.de>
3400
3401         PR tree-optimization/36343
3402         PR tree-optimization/36346
3403         PR tree-optimization/36347
3404         * tree-flow.h (clobber_what_p_points_to): Declare.
3405         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
3406         pointed-to variable is dereferenced is irrelevant to whether
3407         the pointer can access the pointed-to variable.
3408         (clobber_what_p_points_to): New function.
3409         * tree-ssa-alias.c (set_initial_properties): Use it.
3410         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
3411         call clobber check for NMTs.
3412
3413 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
3414         
3415         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
3416         for printing gcov_type.
3417
3418 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
3419
3420         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
3421         and the eh region information.
3422         * value-prof.c (gimple_move_stmt_histograms): New function.
3423         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
3424
3425 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
3426
3427         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
3428
3429 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
3430
3431         * value-prof.c (tree_ic_transform): Print counts.
3432         * tree-profile.c (tree_gen_ic_func_profiler):
3433         Clear __gcov_indreict_call_callee variable to avoid misattribution
3434         of the profile.
3435
3436 2008-05-28  Rafael Espindola  <espindola@google.com>
3437
3438         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
3439         invalid sharing.
3440
3441 2008-05-28  Richard Guenther  <rguenther@suse.de>
3442
3443         PR tree-optimization/36339
3444         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
3445         and clobbering code out of the loop.
3446
3447 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3448
3449         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
3450         letters defined.
3451
3452         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
3453         s390_contiguous_bitmask_p, s390_symref_operand_p,
3454         s390_check_symref_alignment, s390_reload_larl_operand,
3455         s390_reload_symref_address): New functions.
3456         (s390_branch_condition_mnemonic): Support compare and branch
3457         instructions.
3458         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
3459         and 'W' constraints.
3460         (s390_secondary_reload): Add secondary reloads for unaligned
3461         symbol refs or symbol refs to floating point or QI/TI mode
3462         integer values.
3463         (legitimate_address_p): Accept symbol references as addresses.
3464         (s390_expand_insv): Use rotate and insert selected bits
3465         instruction for insv when building for z10.
3466         (print_operand_address): Handle symbol ref addresses.
3467         (print_operand): Output modifier 'c' added for signed byte values.
3468         (s390_encode_section_info): Mark symbol refs with
3469         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
3470
3471         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
3472         (length attribute): RRF, RRR have 4 byte length.
3473         (FPALL, INTALL): New mode iterators added.
3474         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
3475         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
3476         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
3477         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
3478         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
3479         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
3480         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
3481         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
3482         instructions.
3483         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
3484         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
3485         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
3486         reload<INTALL:mode><P:mode>_toreg_z10,
3487         reload<FPALL:mode><P:mode>_tomem_z10,
3488         reload<FPALL:mode><P:mode>_toreg_z10,
3489         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
3490         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
3491         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
3492         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
3493         definition.
3494         (movmem, clrmem, cmpmem): New splitters added.
3495
3496         * config/s390/predicates.md (larl_operand): Use
3497         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
3498         SYMBOL_REF_ALIGN1_P.
3499         (s390_signed_integer_comparison,
3500         s390_unsigned_integer_comparison): New predicates.
3501
3502         * config/s390/s390-protos.h (s390_check_symref_alignment,
3503         s390_contiguous_bitmask_p, s390_reload_larl_operand,
3504         s390_reload_symref_address,
3505         s390_compare_and_branch_condition_mask): Prototypes added.
3506
3507         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
3508         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
3509         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
3510
3511 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3512
3513         * config/s390/s390.c (z10_cost): New cost function for z10.
3514         (s390_handle_arch_option, override_options): Support -march=z10 switch.
3515         (s390_issue_rate): Adjust issue rate for z10.
3516         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
3517         (processor_flags): Add PF_Z10.
3518         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
3519         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
3520         * gcc/config.gcc: Add z10.
3521
3522 2008-05-28  Richard Guenther  <rguenther@suse.de>
3523
3524         PR tree-optimization/36291
3525         * tree-flow. h (struct gimple_df): Remove var_anns member.
3526         * tree-flow-inline.h (gimple_var_anns): Remove.
3527         (var_ann): Simplify.
3528         * tree-dfa.c (create_var_ann): Simplify.
3529         (remove_referenced_var): Clear alias info from var_anns of globals.
3530         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
3531         (delete_tree_ssa): Clear alias info from var_anns of globals.
3532         Do not free var_anns.
3533         (var_ann_eq): Remove.
3534         (var_ann_hash): Likewise.
3535
3536 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
3537
3538         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
3539         and loongson2f entries.
3540         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
3541         * config/mips/mips.h (processor_type): Add Loongson-2E
3542         and Loongson-2F entries.
3543         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
3544         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
3545         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
3546         * doc/invoke.texi (MIPS Options): Document loongson2e
3547         and loongson2f processor names.
3548
3549 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3550
3551         PR target/35767
3552         PR target/35771
3553         * config/i386/i386.c (ix86_function_arg_boundary): Use
3554         alignment of canonical type.
3555         (ix86_expand_vector_move): Check unaligned memory access for
3556         all SSE modes.
3557
3558 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3559
3560         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
3561         Moved to the front of file.
3562
3563 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
3564             H.J. Lu  <hongjiu.lu@intel.com>
3565
3566         * dwarf2out.c (current_fde): New.
3567         (add_cfi): Use it.
3568         (lookup_cfa:): Likewise.
3569         (dwarf2out_end_epilogue): Likewise.
3570         (dwarf2out_note_section_used): Likewise.
3571
3572 2008-05-27  Michael Matz  <matz@suse.de>
3573
3574         PR c++/27975
3575         * c.opt (Wenum-compare): New warning option.
3576         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
3577
3578 2008-05-27  Michael Matz  <matz@suse.de>
3579
3580         PR middle-end/36326
3581         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
3582         non-BLKmode types.
3583         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
3584         into memory as tail calls.
3585
3586 2008-05-27  Richard Guenther  <rguenther@suse.de>
3587
3588         PR tree-optimization/36339
3589         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
3590         pointers cause all addressable variables to be call clobbered.
3591
3592 2008-05-27  Richard Guenther  <rguenther@suse.de>
3593
3594         PR tree-optimization/36245
3595         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
3596
3597 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3598
3599         * config/s390/s390.md: Replace all occurences of the 'm'
3600         constraint with 'RT'.
3601
3602 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3603
3604         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
3605         definitions added.
3606         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
3607         "*movdi_64".
3608         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
3609         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
3610         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
3611
3612 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3613
3614         * reload.c: (find_reloads): Skip alternatives according to the
3615         "enabled" attribute. Constify the constraint variable.
3616         * recog.c (get_attr_enabled): Add default implementation.
3617         (extract_insn): Set the alternative_enabled_p array
3618         in the recog_data struct.
3619         (preprocess_constraints, constrain_operands): Skip
3620         alternatives according to the "enabled" attribute
3621         * recog.h (struct recog_data): New field alternative_enabled_p.
3622         (skip_alternative): New inline function.
3623         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
3624         (record_reg_classes): Skip alternative according to the
3625         "enabled" attribute.
3626
3627         * doc/md.texi: Add documention for the "enabled" attribute.
3628
3629 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3630
3631         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
3632         * postreload.c (reload_cse_simplify_operands): Replace 'm'
3633         constraint with TARGET_MEM_CONSTRAINT.
3634         * recog.c (asm_operand_ok, preprocess_constraints,
3635         constrain_operands): Likewise.
3636         * regclass.c (record_reg_classes): Likewise.
3637         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
3638         * reload1.c (maybe_fix_stack_asms): Likewise.
3639         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
3640         * recog.h: Adjust comment.
3641         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
3642         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
3643         * doc/md.texi: Add a note to description of 'm' constraint.
3644         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
3645
3646 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3647
3648         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
3649         that the bitfield is of integral type before testing its precision.
3650
3651 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
3652             Sa Liu  <saliu@de.ibm.com> 
3653
3654         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
3655         __modti3, __udivti3, __umodti3 and __udivmodti4.
3656         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
3657         that implement TImode mul and div functions.
3658         * config/spu/multi3.c: New. Implement __multi3.
3659         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
3660         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
3661         functions on SPU.
3662
3663 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
3664
3665         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
3666         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
3667         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
3668         tls_sysv_suffix): New mode and mode attribute iterators.
3669         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
3670         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
3671         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
3672         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
3673         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
3674         iterators.
3675
3676 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3677
3678         PR tree-optimization/36329
3679         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
3680         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
3681         * cgraphbuild.c (initialize_inline_failed): Use the latter
3682         macro in lieu of the former.
3683         * ipa-inline.c (cgraph_mark_inline): Likewise.
3684         (cgraph_decide_inlining_of_small_function): Likewise.
3685         (cgraph_decide_inlining): Likewise.
3686         (cgraph_decide_inlining_incrementally): Likewise.
3687
3688 2008-05-26  Tristan Gingold  <gingold@adacore.com>
3689             Anatoly Sokolov  <aesok@post.ru>
3690
3691         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
3692         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
3693         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
3694         optimization for 'avr6' architecture.
3695
3696 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
3697
3698         PR target/34932
3699         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
3700
3701 2008-05-26  Richard Guenther  <rguenther@suse.de>
3702
3703         * tree-ssa-sccvn.c (expr_has_constants): Declare.
3704         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
3705
3706 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3707
3708         PR middle-end/36253
3709         * caller-save.c (insert_restore): Verify alignment of spill space.
3710         (insert_save): Likewise.
3711         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
3712         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
3713         (STACK_SLOT_ALIGNMENT): Likewise.
3714         * function.c (LOCAL_ALIGNMENT): Removed.
3715         (get_stack_local_alignment): New.
3716         (assign_stack_local): Use it.  Set alignment on stack slot.
3717         (assign_stack_temp_for_type): Use get_stack_local_alignment.
3718         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
3719         (STACK_SLOT_ALIGNMENT): New.
3720         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
3721         stack slot in XFmode.
3722
3723         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
3724
3725 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3726
3727         PR/36321
3728         * config/i386/i386.md (allocate_stack_worker_64): Make sure
3729         argument operand in rax isn't removed.
3730
3731 2008-05-26  Richard Guenther  <rguenther@suse.de>
3732
3733         PR middle-end/36300
3734         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
3735         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
3736
3737 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3738
3739         PR bootstrap/36331
3740         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
3741
3742 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
3743
3744         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
3745         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
3746
3747 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3748
3749         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3750         build a trampoline if we don't want one.
3751         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
3752         return zero for nested functions if we don't want a trampoline.
3753
3754 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3755
3756         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
3757
3758 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3759
3760         PR fortran/18428
3761         * c.opt: Removed undocumented option '-lang-fortran'.
3762         * c-common.h: Removed global variable 'lang_fortran'.
3763         * c-opts.c (c_common_handle_option): Removed code to handle
3764         option '-lang-fortran'. Updated includes.
3765         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
3766         definition of '__GFORTRAN__'.
3767         (define__GNUC__): Reimplemented to use BASEVER and
3768         cpp_define_formatted.
3769         (builtin_define_with_value_n): Removed.
3770         * c-incpath.h: Renamed to ...
3771         * incpath.h: ... this.
3772         * c-incpath.c: Renamed to ...
3773         * incpath.c: ... this. Updated includes.
3774         * fix-header.c: Updated includes.
3775         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
3776         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
3777         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
3778
3779 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3780
3781         * tree.h: Update the table of flags used on tree nodes.
3782         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
3783         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
3784         (FORCED_LABEL): Add access check.
3785         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
3786         (ASM_INPUT_P): Likewise.
3787         (ASM_VOLATILE_P): Likewise.
3788         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
3789         (OMP_SECTION_LAST): Access private_flag directly.
3790         (OMP_RETURN_NOWAIT): Likewise.
3791         (OMP_PARALLEL_COMBINED): Likewise.
3792         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
3793         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
3794         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
3795         deprecated_flag directly.
3796
3797 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3798
3799         * final.c (frame_pointer_needed): Removed.
3800         * flags.h (frame_pointer_needed): Likewise.
3801
3802         * function.h (rtl_data): Add frame_pointer_needed.
3803         (frame_pointer_needed): New.
3804
3805 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
3806
3807         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
3808
3809 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
3810
3811         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
3812         SRC is a REG.
3813
3814 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
3815
3816         * c-common.c (strip_array_types): Move function to..
3817         * tree.c: ..here.
3818         (get_inner_array_type): Delete.
3819         * c-common.h (strip_array_types): Move declaration to..
3820         * tree.h: ..here.
3821         (get_inner_array_type): Delete.
3822         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
3823         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3824         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3825         * config/pa/pa.c (emit_move_sequence): Likewise.
3826
3827 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3828
3829         * config/i386/i386.md (*sse_prologue_save_insn): Set length
3830         attribute to 34.
3831
3832 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
3833
3834         * function.c: Include target hook for nonlocal_goto frame value.
3835
3836 2008-05-24  Richard Guenther  <rguenther@suse.de>
3837
3838         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
3839         variable can be only accessed through a pointer or a union.
3840
3841 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3842
3843         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
3844         * doc/extend.texi: Likewise.
3845
3846 2008-05-23  DJ Delorie  <dj@redhat.com>
3847
3848         * config/m32c/jump.md (untyped_call): Add.
3849
3850         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3851         for A24 to PSImode.
3852         (m32c_address_cost): Detail costs for indirect offsets.
3853
3854 2008-05-23  Rafael Espindola  <espindola@google.com>
3855
3856         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3857         if a node is a SUBREG.
3858         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3859         is a SUBREG.
3860
3861 2008-05-23  Paul Brook  <paul@codesourcery.com>
3862             Carlos O'Donell  <carlos@codesourcery.com>
3863
3864         * doc/extend.texi: Clarify use of __attribute__((naked)).
3865         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3866         * target.h (gcc_target): Add allocate_stack_slots_for_args.
3867         * function.c (use_register_for_decl): Use
3868         targetm.calls.allocate_stack_slots_for_args.
3869         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3870         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3871         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3872
3873 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3874
3875         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3876
3877 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
3878
3879         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3880         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3881         is only rounded once.
3882
3883 2008-05-23  Richard Guenther  <rguenther@suse.de>
3884
3885         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3886
3887 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
3888             Jakub Jelinek  <jakub@redhat.com>
3889
3890         PR target/36079
3891         * configure.ac: Handle --enable-cld.
3892         * configure: Regenerated.
3893         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3894         * config/i386/i386.h (struct machine_function): Add needs_cld field.
3895         (ix86_current_function_needs_cld): New define.
3896         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3897         (cld): New isns pattern.
3898         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3899         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3900         * config/i386/i386.opt (mcld): New option.
3901         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3902         TARGET_CLD and ix86_current_function_needs_cld.
3903         (override_options): Use -mcld by default for 32-bit code if
3904         USE_IX86_CLD.
3905
3906         * doc/install.texi (Options specification): Document --enable-cld.
3907         * doc/invoke.texi (Machine Dependent Options)
3908         [i386 and x86-64 Options]: Add -mcld option.
3909         (Intel 386 and AMD x86-64 Options): Document -mcld option.
3910
3911 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3912         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3913         (return_in_memory_64): Likewise.
3914         (return_in_memory_ms_64): Likewise.
3915
3916 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3917
3918         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3919         * builtins.c (fold_builtin_fpclassify): New.
3920         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3921         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3922         * c-common.c (handle_type_generic_attribute): Adjust to accept
3923         fixed arguments before an elipsis.
3924         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3925         * doc/extend.texi: Document __builtin_fpclassify.
3926
3927 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3928
3929         * omp-low.c (gate_expand_omp_ssa): Remove.
3930         (pass_expand_omp_ssa): Remove.
3931         (gate_expand_omp): Do not check for flag_openmp_ssa.
3932         * common.opt (-fopenmp-ssa): Remove.
3933         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3934
3935 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3936
3937         * config/sh/sh.opt (mfixed-range): New option.
3938         * config/sh/sh-protos.h (sh_fix_range): Declare.
3939         * config/sh/sh.c (sh_fix_range): New function.
3940         * config/sh/sh.h (sh_fixed_range_str): Declare.
3941         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3942         is not empty.
3943         * doc/invoke.texi (SH Options): Document -mfixed-range.
3944
3945 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3946
3947         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3948         it before the redeclaration.
3949
3950 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3951
3952         * config/avr/avr.c (get_sequence_length): Add new function.
3953         (expand_prologue, expand_epilogue): Remove duplicate code.
3954
3955 2008-05-22  Rafael Espindola  <espindola@google.com>
3956
3957         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3958         sharing.
3959
3960 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3961
3962         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3963         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3964
3965         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3966         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3967         (vect_update_misalignment_for_peel): Likewise.
3968         (vector_alignment_reachable_p): Likewise.
3969         * tree-vect-transform.c (vectorizable_load): Likewise.
3970         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3971         (get_vectype_for_scalar_type): Pass mode of scalar_type
3972         to UNITS_PER_SIMD_WORD.
3973
3974         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3975         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3976         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3977         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3978         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3979
3980 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3981
3982         PR tree-optimization/36293
3983         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3984         if the first load must be skipped because of a gap.
3985
3986 2008-05-22  Richard Guenther  <rguenther@suse.de>
3987
3988         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3989         more cases of offset disambiguation that is possible if
3990         strict-aliasing rules apply.
3991         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3992         for basic offset and type-based disambiguation.
3993
3994 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3995
3996         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3997         ix86_expand_vector_set on V16QImode for SSE4.1.
3998
3999 2008-05-21  Tom Tromey  <tromey@redhat.com>
4000
4001         * c.opt (Wimport): Mark as undocumented.
4002         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
4003         -Wno-import.
4004         (Warning Options): Likewise.
4005         * doc/cppopts.texi: Don't mention -Wimport.
4006
4007 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
4008
4009         PR tree-optimization/36287
4010         PR tree-optimization/36286
4011         * lambda-code.c (build_access_matrix): Do not use the loop->num
4012         for computing the number of induction variables: use the loop depth
4013         instead.
4014
4015 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
4016
4017         PR/36280
4018         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
4019         option -f(no-)leading-underscore.
4020
4021 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4022
4023         * config/i386/i386.c (ix86_expand_vector_init_general): Use
4024         GET_MODE_NUNITS (mode).
4025
4026 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
4027
4028         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
4029         (-mmulhw): Add 464 to description.
4030         (-mdlmzb): Likewise.
4031         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
4032         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
4033         464fp entries.
4034         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
4035         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
4036         * config/rs6000/rs6000.md: Update comments for 464.
4037
4038 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
4039
4040         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
4041
4042 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4043
4044         * config/i386/sse.md (vec_extractv4sf): Removed.
4045         (vec_extractv2df): Likewise.
4046         (vec_extractv2di): Likewise.
4047         (vec_extractv4si): Likewise.
4048         (vec_extractv8hi): Likewise.
4049         (vec_extractv16qi): Likewise.
4050         (vec_extract<mode>): New.
4051
4052 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4053
4054         * config/i386/sse.md (vec_setv4sf): Removed.
4055         (vec_setv2df): Likewise.
4056         (vec_setv2di): Likewise.
4057         (vec_setv4si): Likewise.
4058         (vec_setv8hi): Likewise.
4059         (vec_setv16qi): Likewise.
4060         (vec_set<mode>): New.
4061
4062 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4063
4064         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
4065         goto for vec_concat and vec_interleave.
4066
4067 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4068
4069         * config/i386/sse.md (vec_initv4sf): Removed.
4070         (vec_initv2df): Likewise.
4071         (vec_initv2di): Likewise.
4072         (vec_initv4si): Likewise.
4073         (vec_initv8hi): Likewise.
4074         (vec_initv16qi): Likewise.
4075         (vec_init<mode>): New.
4076
4077 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
4078
4079         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
4080
4081 2008-05-21  Tom Tromey  <tromey@redhat.com>
4082
4083         * ggc-zone.c (lookup_page_table_if_allocated): New function.
4084         (zone_find_object_offset): Likewise.
4085         (gt_ggc_m_S): Likewise.
4086         (highest_bit): Likewise.
4087         * ggc-page.c (gt_ggc_m_S): New function.
4088         * stringpool.c (string_stack): Remove.
4089         (init_stringpool): Update.
4090         (ggc_alloc_string): Use ggc_alloc.
4091         (maybe_delete_ident): New function.
4092         (ggc_purge_stringpool): Likewise.
4093         (gt_ggc_m_S): Remove.
4094         * ggc-common.c (ggc_protect_identifiers): New global.
4095         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
4096         ggc_protect_identifiers.
4097         * ggc.h (ggc_protect_identifiers): Declare.
4098         (gt_ggc_m_S): Update.
4099         (ggc_purge_stringpool): Declare.
4100         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
4101         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
4102         special case.
4103         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
4104
4105 2008-05-21  David S. Miller  <davem@davemloft.net>
4106
4107         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
4108         tmake_file.
4109
4110 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4111
4112         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
4113         once finished.
4114
4115 2008-05-20  David Daney  <ddaney@avtrex.com>
4116
4117         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
4118         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
4119         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4120         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4121         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
4122         (atomic_hiqi_op): New define_code_iterator.
4123         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
4124         mips_expand_compare_and_swap_12.
4125         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
4126         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
4127         (sync_<optab><mode>, sync_old_<optab><mode>,
4128         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
4129         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
4130         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
4131         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
4132         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
4133         (test_and_set_12): New insn.
4134         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
4135         sync_new_<optab><mode>, sync_old_nand<mode>,
4136         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
4137         clobber to operand 0 for SI and DI mode insns.
4138         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
4139         mips_gen_fn_4): New typedefs.
4140         (mips_gen_fn_ptrs): Define new union type.
4141         (mips_expand_compare_and_swap_12): Remove declaration.
4142         (mips_expand_atomic_qihi): Declare function.
4143         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
4144         (mips_expand_atomic_qihi): ... this.  Use new generator function
4145         parameter.
4146         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
4147         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
4148         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
4149         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
4150         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
4151         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
4152         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
4153         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
4154         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
4155         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
4156         New macros.
4157
4158 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
4159
4160         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
4161         the missing break.
4162
4163 2008-05-20  Anatoly Sokolov <aesok@post.ru>
4164
4165         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
4166         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
4167         (avr_attribute_table): Add 'OS_main' function attribute.
4168         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
4169         functions with 'OS_main' attribute.
4170
4171 2008-05-20  Richard Guenther  <rguenther@suse.de>
4172
4173         PR tree-optimization/35204
4174         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
4175         helper, split out from ...
4176         (DFS): ... here.  Make the DFS walk non-recursive.
4177
4178 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
4179             Jan Sjodin  <jan.sjodin@amd.com>
4180
4181         PR tree-optimization/36181
4182         * tree-parloops.c (loop_has_vector_phi_nodes): New.
4183         (parallelize_loops): Don't parallelize when the loop has vector
4184         phi nodes.
4185
4186 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
4187             Sebastian Pop  <sebastian.pop@amd.com>
4188
4189         * tree-loop-linear.c (gather_interchange_stats): Look in the access
4190         matrix, and never look at the tree representation of the memory
4191         accesses.
4192         (linear_transform_loops): Computes parameters and access matrices.
4193         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
4194         when fails.
4195         (access_matrix_get_index_for_parameter): New.
4196         * tree-data-ref.h (struct access_matrix): New.
4197         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
4198         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
4199         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
4200         am_vector_index_for_loop): New.
4201         (struct data_reference): Add field access_matrix.
4202         (DR_ACCESS_MATRIX): New.
4203         (compute_data_dependences_for_loop): Update declaration.
4204         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
4205         * lambda.h (lambda_vector_vec_p): Declared.
4206         * lambda-code.c: Depend on pointer-set.h.
4207         (lambda_collect_parameters_from_af, lambda_collect_parameters,
4208         av_for_af_base, av_for_af, build_access_matrix,
4209         lambda_compute_access_matrices): New.
4210         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
4211
4212 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
4213
4214         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
4215         $SOURCEDIR/include.
4216
4217 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
4218             Sebastian Pop  <sebastian.pop@amd.com>
4219
4220         PR tree-optimization/36206
4221         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
4222         FOLD_CONVERSIONS.
4223         (instantiate_scev_1): Rename flags to fold_conversions.
4224         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
4225         outeside instantiation_loop.
4226         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
4227         (evolution_function_is_affine_or_constant_p): Removed.
4228         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
4229         instantiate_scev.
4230         (analyze_siv_subscript): Pass in the loop nest number.
4231         Call evolution_function_is_affine_in_loop instead of 
4232         evolution_function_is_affine_p.
4233         (analyze_overlapping_iterations): Pass in the loop nest number.
4234
4235 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
4236             Sebastian Pop  <sebastian.pop@amd.com>
4237
4238         PR tree-optimization/36206
4239         * tree-chrec.h (chrec_fold_op): New.
4240         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
4241         and other trees.
4242
4243 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
4244
4245         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
4246         (DIRS_EQ): New.
4247         (remove_duplicates): Do not set inode on non-inode systems.
4248         Use DIRS_EQ.
4249
4250 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
4251
4252         * config.gcc (tm_file): Update comments about relative pathnames.
4253
4254 2008-05-20  Richard Guenther  <rguenther@suse.de>
4255
4256         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
4257         * tree-ssa-sccvn.c (process_scc): Likewise.
4258         * tree-ssa-sink.c (execute_sink_code): Likewise.
4259         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
4260         * tree-vrp.c (process_assert_insertions): Likewise.
4261         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4262         (perform_tree_ssa_dce): Likewise.
4263         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4264         (dump_dominator_optimization_stats): Likewise.
4265         * tree-vectorizer.c (vectorize_loops): Likewise.
4266
4267 2008-05-20  Richard Guenther  <rguenther@suse.de>
4268
4269         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
4270
4271 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
4272
4273         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
4274         (ix86_i386elf_return_in_memory): Likewise.
4275         (ix86_i386interix_return_in_memory): Likewise.
4276         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
4277         (SUBTARGET_RETURN_IN_MEMORY): New.
4278         * config/i386/i386elf.h: Likewise.
4279         * config/i386/ptx4-i.h: Likewise.
4280         * config/i386/sol2-10.h: Likewise.
4281         * config/i386/sysv4.h: Likewise.
4282         * config/i386/vx-common.h: Likewise.
4283         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
4284         * config/i386/i386.c (ix86_return_in_memory): Made static and
4285         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
4286         (ix86_i386elf_return_in_memory): Removed.
4287         (ix86_i386interix_return_in_memory): Removed.
4288         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
4289         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
4290
4291 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
4292
4293         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
4294
4295 2008-05-19  Xinliang David Li  <davidxl@google.com>
4296
4297         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
4298         * opts.c: Ditto.
4299         * common.opt: Ditto.
4300         * doc/invoke.texi: Ditto.
4301
4302 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4303
4304         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
4305         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
4306
4307 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4308
4309         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
4310         sizes of operand array from 8/4 to 4/2.
4311         (ix86_expand_vector_init_general): Change size of operand array
4312         from 32 to 16.  Remove op0, op1 and half_mode.
4313
4314 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4315
4316         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
4317         (ix86_expand_vector_init_interleave): Likewise.
4318         (ix86_expand_vector_init_general): Use them.  Assert
4319         word_mode == SImode when n_words == 4.
4320
4321 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
4322
4323         * config/i386/i386.c (ix86_secondary_reload): New static function.
4324         (TARGET_SECONDARY_RELOAD): New define.
4325         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
4326         * config/i386/i386.md (reload_outqi): Remove.
4327
4328 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4329
4330         PR middle-end/35509
4331         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
4332         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
4333         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
4334         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
4335         (fold_builtin_1): Likewise.
4336         * builtins.def (BUILT_IN_ISINF_SIGN): New.
4337         c-common.c (check_builtin_function_arguments): Handle
4338         BUILT_IN_ISINF_SIGN.
4339         * doc/extend.texi: Document __builtin_isinf_sign.
4340         * fold-const.c (operand_equal_p): Handle COND_EXPR.
4341
4342 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4343
4344         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
4345         EH cleanup at the end of the pass, search for those that have been
4346         turned into forwarder blocks and do the cleanup on their successor.
4347
4348 2008-05-18  Richard Guenther  <rguenther@suse.de>
4349
4350         * tree-cfg.c (verify_gimple_expr): Allow conversions from
4351         pointers to sizetype and vice versa.
4352
4353 2008-05-18 Xinliang David Li   <davidxl@google.com>
4354
4355         * gcc/tree-ssa-dce.c: Coding style fix.
4356         (check_pow): Documentation comment. 
4357         (check_log): Documenation comment. Coding style fix.
4358         (is_unnecessary_except_errno_call): Ditto.
4359         (gen_conditions_for_pow): Ditto.
4360         (gen_conditions_for_log): Ditto.
4361         (gen_shrink_wrap_conditions): Ditto.
4362         (shrink_wrap_one_built_in_calls): Ditto.
4363         * gcc/doc/invoke.texi: Better documentation string.
4364         * ChangeLog: Fix wrong change log entries from 
4365         May 17 checkin on function call DCE.
4366
4367 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
4368
4369         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
4370
4371 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
4372
4373         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
4374         * df-problems.c (simulation routines): Fixed block comment to
4375         properly say how to add forwards scanning functions.
4376         
4377 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4378
4379         * tree-inline.c (setup_one_parameter): Remove dead code.
4380
4381 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4382
4383         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
4384         a BIT_AND_EXPR only for an INTEGER_TYPE.
4385
4386 2008-05-17 Xinliang David Li   <davidxl@google.com>
4387
4388         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
4389         (check_pow, check_log, is_unnecessary_except_errno_call): New 
4390         functions to check for eliminating math functions that are pure 
4391         except for setting errno.
4392         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
4393         general condition expressions for shrink-wrapping pow/log calls.
4394         (gen_shrink_wrap_conditions): Ditto.
4395         (shrink_wrap_one_built_in_call): Ditto.
4396         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
4397         (mark_operand_necessary): If debugging, output if OP is necessary.
4398         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
4399         unnecessary.
4400         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
4401         opt level >= 2.
4402         * gcc/common.opt: New user flag -ftree-builtin-dce.
4403         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
4404
4405 2008-05-16  David S. Miller  <davem@davemloft.net>
4406
4407         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
4408         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4409
4410 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
4411
4412         PR target/36246
4413         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
4414
4415 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
4416
4417         * ifcvt.c (dead_or_predicable): Rename
4418         df_simulate_one_insn_backwards to df_simulate_one_insn.
4419         * recog.c (peephole2_optimize): Ditto.
4420         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
4421         Ditto.
4422         * df.h: Rename df_simulate_one_insn_backwards to
4423         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
4424         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
4425         scanning of defs and uses.
4426         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
4427         (df_simulate_one_insn_forwards): Removed.
4428
4429 2008-05-16  Doug Kwan  <dougkwan@google.com>
4430
4431         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
4432         QNaN & SNaN.
4433         (real_from_string): Handle NaNs and Inf as approriate.
4434
4435 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
4436
4437         * doc/gty.texi (Source Files Containing Type Information): Note
4438         that headers should appear first in the gtfiles list.
4439
4440 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
4441
4442         * tree.def (COND_EXEC): Properly documented this code.
4443
4444 2008-05-16  Diego Novillo  <dnovillo@google.com>
4445
4446         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
4447         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
4448         the new field.
4449
4450 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
4451
4452         * tree-ssa-dse (max_stmt_uid): Removed.
4453         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
4454         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
4455         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
4456         * function.h (cfun.last_stmt_uid): New field.
4457         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
4458         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
4459         New functions.
4460         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
4461         (create_stmt_ann): Initialize the ann->uid field.
4462         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
4463         with new calls.
4464         * tree-flow.h (renumber_gimple_stmt_uids): New function.
4465
4466 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
4467
4468         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
4469         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
4470         (init_empty_tree_cfg): Call it.
4471
4472 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
4473
4474         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
4475         Update all users.
4476
4477 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
4478
4479         * doc/invoke.text (-fdump-tree-*-verbose): New option.
4480         * tree-dump.c (dump_options): New verbose option.
4481         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
4482         Add verbose dump.
4483         * tree-pass.h (TDF_VERBOSE): New dump flag.
4484         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
4485         (tree-flow.h): Added include.
4486         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
4487
4488 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
4489
4490         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
4491
4492         From Jie Zhang  <jie.zhang@analog.com>
4493         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
4494         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
4495         mcpu=bf561-none and mcpu=bf561-0.2.
4496         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
4497         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
4498         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
4499         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
4500         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
4501         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
4502         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
4503         option.
4504         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
4505         (cputype_selected): Remove.
4506         (bfin_handle_option): Don't use cputype_selected.
4507         (override_options): When no mcpu option, enable all workarounds.
4508         Don't use bfin_workarounds.
4509         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
4510         processor type.
4511         (DEFAULT_CPU_TYPE): Don't define.
4512
4513 2008-05-16  Richard Guenther  <rguenther@suse.de>
4514
4515         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
4516         on deletion of the last stmt.
4517
4518 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4519
4520         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
4521         V8HImode for SSE2 and V16QImode for SSE4.1.
4522
4523 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
4524
4525         * cgraph.h (compute_inline_parameters): Made public.
4526         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
4527         variable_generate_summary, function_write_summary,
4528         variable_write_summary, variable_read_summary.  Added generate_summary,
4529         write_summary, read_summary.
4530         * cgraphunit.c (cgraph_process_new_functions): Changed call from
4531         pass_ipa_inline.function_generate_summary, to
4532         compute_inline_parameters. 
4533         * ipa-inline.c (compute_inline_parameters): Made public and added
4534         node parameter.
4535         (compute_inline_parameters_for_current): New function.
4536         (pass_inline_param): Now calls compute_inline_parameters_for_current.
4537         (inline_generate_summary): Removed parameter and made to loop over
4538         all cgraph nodes.
4539         (pass_ipa_inline): Updated for new IPA_PASS structure.
4540         * passes.c (execute_ipa_summary_passes): Now is called once per
4541         pass rather than once per node*pass.
4542         
4543 2008-05-15  Anatoly Sokolov <aesok@post.ru>
4544
4545         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
4546         avr_have_mul_p, avr_asm_only_p): Remove variables.
4547         (avr_override_options): Remove initialization of removed variables.
4548         (avr_file_start):  Convert removed variables to fields of 
4549         'struct base_arch_s *avr_current_arch'. 
4550         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
4551         (AVR_HAVE_MUL): (Ditto.).
4552         (AVR_HAVE_MOVW): (Ditto.).
4553         (AVR_HAVE_LPMX): (Ditto.). 
4554         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
4555         avr_asm_only_p): Remove declaration.
4556
4557 2008-05-15  Diego Novillo  <dnovillo@google.com>
4558
4559         * config/arm/arm.c (arm_return_in_memory): Fix return type.
4560         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
4561
4562 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
4563
4564         PR middle-end/36194
4565         * combine.c (check_conversion): Rename back to check_promoted_subreg.
4566         Don't call record_truncated_value from here.
4567         (record_truncated_value): Turn it into a for_each_rtx callback.
4568         (record_truncated_values): New function.
4569         (combine_instructions): Call note_uses with record_truncated_values.
4570         Change name of check_conversion to check_promoted_subreg. 
4571
4572 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
4573
4574         * doc/sourcebuild.texi: Document support for torture tests.
4575
4576 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4577
4578         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
4579         to alternative 4 of operand 2.
4580
4581 2008-05-15  Richard Guenther  <rguenther@suse.de>
4582
4583         * tree-pass.h (current_pass): Declare.
4584         (get_pass_for_id): Likewise.
4585         * passes.c (passes_by_id, passes_by_id_size): New globals.
4586         (set_pass_for_id): New function.
4587         (get_pass_for_id): Likewise.
4588         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
4589         (execute_function_todo): Flush per function statistics.
4590         * toplev.c (compile_file): Init statistics.
4591         (general_init): Do early statistics initialization.
4592         (finalize): Finish statistics.
4593         * statistics.h (statistics_early_init): Declare.
4594         (statistics_init): Likewise.
4595         (statistics_fini): Likewise.
4596         (statistics_fini_pass): Likewise.
4597         (statistics_counter_event): Likewise.
4598         (statistics_histogram_event): Likewise.
4599         * statistics.c: New file.
4600         * Makefile.in (OBJS-common): Add statistics.o.
4601         (statistics.o): Add dependencies.
4602         * doc/invoke.texi (-fdump-statistics): Document.
4603
4604         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
4605         (insert): Likewise.
4606         (execute_pre): Use statistics_counter_event.
4607         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
4608         (substitute_and_fold): Increment it.  Use statistics_counter_event.
4609
4610 2008-05-15  Diego Novillo  <dnovillo@google.com>
4611
4612         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
4613
4614         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
4615         * tree-ssa-alias.c (new_type_alias): Remove references to
4616         sub-variables from comment.
4617         * tree-ssa-operands.c (swap_tree_operands): Likewise.
4618
4619 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4620
4621         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
4622         attribute to 1 only for insertps alternative.
4623
4624 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4625
4626         * config/bfin/bfin.md (loadbytes): New pattern.
4627         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
4628         (bfin_init_builtins): Initialize it.
4629         (bdesc_1arg): Add it.
4630
4631 2008-05-15  Sa Liu  <saliu@de.ibm.com>
4632
4633         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
4634         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
4635         * testsuite/lib/target-supports.exp: Add
4636         check_effective_target_fortran_integer_16.
4637
4638 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4639
4640         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
4641         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
4642         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
4643         (TARGET_RETURN_IN_MEMORY): Define.
4644
4645 2008-05-15  Richard Guenther  <rguenther@suse.de>
4646
4647         PR middle-end/36244
4648         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
4649         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
4650         represent unmodifiable vars.
4651
4652 2008-05-15  Richard Guenther  <rguenther@suse.de>
4653
4654         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
4655         INDIRECT_REF and TARGET_MEM_REF.
4656         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4657         TARGET_MEM_REF.
4658
4659 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4660             H.J. Lu  <hongjiu.lu@intel.com>
4661
4662         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
4663         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
4664         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
4665         insn alternatives.  Add missing alternatives.
4666         (*vec_concatv2di_rex64_sse4_1): Likewise.
4667         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
4668         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
4669         Require TARGET_SSE.
4670
4671 2008-05-15  Richard Guenther  <rguenther@suse.de>
4672
4673         PR tree-optimization/36009
4674         PR tree-optimization/36204
4675         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
4676         (determine_invariantness_stmt): Record the loop a store is
4677         always executed in.
4678         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
4679         dependency.
4680
4681 2008-05-15  Richard Guenther  <rguenther@suse.de>
4682
4683         PR tree-optimization/34330
4684         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
4685         through the pointer will alias the SMT.
4686
4687 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
4688
4689         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
4690
4691 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4692
4693         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
4694
4695 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4696             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4697
4698         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
4699         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
4700         (vashl_optab): New optab for vector/vector shifts.
4701         (vashr_optab): Ditto.
4702         (vlshr_optab): Ditto.
4703         (vrotl_optab): Ditto.
4704         (vrotr_optab): Ditto.
4705         (optab_subtype): New enum for optab_for_tree_code call.
4706         (optab_for_tree_code): Add enum optab_subtype argument.
4707
4708         * optabs.c (optab_for_tree_code): Take an additional argument to
4709         distinguish between a vector shift by a scalar and vector shift by
4710         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
4711         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
4712         vector shift by a vector.
4713         (expand_widen_pattern_expr): Pass additional argument to
4714         optab_for_tree_code.
4715
4716         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
4717         vrotl_optab, vrotr_optab.
4718
4719         * expr.c (expand_expr_real_1): Update calls to
4720         optab_for_tree_code to distinguish between vector shifted by a
4721         scalar and vector shifted by a vector.
4722         * tree-vectorizer.c (supportable_widening_operation): Ditto.
4723         (supportable_narrowing_operation): Ditto.
4724         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
4725         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
4726         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
4727         (vect_create_epilog_for_reduction): Ditto.
4728         (vectorizable_reduction): Ditto.
4729         (vectorizable_operation): Ditto.
4730         (vect_strided_store_supported): Ditto.
4731         (vect_strided_load_supported): Ditto.
4732         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
4733         * expmed.c (expand_shift): Ditto.
4734
4735         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
4736         scalar type.
4737         (ashr@var{m}3): Ditto.
4738         (vashl@var{m}3): Document new vector/vector shift standard name.
4739         (vashr@var{m}3): Ditto.
4740         (vlshr@var{m}3): Ditto.
4741         (vrotl@var{m}3): Ditto.
4742         (vrotr@var{m}3): Ditto.
4743
4744         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4745         (PPERM_INVERT): Ditto.
4746         (PPERM_REVERSE): Ditto.
4747         (PPERM_REV_INV): Ditto.
4748         (PPERM_ZERO): Ditto.
4749         (PPERM_ONES): Ditto.
4750         (PPERM_SIGN): Ditto.
4751         (PPERM_INV_SIGN): Ditto.
4752         (PPERM_SRC1): Ditto.
4753         (PPERM_SRC2): Ditto.
4754
4755         * config/i386/sse.md (mulv2di3): Add SSE5 support.
4756         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
4757         allows a memory operand to be the value being added, and split it
4758         to improve vectorization.
4759         (sse5_pmacsdqh_mem): Ditto.
4760         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
4761         (sse5_mulv2div2di3_high): Ditto.
4762         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
4763         (vec_pack_trunc_v4si): Ditto.
4764         (vec_pack_trunc_v2di): Ditto.
4765         (sse5_pcmov_<mode>): Remove code that tried to use use
4766         andps/andnps instead of pcmov.
4767         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
4768         pmacsdqh instructions.
4769         (vec_widen_smult_lo_v4si): Ditto.
4770
4771         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
4772         (PPERM_INVERT): Ditto.
4773         (PPERM_REVERSE): Ditto.
4774         (PPERM_REV_INV): Ditto.
4775         (PPERM_ZERO): Ditto.
4776         (PPERM_ONES): Ditto.
4777         (PPERM_SIGN): Ditto.
4778         (PPERM_INV_SIGN): Ditto.
4779         (PPERM_SRC1): Ditto.
4780         (PPERM_SRC2): Ditto.
4781         (ix86_expand_sse_movcc): Move the SSE5 test after the if
4782         true/false tests.
4783         (ix86_expand_int_vcond): If SSE5 generate all possible integer
4784         comparisons.
4785         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
4786         says ignore whether the last reference is a memory operand.
4787
4788 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4789             Paolo Bonzini <bonzini at gnu dot org>
4790
4791         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
4792         shift patterns.
4793
4794         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4795         (vlshr<mode>3): Rename from vlshr<mode>3.
4796         (vashr<mode>3): Rename from vashr<mode>3.
4797         (mulv4sf3): Change the names of vector shift patterns.
4798         (mulv4si3): Ditto.
4799         (negv4sf2): Ditt.
4800
4801         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
4802         shift insns.
4803
4804         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4805         (SI_SHLHI): Ditto.
4806         (SI_SHL): Ditto.
4807         (SI_SHLI): Ditto.
4808         (SI_ROTH): Ditto.
4809         (SI_ROTHI): Ditto.
4810         (SI_ROT): Ditto.
4811         (SI_ROTI): Ditto.
4812         (SPU_RL_0): Ditto.
4813         (SPU_RL_1): Ditto.
4814         (SPU_RL_2): Ditto.
4815         (SPU_RL_3): Ditto.
4816         (SPU_RL_4): Ditto.
4817         (SPU_RL_5): Ditto.
4818         (SPU_RL_6): Ditto.
4819         (SPU_RL_7): Ditto.
4820         (SPU_SL_0): Ditto.
4821         (SPU_SL_1): Ditto.
4822         (SPU_SL_2): Ditto.
4823         (SPU_SL_3): Ditto.
4824         (SPU_SL_4): Ditto.
4825         (SPU_SL_5): Ditto.
4826         (SPU_SL_6): Ditto.
4827         (SPU_SL_7): Ditto.
4828
4829         * config/spu/spu.md (v): New iterator macro to add v for vector types.
4830         (floatunssidf2_internal): Change vector/vector shift names.
4831         (floatunsdidf2_internal): Ditto.
4832         (mulv8hi3): Ditto.
4833         (ashrdi3): Ditto.
4834         (ashrti3): Ditto.
4835         (cgt_df): Ditto.
4836         (cgt_v2df): Ditto.
4837         (dftsv): Ditto.
4838         (vashl<mode>3): Rename from ashl<mode>3.
4839         (vashr<mode>3): Rename from ashr<mode>3.
4840         (vlshr<mode>3): Rename from lshr<mode>3.
4841         (vrotl<mode>3): Rename from rotl<mode>3.
4842
4843 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4844
4845         PR target/36224
4846         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
4847         multiply gives the wrong value when doing widening multiplies.
4848         (vec_widen_smult_lo_v4si): Ditto.
4849
4850 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4851
4852         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4853         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
4854         emit_library_call_value. 
4855         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
4856         * tree.h (ECF_LIBCALL_BLOCK): Removed.
4857         * calls.c (initialize_argument_information, precompute_arguments, 
4858         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
4859         (precompute_arguments): Removed flags parameter.
4860         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
4861         
4862 2008-05-14  Richard Guenther  <rguenther@suse.de>
4863
4864         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
4865         Make sure to register the store if the use is a PHI_NODE.
4866
4867 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4868
4869         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4870         memory if the component is to be referenced in BLKmode according
4871         to get_inner_reference.
4872
4873 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
4874
4875         * calls.c (emit_library_call_value_1): Restore code clearing
4876         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
4877
4878 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4879             Nicolas Roche  <roche@adacore.com>
4880
4881         * configure.ac: Add support for a "gcc_subdir" variable in
4882         config-lang.in, to denote a subdirectory where the language/GCC
4883         integration files are to be found.
4884         * configure: Regenerate.
4885
4886 2008-05-14  Ira Rosen  <irar@il.ibm.com>
4887
4888         PR tree-optimization/36098
4889         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
4890         value for the first load in the group in case of a gap.
4891         (vect_build_slp_tree): Check that there are no gaps in loads.
4892
4893 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4894
4895         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
4896         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
4897         expand_copysign_bit, ): Change call to emit_no_conflict_block to
4898         emit_insn and remove unneeded code to construct extra args.
4899         (emit_no_conflict_block): Removed.
4900         * optabls.h: (emit_no_conflict_block): Removed.
4901         * cse.c (cse_extended_basic_block): Remove search for
4902         REG_NO_CONFLICT note.
4903         * global.c: Removed incorrect comment added in revision 117.
4904         * expr.c (convert_move): Change call to emit_no_conflict_block to
4905         emit_insn.
4906         * recog.c: Change comments so that they do not mention
4907         REG_NO_CONFLICT.
4908         * local_alloc.c (combine_regs): Removed last parameter.
4909         (no_conflict_p): Removed.
4910         (block_alloc): Removed note, no_conflict_combined_regno and set
4911         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4912         (combine_regs): Removed already_dead and code to look for
4913         REG_NO_CONFLICT notes.
4914         * lower_subreg (remove_retval_note): Removed code to look for
4915         REG_NO_CONFLICT block.
4916         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4917         (resolve_clobber): Remove code to process libcalls that have
4918         REG_NO_CONFLICT notes.
4919         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4920         case.
4921         * combine.c (can_combine_p, distribute_notes):  Removed
4922         REG_NO_CONFLICT case.
4923         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4924         to emit_insns.
4925         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4926         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4927         Ditto.
4928         * reg-notes.def (NO_CONFLICT): Removed.
4929
4930 2008-05-14  David S. Miller  <davem@davemloft.net>
4931
4932         * config/sparc/sparc.c (sparc_profile_hook): If
4933         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4934         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4935         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4936
4937 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4938
4939         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4940
4941 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4942
4943         PR target/36222
4944         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4945         and op1 expansion before vector concat to have less live pseudos.
4946
4947 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4948
4949         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4950         ix86_expand_vector_set if supported.
4951
4952 2008-05-13  Diego Novillo  <dnovillo@google.com>
4953             Kenneth Zadeck  <zadeck@naturalbridge.com>
4954
4955         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4956
4957         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4958         phinodes_print_statistics, init_ssanames, fini_ssanames,
4959         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4960         release_ssa_name, release_defs, replace_ssa_name_symbol,
4961         ssanames_print_statistics): Move ...
4962         * tree-flow.h: ... here.
4963         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4964         Use FN instead of cfun.
4965         (make_ssa_name_fn): Rename from make_ssa_name.
4966         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4967         * tree-flow-inline.h (make_ssa_name): Move from
4968         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4969         * omp-low.c (expand_omp_parallel):
4970         * tree-flow-inline.h (redirect_edge_var_map_result):
4971         * tree-ssa.c (init_tree_ssa): Add argument FN.
4972         Use it instead of cfun.  Update all users.
4973
4974 2008-05-13  Tom Tromey  <tromey@redhat.com>
4975
4976         PR preprocessor/22168:
4977         * doc/cpp.texi (Top): Update menu.
4978         (Alternatives to Wrapper #ifndef): New node.
4979         (Other Directives): Document deprecation.
4980         (Obsolete Features): Remove menu.
4981         (Assertions): Merge node into Obsolete Features.
4982         (Obsolete once-only headers): Move earlier; rename to Alternatives
4983         to Wrapper #ifndef.
4984         * doc/cppopts.texi: Update.
4985         * c.opt (Wdeprecated): Enable for C and ObjC.
4986         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4987         (C++ Dialect Options): Move -Wno-deprecated from here to...
4988         (Warning Options): ... here.
4989
4990 2008-05-13  Richard Guenther  <rguenther@suse.de>
4991
4992         PR middle-end/36227
4993         * fold-const.c (fold_sign_changed_comparison): Do not allow
4994         changes in pointer-ness.
4995
4996 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4997
4998         PR target/24713
4999         * config/sh/sh.c (sh_expand_prologue): Don't clear
5000         RTX_FRAME_RELATED_P for push insns.
5001
5002 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
5003
5004         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
5005
5006 2008-05-12  Anatoly Sokolov <aesok@post.ru>
5007
5008         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
5009         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
5010         Use 'machine->is_leaf' instead of 'leaf_func_p'.
5011
5012 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5013
5014         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
5015         (*vec_concatv4sf_sse): This.
5016         (*sse2_concatv2si): Renamed to ...
5017         (*vec_concatv2si_sse2): This.
5018         (*sse1_concatv2si): Renamed to ...
5019         (*vec_concatv2si_sse): This.
5020         (*vec_concatv2di_rex): Renamed to ...
5021         (*vec_concatv2di_rex64): This.
5022         (*vec_concatv2si_sse4_1): New.
5023         (*vec_concatv2di_rex64_sse4_1): Likewise.
5024
5025 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
5026
5027         PR rtl-optimization/36111
5028         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
5029         that was created for swappable operands.
5030
5031 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
5032
5033         PR ada/36001
5034         * Makefile.in: Substitute GNATMAKE and GNATBIND.
5035         * configure.ac: Add call to ACX_PROG_GNAT.
5036
5037 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
5038
5039         * optc-gen.awk: Fix comment typo.
5040
5041 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5042
5043         * pretty-print.c (pp_integer_with_precision): Use
5044         HOST_LONG_LONG_FORMAT.
5045
5046 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
5047
5048         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
5049                 
5050 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
5051
5052         * config/i386/i386.c (bdesc_ptest): Removed.
5053         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
5054         (bdesc_args): Add __builtin_ia32_ptestz128,
5055         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
5056         (ix86_init_mmx_sse_builtins): Updated.
5057         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
5058         (ix86_expand_builtin): Updated.
5059
5060 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
5061
5062         * tree-cfg.c (valid_fixed_convert_types_p): New function.
5063         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
5064
5065 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
5066
5067         * value-prof.c (interesting_stringop_to_profile): Do not
5068         return early for BUILT_IN_MEMPCPY.
5069
5070 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
5071
5072         * calls.c (expand_call): Don't use callgraph to increase
5073         preferred_stack_boundary.
5074
5075         * cgraph.h (cgraph_rtl_info): Use unsigned on
5076         preferred_incoming_stack_boundary.
5077
5078         * final.c (rest_of_clean_state): Use unsigned on
5079         preferred_stack_boundary.
5080
5081 2008-05-09  Tom Tromey  <tromey@redhat.com>
5082
5083         PR preprocessor/22231:
5084         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
5085         proceeding.
5086
5087 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
5088
5089         PR tree-optimization/36129
5090         * tree-ssa-ccp.c: Include value-prof.h.
5091         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
5092         built-in function was folded to a constant.
5093         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
5094
5095 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
5096             Sebastian Pop  <sebastian.pop@amd.com>
5097
5098         * tree-scalar-evolution.c: Document instantiate_scev.
5099         (instantiate_parameters_1): Renamed instantiate_scev_1.
5100         Don't use the same loop for instantiation_loop and evolution_loop.
5101         (instantiate_scev): New.
5102         (instantiate_parameters): Moved...
5103         (resolve_mixers): Update call to instantiate_scev_1 to pass the
5104         same loop twice.  Maintains the semantics for this function.
5105         * tree-scalar-evolution.h (instantiate_scev): Declare.
5106         (instantiate_parameters): ...here.  Now static inline.
5107         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
5108         instead of resolve_mixers.
5109
5110 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
5111
5112         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
5113
5114 2008-05-09  Tomas Bily  <tbily@suse.cz>
5115
5116         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
5117         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
5118         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5119         * c-common.c (c_common_truthvalue_conversion): Likewise.
5120         * tree-object-size.c (compute_object_offset): Likewise.
5121         * tree-inline.c (estimate_num_insns_1): Likewise.
5122         * varasm.c (const_hash_1, compare_constant, copy_constant)
5123         (compute_reloc_for_constant, output_addressed_constants)
5124         (initializer_constant_valid_p): Likewise.
5125         * c-omp.c (check_omp_for_incr_expr): Likewise.
5126         * gimplify.c (gimplify_expr): Likewise.
5127         * c-typeck.c (c_finish_return): Likewise.
5128         * tree-vectorizer.c (supportable_widening_operation)
5129         (supportable_narrowing_operation): Likewise.
5130         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
5131         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
5132         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
5133         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
5134         (descr_info_loc): Likewise.
5135         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5136         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
5137         (fold_unary): Likewise.
5138         * builtins.c (get_pointer_alignment): Likewise.
5139         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
5140         (instantiate_parameters_1): Likewise.
5141         * tree.c (expr_align, stabilize_reference): Likewise.
5142         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
5143         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
5144         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
5145         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5146         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
5147         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
5148         Likewise.
5149         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
5150         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
5151         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
5152         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
5153         (forward_propagate_comparison)
5154         (tree_ssa_forward_propagate_single_use_vars): Likewise.
5155         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
5156         * emit-rtl.c (component_ref_for_mem_expr)
5157         (set_mem_attributes_minus_bitpos): Likewise.
5158         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5159         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
5160         Likewise.
5161         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
5162         (build_function_call, pointer_diff, build_compound_expr)
5163         (c_finish_return): Likewise.
5164         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
5165         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
5166         Likewise.
5167         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
5168         * expr.c (is_aligning_offset): Likewise.
5169         * tree-ssa-alias.c (is_escape_site): Likewise.
5170         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
5171         (check_all_va_list_escapes): Likewise.
5172         * tree-ssa-loop-ivopts.c (determine_base_object)
5173         (determine_common_wider_type): Likewise.
5174         * dojump.c (do_jump): Likewise.
5175         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
5176         * tree-gimple.c (is_gimple_cast): Likewise.
5177         * fold-const.c (decode_field_reference, )
5178         (fold_sign_changed_comparison, fold_unary, fold_comparison)
5179         (fold_binary): Likewise.
5180         * tree-ssa-alias-warnings.c (find_alias_site_helper)
5181         (already_warned_in_frontend_p): Likewise.
5182         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
5183         * tree.c (really_constant_p, get_unwidened): Likewise.
5184         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
5185         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
5186         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
5187         Likewise.
5188         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
5189         CONVERT_EXPR_P.
5190         (CONVERT_EXPR_P): Define.
5191         (CASE_CONVERT): Define.
5192         
5193 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
5194
5195         PR middle-end/36117
5196         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
5197         (delete_unmarked_insns): When deleting a call, call
5198         delete_unreachable_blocks.
5199         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5200         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
5201
5202 2008-05-08  Richard Guenther  <rguenther@suse.de>
5203
5204         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
5205         (-ftree-salias): Likewise.
5206         (salias-max-implicit-fields): Remove param documentation.
5207         (salias-max-array-elements): Likewise.
5208         * tree-pass.h (pass_create_structure_vars): Remove.
5209         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
5210         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
5211         * tree-ssa-alias.c (create_structure_vars): Remove.
5212         (gate_structure_vars): Likewise.
5213         (pass_create_structure_vars): Likewise.
5214         (gate_build_alias): Likewise.
5215         (pass_build_alias): Adjust to run always and dump the function.
5216         * common.opt (ftree-salias): Hide.
5217         * passes.c (init_optimization_passes): Remove
5218         pass_create_structure_vars, adjust comment.
5219         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
5220         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
5221         * opts.c (decode_options): Do not set flag_tree_salias.
5222         (common_handle_option): Add OPT_ftree_salias to the backward
5223         compatibility section.
5224
5225 2008-05-08  Richard Guenther  <rguenther@suse.de>
5226
5227         * tree-flow-inline.h (var_can_have_subvars): Move ...
5228         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
5229         * tree-flow.h (var_can_have_subvars): Remove.
5230         (push_fields_onto_fieldstack): Remove.
5231         (sort_fieldstack): Likewise.
5232         (struct fieldoff): Move ...
5233         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
5234         alias_set and base_for_components fields.
5235         (sort_fieldstack): Make static.
5236         (push_fields_onto_fieldstack): Likewise.  Remove code that
5237         handles anything but RECORD_TYPEs.  Remove alias_set and
5238         base_for_components handling.
5239         (create_variable_info_for): Adjust.
5240
5241 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
5242
5243         * common.opt (Wframe-larger-than=): Shorten the help message
5244         to one line.
5245         * doc/invoke.texi (Wframe-larger-than=): Add more description.
5246
5247 2008-05-08  Rafael Espindola  <espindola@google.com>
5248
5249         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
5250         trap.
5251         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
5252         trap and that both operands are gimple values.
5253         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
5254         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
5255         is a fp operation.
5256
5257 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5258
5259         * read-rtl.c (join_c_conditions): Return the first string if the
5260         two strings are equal.
5261
5262 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5263
5264         * gensupport.h (pred_data): Add a "num_codes" field.
5265         (add_predicate_code): Declare.
5266         * gensupport.c (add_predicate_code): New function.
5267         (std_pred_table): Add an "allows_const_p" field.
5268         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
5269         Remove the (incomplete) list of such codes from the codes field.
5270         (init_predicate_table): Use add_predicate_code.  Add all
5271         RTX_CONST_OBJs if allows_const_p is true.
5272         * genrecog.c (process_define_predicate): Use add_predicate_code.
5273
5274 2008-05-08  David Daney  <ddaney@avtrex.com>
5275             Richard Sandiford  <rsandifo@nildram.co.uk>
5276         
5277         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
5278         special case of constant zero operands.
5279         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
5280         old and new values.  Special case constant zero values.
5281         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
5282         fails.
5283         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
5284         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
5285
5286 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
5287
5288         PR target/36090
5289         * simplify-rtx.c (simplify_plus_minus): Create CONST of
5290         similar RTX_CONST_OBJ before CONST_INT.
5291
5292 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
5293
5294         * stmt.c (expand_stack_restore): Change sa mode if needed.
5295
5296 2008-05-08  Richard Guenther  <rguenther@suse.de>
5297
5298         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
5299         return type to bool.
5300         (ix86_sol10_return_in_memory): Likewise.
5301         (ix86_i386elf_return_in_memory): Likewise.
5302         (ix86_i386interix_return_in_memory): Likewise.
5303         * config/i386/i386.c (ix86_return_in_memory): Likewise.
5304         (ix86_sol10_return_in_memory): Likewise.
5305         (ix86_i386elf_return_in_memory): Likewise.
5306         (ix86_i386interix_return_in_memory): Likewise.
5307
5308 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
5309
5310         PR bootstrap/36180
5311         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
5312         fndecl argument.
5313         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
5314         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
5315         declared in front.
5316
5317 2008-05-08  Richard Guenther  <rguenther@suse.de>
5318
5319         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
5320         * tree-data-ref.h (struct dr_alias): Remove subvars field.
5321         (DR_SUBVARS): Remove.
5322         * tree-dfa.c (dump_subvars_for): Remove.
5323         (debug_subvars_for): Likewise.
5324         (dump_variable): Do not dump subvars.
5325         (remove_referenced_var): Do not remove subvars.
5326         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
5327         (lookup_subvars_for_var): Remove.
5328         (get_subvars_for_var): Likewise.
5329         (get_subvars_at): Likewise.
5330         (get_first_overlapping_subvar): Likewise.
5331         (overlap_subvar): Likewise.
5332         * tree-flow.h (subvar_t): Remove.
5333         (struct var_ann_d): Remove subvars field.
5334         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
5335         argument.  Remove special handling of SFTs.
5336         (compute_tag_properties): Likewise.
5337         (set_initial_properties): Likewise.
5338         (compute_call_clobbered): Likewise.
5339         (count_mem_refs): Likewise.
5340         (compute_memory_partitions): Likewise.
5341         (compute_flow_insensitive_aliasing): Likewise.
5342         (setup_pointers_and_addressables): Likewise.
5343         (new_type_alias): Likewise.
5344         (struct used_part): Remove.
5345         (used_portions): Likewise.
5346         (struct used_part_map): Likewise.
5347         (used_part_map_eq): Likewise.
5348         (used_part_map_hash): Likewise.
5349         (free_used_part_map): Likewise.
5350         (up_lookup): Likewise.
5351         (up_insert): Likewise.
5352         (get_or_create_used_part_for): Likewise.
5353         (create_sft): Likewise.
5354         (create_overlap_variables_for): Likewise.
5355         (find_used_portions): Likewise.
5356         (create_structure_vars): Likewise.
5357         * tree.def (STRUCT_FIELD_TAG): Remove.
5358         * tree.h (MTAG_P): Adjust.
5359         (struct tree_memory_tag): Remove base_for_components and
5360         unpartitionable flags.
5361         (struct tree_struct_field_tag): Remove.
5362         (SFT_PARENT_VAR): Likewise.
5363         (SFT_OFFSET): Likewise.
5364         (SFT_SIZE): Likewise.
5365         (SFT_NONADDRESSABLE_P): Likewise.
5366         (SFT_ALIAS_SET): Likewise.
5367         (SFT_UNPARTITIONABLE_P): Likewise.
5368         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
5369         (union tree_node): Remove sft field.
5370         * alias.c (get_alias_set): Remove special handling of SFTs.
5371         * print-tree.c (print_node): Remove handling of SFTs.
5372         * tree-dump.c (dequeue_and_dump): Likewise.
5373         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
5374         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
5375         * tree-predcom.c (set_alias_info): Do not set subvars.
5376         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
5377         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
5378         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
5379         (add_vars_for_offset): Remove.
5380         (add_virtual_operand): Remove special handling of SFTs.
5381         (add_call_clobber_ops): Likewise.
5382         (add_call_read_ops): Likewise.
5383         (get_asm_expr_operands): Likewise.
5384         (get_modify_stmt_operands): Likewise.
5385         (get_expr_operands): Likewise.
5386         (add_to_addressable_set): Likewise.
5387         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
5388         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5389         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5390         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
5391         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
5392         (tree_node_structure): Likewise.
5393         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
5394         handling of SFTs.
5395         (find_what_p_points_to): Likewise.
5396
5397 2008-05-08  Sa Liu  <saliu@de.ibm.com>
5398
5399         * config/spu/spu.md: Fixed subti3 pattern.
5400
5401 2008-05-08  Richard Guenther  <rguenther@suse.de>
5402
5403         PR middle-end/36154
5404         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
5405         sure to create a representative for trailing arrays for PTA.
5406
5407 2008-05-08  Richard Guenther  <rguenther@suse.de>
5408
5409         PR middle-end/36172
5410         * fold-const.c (operand_equal_p): Two objects which types
5411         differ in pointerness are not equal.
5412
5413 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
5414
5415         * calls.c (compute_argument_block_size): Add argument tree fndecl.
5416         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
5417         (emit_library_call_value_1): Add new variable fndecl initialized by
5418         NULL_TREE. It should be the decl type of orgfun, but this information
5419         seems not to be available here, so it uses the default calling abi.
5420         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
5421         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
5422         by TARGET_RETURN_IN_MEMORY.
5423         * config/i386/i386-interix.h: Likewise.
5424         * config/i386/i386.h: Likewise.
5425         * config/i386/i386elf.h: Likewise.
5426         * config/i386/ptx4-i.h: Likewise.
5427         * config/i386/sol2-10.h: Likewise.
5428         * config/i386/sysv4.h: Likewise.
5429         * config/i386/vx-common.h: Likewise.
5430         * config/cris/cris.h: Removed #if 0 clause.
5431         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
5432         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
5433         argument.
5434         (ix86_sol10_return_in_memory): Likewise.
5435         (ix86_i386elf_return_in_memory): New.
5436         (ix86_i386interix_return_in_memory): New.
5437         * config/mt/mt-protos.h (mt_return_in_memory): New.
5438         * config/mt/mt.c: Likewise.
5439         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
5440         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
5441         * config/bfin/bfin.h: Likewise.
5442         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
5443         argument.
5444         * config/bfin/bfin.c: Likewise.
5445         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
5446         * config/alpha/unicosmk.h: Likewise.
5447         * config/i386/cygming.h: Likewise.
5448         * config/iq2000/iq2000.h: Likewise.
5449         * config/mips/mips.h: Likewise.
5450         * config/mn10300/mn10300.h: Likewise.
5451         * config/rs6000/rs6000.h: Likewise.
5452         * config/score/score.h: Likewise.
5453         * config/spu/spu.h: Likewise.
5454         * config/v850/v850.h: Likewise.
5455         * defaults.h: Likewise.
5456         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
5457         * expr.c (emit_block_move): Adjust use of
5458         OUTGOING_REG_PARM_STACK_SPACE.
5459         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
5460         OUTGOING_REG_PARM_STACK_SPACE.
5461         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
5462
5463 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
5464
5465         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
5466         on OMP_RETURN for OMP_FOR.
5467
5468         PR debug/35896
5469         * dwarf2out.c (dw_expand_expr, common_check): Removed.
5470         (fortran_common): New function.
5471         (gen_variable_die): Call fortran_common instead of common_check,
5472         adjust for it returning tree instead of rtx.  Formatting.
5473
5474 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5475
5476         PR rtl/7335
5477         PR rtl/33826
5478         * see.c (see_copy_insn): Copy new pure const attributes for new call.
5479         * c-decl.c (merge_decls): Ditto.
5480         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
5481         to RTL_CONST_OR_PURE_CALL_P.
5482         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
5483         Initialized DECL_LOOPING_CONST_PURE.
5484         (process_call_operands): Set tree_side_effects properly.
5485         * tree.h (TREE_READONLY_DECL_P): Removed.
5486         (DECL_IS_PURE): Renamed to DECL_PURE_P.
5487         (DECL_LOOPING_OR_CONST_P): New macro.
5488         (struct tree_function_decl): Added looping_const_or_pure_p.
5489         (ECF_*) Renumbered.
5490         (ECF_LOOPING_OR_CONST_P): New macro.
5491         * rtlanal.c (pure_const_p): Removed.
5492         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
5493         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
5494         to RTL_CONST_CALL_P.
5495         * ipa-pure-const.c (pure_const_state_e): Added looping field.
5496         (check_decl, check_tree, check_call, scan_function): Initialize
5497         looping.
5498         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
5499         (static_execute): Set looping true for recursive functions.
5500         Undo setting state to IPA_NEITHER for recursive functions.
5501         * cse.c (cse_insn): 
5502         * ifcvt.c (noce_can_store_speculate_p): Changed
5503         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
5504         RTL_CONST_OR_PURE_CALL_P.
5505         * dse.c (scan_insn): Ditto.
5506         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
5507         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
5508         RTL_CONST_OR_PURE_CALL_P.
5509         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
5510         pure_call_p to RTL_CONST_CALL_P.
5511         * gimplify.c (gimplify_call_expr): Clear side effects for
5512         non-looping pure and constant calls.
5513         * calls.c (emit_call_1): Set rtl flags from ecf flags.
5514         (flags_from_decl_or_type): Set ecf flags from decl flags.
5515         (initialize_argument_information): Turn off
5516         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
5517         Change const to pure if callee_copies is true rather than just
5518         turning off const.
5519         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
5520         way of marking pure calls.
5521         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
5522         Remove hack that was supposed to fix pr7335 and remove old
5523         way of marking pure calls.
5524         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
5525         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
5526         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
5527         RTL_CONST_OR_PURE_CALL_P.
5528         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
5529         * loop-invariant.c (find_exits, find_invariant_bb): Changed
5530         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
5531         * sched-deps.c (schedule_analyze): Ditto.
5532         * rtl.h (struct rtx_def): Use call field, unchanging field, and
5533         return_val field of calls to represent pure and const function info.
5534         (CONST_OR_PURE_CALL_P): Deleted macro.
5535         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5536         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
5537         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
5538         TREE_READONLY.
5539         * tree-optimize.c (execute_fixup_cfg): Added test for
5540         ECF_LOOPING_CONST_OR_PURE.
5541         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
5542         DECL_PURE_P.
5543         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
5544         effects for looping pure or const calls.
5545         (verify_gimple_expr): Added verification code. 
5546         * config/alpha/alpha.c (alpha_legitimize_address,
5547         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
5548         RTL_CONST_CALL_P.
5549         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
5550         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
5551         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
5552         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
5553         RTL_CONST_OR_PURE_CALL_P.
5554         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
5555         and const calls to be deleted.
5556
5557 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5558
5559         PR target/35714
5560         * config/i386/mmx.md (mmx_subv2sf3): New expander.
5561         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
5562         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
5563         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5564         to handle nonimmediate operands.
5565         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
5566         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
5567         to handle nonimmediate operands.
5568         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
5569         (mmx_pmulhrwv4hi3): New expander.  Use
5570         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5571         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
5572         (sse2_umulv1siv1di3): New expander.  Use
5573         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5574         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
5575         (mmx_eq<mode>3): New expander.  Use
5576         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5577         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
5578         (mmx_uavgv8qi3): New expander.  Use
5579         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5580         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
5581         (mmx_uavgv4hi3): New expander.  Use
5582         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5583
5584         * config/i386/sse.md
5585         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
5586         to handle nonimmediate operands.
5587         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
5588         to handle nonimmediate operands.
5589         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
5590         to handle nonimmediate operands.
5591         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
5592         to handle nonimmediate operands.
5593         (sse2_unpckhpd_exp): New expander.  Use
5594         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5595         (sse2_unpcklpd_exp): New expander.  Use
5596         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5597         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
5598         to handle nonimmediate operands.
5599         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
5600         to handle nonimmediate operands.
5601         (*sse2_<plusminus_insn><mode>3): Rename from
5602         sse2_<plusminus_insn><mode>3 insn pattern.
5603         (sse2_<plusminus_insn><mode>3): New expander.  Use
5604         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5605         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
5606         (sse2_umulv2siv2di3): New expander.  Use
5607         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5608         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
5609         (sse4_1_mulv2siv2di3): New expander.  Use
5610         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5611         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
5612         (sse2_pmaddwd): New expander.  Use
5613         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5614         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
5615         (sse2_eq<mode>3): New expander.  Use
5616         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5617         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
5618         (sse4_1_eqv2di3): New expander.  Use
5619         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5620         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5621         (sse2_uavgv16qi3): New expander.  Use
5622         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5623         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5624         (sse2_uavgv16qi3): New expander.  Use
5625         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5626         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
5627         (sse2_uavgv8hi3): New expander.  Use
5628         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5629         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
5630         (ssse3_pmulhrswv8hi3): New expander.  Use
5631         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5632         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
5633         (ssse3_pmulhrswv4hi3): New expander.  Use
5634         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5635
5636         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
5637         (<sse>_vmmul<mode>3): Ditto.
5638         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
5639         (divv2df3): Ditto.
5640         (ssse3_pmaddubsw128): Use register_operand for operand 1.
5641         (ssse3_pmaddubsw): Ditto.
5642
5643         * config/i386/i386.c (struct_builtin_description)
5644         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
5645         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
5646         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
5647         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
5648         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
5649         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
5650         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
5651         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
5652         (ix86_fixup_binary_operands): Assert that src1
5653         and src2 must have the same mode when swapped.
5654         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
5655         and ix86_binary_operator_ok.  Do not force operands in registers
5656         when optimizing.
5657
5658 2008-05-07  Jan Hubicka  <jh@suse.cz>
5659
5660         * cgraph.c (dump_cgraph_node): Update.
5661         * cgraph.h (cgraph_local_info): Break out inline summary.
5662         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
5663         hook.
5664         * ipa-inline (inline_summary): New accestor function.
5665         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
5666         cgraph_decide_inlining, compute_inline_parameters): Update.
5667         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
5668
5669 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5670
5671         Cleanup ColdFire scheduling support and add V4 pipeline model.
5672
5673         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
5674         (define_attr cpu): Add cfv4 value.
5675         (define_attr type, define_attr type1): Merge into a single 'type'
5676         attribute.  Update all uses.
5677         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
5678         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
5679         Update all uses.
5680         (define_attr opx_mem, define_attr opy_mem): Remove.
5681         (define_attr op_mem): Clean up, update comment.
5682         (define_attr size): Use specific values instead of general int.
5683         (define_attr guess, define_attr split): Remove.  Update all uses.
5684         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
5685         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
5686         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
5687         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
5688         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
5689         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
5690         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
5691         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
5692         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
5693         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
5694         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
5695         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
5696         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
5697         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
5698         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
5699         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
5700         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
5701         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
5702         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
5703         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
5704         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
5705         Update or set attributes.
5706         (stack_tie): New fake instruction.
5707
5708         * config/m68k/m68k.h (TUNE_CFV4): New macro.
5709         (m68k_sched_attr_size): Update declaration.
5710         (m68k_sched_attr_type2): Remove.
5711         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
5712         Declare new bypass predicates.
5713
5714         * config/m68k/m68k.c (m68k_sched_issue_rate,
5715         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
5716         implementations.
5717         (TARGET_SCHED_ISSUE_RATE,
5718         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
5719         (override_options): Handle scheduling for ColdFire V4 core.
5720         (m68k_expand_prologue): Emit stack_tie.
5721         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
5722         'OP_TYPE_FPN'.  Update all uses.
5723         (sched_guess_p): Remove.
5724         (sched_address_type): Handle symbolic addresses.
5725         (sched_get_operand): New static function.
5726         (sched_operand_type): Merge into sched_attr_op_type.
5727         (sched_attr_op_type): Handle FP registers, handle quick constants,
5728         update.
5729         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
5730         (m68k_sched_attr_size): Update.  Move logic to ...
5731         (sched_get_attr_size_int): New static function.
5732         (sched_get_opxy_mem_type): New static function.
5733         (m68k_sched_attr_op_mem): Update.
5734         (m68k_sched_attr_type2): Remove.
5735         (sched_cfv4_bypass_data): New static variable.
5736         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
5737         (m68k_sched_issue_rate): Implement scheduler hook.
5738         (struct _sched_ib: enabled_p): New field.
5739         (m68k_sched_variable_issue): Update.  Handle V4.
5740         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
5741         sched_dump_class_func_t, sched_dump_split_class,
5742         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
5743         sched_dump_dfa_class, m68k_sched_dump): Remove.
5744         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
5745         hook.
5746         (m68k_sched_init_global): Remove statisctics dumping, introduce
5747         sanity check that all instructions have pipeline reservations.  Handle
5748         ColdFire V4 core.
5749         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5750         Handle ColdFire V4 core.
5751         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
5752         New static functions.
5753         (m68k_sched_address_bypass_p): New bypass predicate.
5754         (sched_get_indexed_address_scale): New static function.
5755         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
5756
5757         * cf.md: Update comments.
5758         (define_attr type2): Remove.  Use 'type' attribute instead.
5759         Update all uses.
5760         (cf_ib): Rename to cfv123_ib.  Update all uses.
5761         (cf_oep): Rename to cfv123_oep.  Update all uses.
5762         (cf_chr): Rename to cfv123_chr.  Update all uses.
5763         (cf_mem): Rename to cfv123_mem.  Update all uses.
5764         (cf_mac): Move to more appropriate place.
5765         (cfv123_guess): New automaton and cpu_unit.
5766         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
5767         Update uses of 'size' attribute.  Handle before reload scheduling.
5768         (cfv123_guess): New dummy reservation for unhandled instructions.
5769         (cfv4_*): Pipeline description of ColdFire V4 core.
5770         (ignore): New reservation to handle 'ignore' type.
5771
5772 2008-05-07  Ian Lance Taylor  <iant@google.com>
5773
5774         PR middle-end/36013
5775         * gimplify.c (find_single_pointer_decl_1): Don't look through
5776         indirections.
5777         (find_single_pointer_decl): Adjust comments.
5778
5779 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
5780
5781         PR middle-end/36137
5782         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
5783         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
5784
5785         PR middle-end/36106
5786         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
5787         integral type rather than floating point, then VIEW_CONVERT_EXPR
5788         to the floating point type.
5789
5790 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5791
5792         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
5793         TFmode op0 to register.
5794
5795 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
5796
5797         * c-decl.c (grokdeclarator): Comment typo.
5798
5799 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
5800
5801         * tree-flow.h: Remove prototype for computed_goto_p.
5802         * tree-cfg.c (computed_goto_p): Make static.
5803
5804 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5805
5806         PR target/35657
5807         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
5808         (contains_aligned_value_p): This.  Handle _Decimal128.
5809         (ix86_function_arg_boundary): Only align _Decimal128 to its
5810         natural boundary and handle it properly.
5811
5812 2008-05-06  Martin Jambor  <mjambor@suse.cz>
5813
5814         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
5815         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
5816         (ipcp_method_set_orig_node): Removed.
5817         (ipcp_cval_get_cvalue_type): Removed.
5818         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
5819         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
5820         (ipcp_cval_set_cvalue_type): Removed.
5821         (ipcp_cval_get_cvalue): Removed.
5822         (ipcp_cval_set_cvalue): Removed.
5823         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
5824         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
5825         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
5826         (ipcp_cval_meet): Renamed to ipa_lattice_meet
5827         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
5828         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
5829         (ipcp_get_ith_lattice): Changed parameters.
5830         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
5831         (ipcp_lattice_from_jfunc): Changed parameters.
5832         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
5833         (ipcp_method_cval_print): Added temporary variable info.
5834         (ipcp_redirect): Removed already unused local variable caller.
5835         (ipcp_redirect): New temporary variable orig_callee_info
5836         (ipcp_redirect): Removed newly unused local variable callee.
5837         (ipcp_redirect): Removed (a bit confusing) local variable type.
5838         (ipcp_insert_stage): Added local variable info.
5839         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
5840         renamed too
5841         (ipcp_formal_create): Removed.
5842         (ipcp_method_cval_set): Removed.
5843         (ipcp_propagate_stage): Renamed lattice variables.
5844         (ipcp_method_cval_set_cvalue_type): Removed.
5845         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
5846         (ipcp_print_all_lattices): Changed printed strings to refer to 
5847         lattices rather than cvals.
5848         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
5849         (ipcp_propagate_const): Changed formal parameters.
5850         (build_const_val): Changed formal parameters.
5851         (ipcp_insert_stage): Removed useless variable cvalue
5852         (build_const_val): Changed formal parameters.
5853         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
5854         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
5855         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
5856         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
5857         (ipcp_print_func_profile_counts): Changed string from "method" to 
5858         "function"
5859         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
5860         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
5861         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
5862         (ipcp_structures_print): Renamed to ipcp_print_all_structures
5863         (ipcp_profile_print): Renamed to ipcp_print_profile_data
5864         (ipcp_lat_is_const): Changed parameters and made inline.
5865         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
5866         (ipcp_redirect): Renamed to ipcp_need_redirect_p
5867         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
5868         the predicate condition directly
5869         (ipcp_propagate_stage): Added local variable args. Removed local
5870         variable callee.  (Both are mere code simplifications.)
5871         (ipcp_method_dont_insert_const): Renamed to
5872         ipcp_node_not_modifiable_p.
5873         (ipcp_node_not_modifiable_p): Made inline.
5874         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
5875         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
5876         (ipcp_print_all_lattices): Removed variable cvalue
5877         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
5878         Updated comments.
5879
5880 2008-05-06  Olivier Hainque  <hainque@adacore.com>
5881
5882         * tree-sra.c (try_instantiate_multiple_fields): Early return
5883         if field has POINTER_TYPE.
5884
5885 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
5886
5887         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
5888         by using 'q' specifier for instruction.
5889         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
5890
5891 2008-05-06  Anatoly Sokolov <aesok@post.ru>
5892
5893         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5894         Change mode of zero_extract from QImode to HImode.
5895         (sign bit tests peepholes): (Ditto.).
5896
5897 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
5898
5899         * config/i386/mmx.md: Remove double backslashes from asm templates.
5900         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
5901         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5902         to handle nonimmediate operands.
5903         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
5904         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5905         to handle nonimmediate operands.
5906         (*mmx_<code>v2sf3_finite): New insn pattern.
5907         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
5908         (mmx_<code>v2sf3): New expander.  Use
5909         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5910         (mmx_<plusminus_insn><mode>3): New expander.  Use
5911         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5912         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5913         (mmx_add<mode>3): Removed.
5914         (mmx_ssadd<mode>3): Ditto.
5915         (mmx_usadd<mode>3): Ditto.
5916         (mmx_sub<mode>3): Ditto.
5917         (mmx_sssub<mode>3): Ditto.
5918         (mmx_ussub<mode>3): Ditto.
5919         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5920         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5921         to handle nonimmediate operands.
5922         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5923         insn pattern.
5924         (mmx_smulv4hi3_highpart): New expander.  Use
5925         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5926         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5927         insn pattern.
5928         (mmx_umulv4hi3_highpart): New expander.  Use
5929         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5930         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5931         (mmx_<code>v4hi3): New expander.  Use
5932         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5933         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5934         (mmx_<code>v8qi3): New expander.  Use
5935         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5936         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5937         (mmx_<code><mode>3): New expander.  Use
5938         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5939
5940 2008-05-05  Jan Hubicka  <jh@suse.cz>
5941
5942         PR tree-optimization/36118
5943         * passes.c (pass_init_dump_file): Fix dump header.
5944
5945 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5946
5947         PR middle-end/36141
5948         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5949         VCE for function decls.
5950
5951 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5952
5953         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5954
5955 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5956
5957         * config/i386/i386.md (sat_plusminus): New.
5958         (plusminus_insn): Likewise.
5959         (plusminus_mnemonic): Likewise.
5960         (addsub): Removed.
5961         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5962         (*<addsub><mode>3_cc_overflow): Renamed to ...
5963         (*<plusminus_insn><mode>3_cc_overflow): This.
5964         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5965         (*<plusminus_insn>si3_zext_cc_overflow): This.
5966
5967         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5968         (<plusminus_insn><mode>3): This.
5969         (*<addsub><mode>3): Renamed to ...
5970         (*<plusminus_insn><mode>3): This.
5971         (<sse>_vm<addsub><mode>3): Renamed to ...
5972         (<sse>_vm<plusminus_insn><mode>3): This.
5973         (sse3_h<addsub>v4sf3): Renamed to ...
5974         (sse3_h<plusminus_insn>v4sf3): This.
5975         (sse3_h<addsub>v2df3): Renamed to ...
5976         (sse3_h<plusminus_insn>v2df3): This.
5977         (<plusminus_insn><mode>3): New.
5978         (*<plusminus_insn><mode>3): Likewise.
5979         (sse2_<plusminus_insn><mode>3): Likewise.
5980         (add<mode>): Removed.
5981         (*add<mode>3): Likewise.
5982         (sse2_ssadd<mode>3): Likewise.
5983         (sse2_usadd<mode>3): Likewise.
5984         (sub<mode>3): Likewise.
5985         (*sub<mode>3): Likewise.
5986         (sse2_sssub<mode>3): Likewise.
5987         (sse2_ussub<mode>3): Likewise.
5988
5989 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5990
5991         * gthr-single.h: Add in required interface elements as per gthr.h.
5992         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5993         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5994         Generalize UNUSED macro. 
5995         (__gthread_once): Add.
5996         (__gthread_key_create): Add.
5997         (__gthread_key_delete): Add.
5998         (__gthread_getspecific): Add.
5999         (__gthread_setspecific): Add.
6000         
6001 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
6002
6003         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
6004         the same size types for the indirect reference on the rhs, then
6005         create a VCE.
6006
6007 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
6008
6009         * config/i386/i386.md
6010         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
6011         one insn template instead of template series.
6012         (*xordi_1_rex64): Ditto.
6013         (*xordi_2_rex64): Ditto.
6014
6015 2008-05-05  Ira Rosen  <irar@il.ibm.com>
6016
6017         PR tree-optimization/36119
6018         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
6019         in case of SLP.
6020
6021 2008-06-04  Jan Hubicka  <jh@suse.cz>
6022
6023         tree-optimization/36100
6024         * tree-pass.h (pass_O0_always_inline): Declare.
6025         * ipa-inline.c (inline_transform): Remove dead code.
6026         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
6027         pass_O0_always_inline): New.
6028         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
6029
6030 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
6031
6032         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
6033         mnemonic in this_param move for TARGET_64BIT.
6034
6035 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
6036
6037         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
6038         (*strmovsi_rex_1): Ditto.
6039         (*strsetsi_1): Ditto.
6040         (*strsetsi_rex_1): Ditto.
6041
6042         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
6043         adddicc expanders using SWI mode iterator.
6044
6045 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6046
6047         PR target/36121
6048         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
6049         argument handling.
6050
6051 2008-05-04  David S. Miller  <davem@davemloft.net>
6052
6053         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
6054         (sparc*-*-linux*): Use linux.h in tm_file.
6055         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
6056         compiler defaulting to 32-bit.
6057         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
6058         no longer needed.
6059         * config/sparc/linux.h: Remove definitions now obtained
6060         properly from linux.h
6061         * config/sparc/linux64.h: Likewise.
6062         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
6063         don't want this setting for 32-bit builds in a biarch compiler.
6064         * doc/install.texi: Add sparc-linux to list of targets
6065         supporting --enable-targets=all.
6066
6067 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
6068
6069         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
6070
6071 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
6072
6073         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
6074         after V4SI_FTYPE_V8HI.
6075         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
6076         case V4SI_FTYPE_V2DF.
6077
6078 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
6079
6080         * doc/invoke.texi (max-flow-memory-locations): Removed.
6081         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
6082         
6083 2008-05-03  Richard Guenther  <rguenther@suse.de>
6084
6085         PR middle-end/34973
6086         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
6087
6088 2008-05-02  David S. Miller  <davem@davemloft.net>
6089
6090         * config.gcc (need_64bit_hwint): Document libcpp dependency.
6091
6092 2008-05-02  Simon Baldwin <simonb@google.com>
6093
6094         PR bootstrap/36108
6095         * c-common.h (warn_array_subscript_range): Removed.
6096         * c-common.c (warn_array_subscript_range): Ditto.
6097         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
6098         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
6099
6100 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
6101
6102         * config/i386/i386.c (ix86_special_builtin_type): New.
6103         (bdesc_special_args): Likewise.
6104         (ix86_expand_special_args_builtin): Likewise.
6105         (ix86_init_mmx_sse_builtins): Updated.
6106         (ix86_expand_builtin): Updated.
6107         (ix86_expand_store_builtin): Removed.
6108         (ix86_expand_unop_builtin): Likewise.
6109
6110         * config/i386/mm3dnow.h (__v2sf): Moved to ...
6111         * config/i386/mmintrin.h (__v2sf): Here.
6112
6113         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
6114         const __v2sf.
6115         (_mm_loadl_pi): Likewise.
6116         (_mm_storeh_pi): Replace __v2si with __v2sf.
6117         (_mm_storel_pi): Likewise.
6118
6119         * doc/extend.texi: Correct __builtin_ia32_loadhps,
6120         __builtin_ia32_loadlps, __builtin_ia32_storehps,
6121         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
6122         __builtin_ia32_loadlpd.
6123
6124 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
6125
6126         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
6127         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
6128         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
6129         (ix86_init_mmx_sse_builtins): Updated.
6130         (ix86_expand_args_builtin): Likewise.
6131         (ix86_expand_builtin): Likewise.
6132         (ix86_expand_unop1_builtin): Renamed to ...
6133         (ix86_expand_unop_vec_merge_builtin): This.
6134
6135 2008-05-01  Jan Hubicka  <jh@suse.cz>
6136
6137         PR bootstrap/36100
6138         * ipa-inline.c (inline_generate_summary): Make static.
6139         (inline_transform): Do not call inlining at -O0; make static.
6140         * passes.c (execute_todo): Add sanity check.
6141         (execute_one_ipa_transform_pass): Execute proper flags.
6142
6143 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
6144
6145         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
6146         (DECL_NONADDRESSABLE_P): Likewise.
6147         * alias.c (record_component_aliases): Fix comment.
6148
6149 2008-05-01  Simon Baldwin <simonb@google.com>
6150
6151         * c-common.h (warn_array_subscript_range): New function.
6152         * c-common.c (warn_array_subscript_range): Ditto.
6153         * tree-vrp.c (check_array_ref): Corrected code to agree with
6154         comment, ignoring only arrays of size 0 or size 1.
6155         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
6156
6157 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6158
6159         * config/i386/i386.c (ix86_builtin_type): Replace
6160         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
6161         (bdesc_args): Updated.
6162         (ix86_init_mmx_sse_builtins): Likewise.
6163         (ix86_expand_args_builtin): Likewise.
6164
6165         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
6166         with __v1di.
6167
6168         * doc/extend.texi: Correct __builtin_ia32_palignr.
6169
6170 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6171
6172         PR target/36095
6173         * config/i386/i386.c (bdesc_crc32): Removed.
6174         (ix86_expand_crc32): Likewise.
6175         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
6176         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
6177         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
6178         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
6179         UINT_FTYPE_UINT_UCHAR.
6180         (bdesc_args): Updated. Add crc32 builtins.
6181         (ix86_init_mmx_sse_builtins): Updated.
6182         (ix86_expand_args_builtin): Updated to support subreg.
6183
6184         * doc/extend.texi: Correct __builtin_ia32_crc32di.
6185
6186 2008-05-01  Jan Hubicka  <jh@suse.cz>
6187
6188         * tree-pass.h (opt_pass): Add IPA_PASS.
6189         (varpool_node, cgraph_node): Forward declare.
6190         (ipa_opt_pass): Define.
6191         (pass_ipa_inline): Turn into ipa_opt_pass.
6192         (pass_apply_inline): Remove.
6193         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
6194         (apply_inline): Turn into ....
6195         (inline_transform): ... this one.
6196         (inline_generate_summary): New function.
6197         (pass_apply_inline): Remove.
6198         * function.h (ipa_opt_pass): Forward declare structure; typedef;
6199         vector.
6200         (struct function): Add ipa_transforms_to_apply.
6201         * passes.c (register_one_dump_file): Work on IPA_PASS.
6202         (init_optimization_passes): Remove pass_inline_parameters and
6203         pass_apply_inline.
6204         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
6205         (execute_one_pass) ... here; apply transforms when possible.
6206         (add_ipa_transform_pass, execute_ipa_summary_asses,
6207         execute_one_ipa_transform_pass): New.
6208         (execute_ipa_pass_list): Update for IPA_PASS type.
6209
6210 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6211
6212         * config/i386/i386.c (ix86_builtin_type): Add
6213         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
6214         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
6215         (bdesc_args): Add SSE4a builtins.
6216         (ix86_init_mmx_sse_builtins): Updated.
6217         (ix86_expand_args_builtin): Likewise.
6218         (ix86_expand_builtin): Likewise.
6219
6220 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6221
6222         * config/i386/i386.c (ix86_builtin_type): Add
6223         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
6224         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
6225         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
6226         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
6227         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
6228         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
6229         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
6230         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
6231         and DI_FTYPE_DI_DI_INT.
6232         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
6233         (ix86_init_mmx_sse_builtins): Updated.
6234         (ix86_expand_args_builtin): Likewise.
6235         (ix86_expand_builtin): Likewise.
6236         (ix86_expand_binop_imm_builtin): Removed.
6237
6238         * doc/extend.texi: Correct __builtin_ia32_palignr128.
6239
6240 2008-04-30  Richard Guenther  <rguenther@suse.de>
6241
6242         PR tree-optimization/32921
6243         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
6244
6245 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6246
6247         * config/arm/arm.c (arm_unwind_emit): Use
6248         crtl->all_throwers_are_sibcalls instead of
6249         cfun->all_throwers_are_sibcalls.
6250         (arm_output_fn_unwind): Likewise.
6251         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
6252         instead of cfun->uses_pic_offset_table.
6253         (frv_expand_prologue): Likewise.
6254         (frv_frame_pointer_required): Likewise.
6255         (frv_expand_fdpic_call): Likewise.
6256         (frv_emit_movsi): Likewise.
6257         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
6258         cfun->returns_pcc_struct instead of
6259         current_function_returns_pcc_struct.
6260         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
6261         instead of cfun->calls_eh_return.
6262         (m32c_pushm_popm): Likewise.
6263         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
6264         "extern" declaration.
6265
6266 2008-04-30  Richard Guenther  <rguenther@suse.de>
6267
6268         PR tree-optimization/21636
6269         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
6270         constant address.
6271         (evaluate_stmt): Print the likely value.
6272         (ccp_visit_stmt): Avoid excessive vertical spacing.
6273
6274 2008-04-30  Rafael Espindola  <espindola@google.com>
6275
6276         * builtins.c (fold_call_expr): Return realret.
6277         * tree-ssa-threadedge.c
6278         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
6279         __builtin_object_size.
6280
6281 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
6282
6283         * gcc.c (wrapper_string): New variable.
6284         (insert_wrapper): New function.
6285         (execute): New option -wrapper.
6286         * doc/invoke.texi (Overall Options): New driver option -wrapper.
6287
6288 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
6289
6290         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
6291         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
6292         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
6293         from...
6294         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
6295         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
6296         config/rs6000/e500crtres64gprctr.asm,
6297         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
6298         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
6299         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
6300         config/rs6000/e500crtsav64gprctr.asm,
6301         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
6302         config/rs6000/e500crtsavg64gprctr.asm: New files.
6303         * config/rs6000/t-ppccomm: Add build rules for new files.
6304         (LIB2FUNCS_STATIC_EXTRA): Add new files.
6305         * config/rs6000/t-netbsd: Add build rules for new files.
6306         (LIB2FUNCS_STATIC_EXTRA): New variable.
6307         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
6308         (CRTSAVRES_DEFAULT_SPEC): Likewise.
6309         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
6310
6311 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
6312
6313         * config/i386/i386.c (ix86_builtin_type): Add
6314         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
6315         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
6316         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
6317         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
6318         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
6319         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
6320         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
6321         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
6322         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
6323         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
6324         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
6325         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
6326         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
6327         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
6328         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
6329         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
6330         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
6331         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
6332         V1DI_FTYPE_V2SI_V2SI.
6333         (bdesc_2arg): Moved to ...
6334         (bdesc_args): Here.
6335         (ix86_init_mmx_sse_builtins): Updated.
6336         (ix86_expand_args_builtin): Updated.  Take a pointer
6337         to const struct builtin_description.  Handle comparison
6338         builtin functions.
6339         (ix86_expand_sse_compare): Take a new argument for swapping operands.
6340         (ix86_expand_builtin): Updated.
6341
6342         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
6343         (ssse3_pmaddubsw128): This.
6344         (ssse3_pmaddubswv4hi3): Renamed to ...
6345         (ssse3_pmaddubsw): This.
6346
6347         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
6348         (__builtin_ia32_packssdw128): Likewise.
6349         (__builtin_ia32_packuswb128): Likewise.
6350         (__builtin_ia32_pmaddubsw): Likewise.
6351         (__builtin_ia32_pmaddubsw128): Likewise.
6352
6353 2008-04-30  Richard Guenther  <rguenther@suse.de>
6354
6355         PR tree-optimization/14847
6356         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
6357         (recognize_bits_test): Use it.
6358         (recognize_single_bit_test): Likewise.
6359
6360 2008-04-30  Martin Jambor  <mjambor@suse.cz>
6361
6362         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
6363         instead of setting number of formal parameters to zero.
6364         (ipcp_init_stage): Do not set the number of actual parameters to zero 
6365         either.
6366         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
6367         which are called with variable number of arguments.
6368         (ipcp_insert_stage): Explicitely skipping all nodes which are
6369         called with variable number of arguments.
6370         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
6371         number of parameters.
6372
6373         * ipa-prop.h (struct ipa_node_params): Added flag
6374         called_with_var_arguments
6375         (ipa_set_param_count): Added.  Changed sole setter to use it.
6376         (ipa_get_param_count): Added.  All readers of param_count
6377         converted to use it instead.
6378         (ipa_set_called_with_variable_arg): Added.
6379         (ipa_is_called_with_var_arguments): Added.
6380         (ipa_get_ith_param): Added.  All readers of param_decls converted
6381         to use it instead.
6382         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
6383         changed to use it. 
6384         (ipa_get_cs_argument_count): Added, all readers of argument_count
6385         changed to cal it.
6386         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
6387         to use it.
6388         
6389         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
6390         (struct ipcp_lattice): Renamed cval_type to type
6391         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
6392
6393         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
6394         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
6395         (ipcp_insert_stage): Changed the type of variable cvalue to tree
6396         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
6397         (build_const_val): Changed the type of parameter cvalue to tree
6398         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
6399         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
6400         
6401         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
6402         constant 
6403
6404         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
6405         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
6406         (ipa_add_method): Renamed to ipa_push_func_to_list
6407         (ipa_remove_method): Renamed to ipa_pop_func_from_list
6408         (ipa_callsite_param_count): Removed.
6409         (ipa_callsite_param_count_set): Removed.
6410         (ipa_callsite_param): Removed.
6411         (ipa_callsite_callee): Removed.
6412         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
6413         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
6414         (ipa_method_formal_count): Removed.
6415         (ipa_method_formal_count_set): Removed.
6416         (ipa_method_get_tree): Removed.
6417         (ipa_method_tree_map_create): Removed.
6418         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
6419         (ipa_create_param_decls_array): Creates the array itself
6420         (ipa_create_param_decls_array): Temporary variable info instead of 
6421         a few dereferences.
6422         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
6423         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
6424         (get_type): Removed.
6425         (ipa_jf_get_info_type): Removed.
6426         (ipa_node_create): Renamed to ipa_create_node_params
6427         (ipa_free): Renamed to ipa_free_all_node_params
6428         (ipa_nodes_create): Renamed to ipa_create_all_node_params
6429         (ipa_edges_create): Renamed to ipa_create_all_edge_args
6430         (ipa_edges_free): Renamed to ipa_free_all_edge_args
6431         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
6432         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
6433         ipa_free_all_edge_args
6434         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
6435         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
6436         (ipa_create_methodlist_node): Removed.
6437         (ipa_methodlist_method): Removed.
6438         (ipa_methodlist_method_set): Removed.
6439         (ipa_methodlist_next_method): Removed.
6440         (ipa_methodlist_next_method_set): Removed.
6441         (ipa_method_is_modified): Removed.
6442         (ipa_method_modify_create): Removed.
6443         (ipa_method_modify_init): Temporary variable info instead of a few 
6444         dereferences.
6445         (ipa_detect_param_modifications): Temporary variable info instead of 
6446         a few dereferences.
6447         (ipa_compute_jump_functions): Temporary variable info instead of 
6448         a few dereferences.
6449         (ipa_method_modify_set): Removed.
6450         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
6451         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
6452         than craph_node as the first parameter.
6453         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
6454         (ipa_method_modify_init): Removed.
6455         (ipa_compute_jump_functions): Added a temp variable instead of 
6456         repeatadly dereferencing the cgraph_edge.aux pointer
6457         (ipa_callsite_param_set_type): Removed.
6458         (ipa_compute_jump_functions): i renamed to index and moved to 
6459         an inner block
6460         (ipa_callsite_param_set_info_type_formal): Removed.
6461         (ipa_callsite_param_set_info_type): Removed.
6462         (ipa_callsite_param_map_create): Removed.
6463         (ipa_callsite_tree): Removed.
6464         (ipa_callsite_caller): Removed.
6465         (ipa_pop_func_from_list): return_method removed to return_func
6466
6467         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
6468         prefixed all values with IPA_. Changed all users.
6469         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
6470         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
6471         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
6472         (union parameter_info): Renamed to jump_func_value.
6473         (union jump_func_value): Renamed value to constant
6474         (struct ipa_jump_func): Renamed info_type to value
6475         (struct ipa_node): Renamed to ipa_node_params
6476         (struct ipa_node_params): Renamed ipa_arg_num to param_count
6477         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
6478         (struct ipa_node_params): Renamed ipa_mod to modified_flags
6479         (struct ipa_edge): Renamed to ipa_edge_args
6480         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
6481         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
6482         (struct ipa_methodlist): Renamed to ipa_func_list
6483         (struct ipa_func_list): method_p renamed to node, next_method
6484         renamed to next
6485         (ipa_methodlist_p): Removed, switched all users to struct pointer
6486         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
6487
6488 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
6489
6490         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
6491         (rs6000_emit_epilogue): Use backchain to restore only when we
6492         have a large frame.  Make use of frame pointer to restore if we
6493         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
6494
6495 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
6496
6497         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
6498         Add mode to zero_extract.
6499         (sign bit tests peepholes): (Ditto.).
6500
6501 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6502
6503         * config/i386/i386.c (ix86_builtins): Replace Prescott New
6504         Instructions in comments with SSE3.
6505         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
6506         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
6507         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
6508         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
6509         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
6510         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
6511         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
6512         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
6513         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
6514         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
6515         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
6516         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
6517         (bdesc_sse_args): Renamed to ...
6518         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
6519         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
6520         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
6521         IX86_BUILTIN_FABSQ.
6522         (bdesc_1arg): Moved to ...
6523         (bdesc_args): Here.
6524         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
6525         Instructions in comments with SSE3.
6526         (ix86_expand_sse_operands_builtin): Renamed to ...
6527         (ix86_expand_args_builtin): This.  Updated.
6528         (ix86_expand_unop1_builtin): Update comments.
6529         (ix86_expand_builtin): Updated.
6530
6531 2008-04-29  Richard Guenther  <rguenther@suse.de>
6532
6533         PR tree-optimization/36078
6534         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
6535         Update virtual SSA form after cleaning up the CFG.
6536
6537 2008-04-29  Richard Guenther  <rguenther@suse.de>
6538
6539         PR middle-end/15255
6540         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
6541
6542 2008-04-29  Richard Guenther  <rguenther@suse.de>
6543
6544         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
6545         (compute_may_aliases): Do not call finalize_ref_all_pointers.
6546         (compute_flow_insensitive_aliasing): Do not treat
6547         PTR_IS_REF_ALL pointers special.
6548         (get_smt_for): Likewise.
6549         (may_alias_p): Re-structure.
6550         (is_escape_site): A ref-all pointer conversion is not an escape site.
6551         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
6552         PTR_IS_REF_ALL pointers special.
6553         * tree-ssa-structalias.h (struct alias_info): Remove
6554         ref_all_symbol_mem_tag field.
6555         (PTR_IS_REF_ALL): Remove.
6556
6557 2008-04-29  Richard Guenther  <rguenther@suse.de>
6558
6559         PR middle-end/36077
6560         * fold-const.c (extract_muldiv_1): In combining division constants
6561         make sure to never overflow.
6562
6563 2008-04-29  Nick Clifton  <nickc@redhat.com>
6564
6565         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
6566
6567 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6568
6569         PR bootstrap/35169
6570         * optc-gen.awk: Work around HP-UX/IA awk bug.
6571
6572 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
6573
6574         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
6575         2008-04-25 commit.
6576
6577 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6578
6579         PR target/36073
6580         * config/i386/i386.md
6581         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
6582         Change operand 1 predicate to nonimmediate_operand.
6583
6584 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
6585
6586         PR debug/36060
6587         * dwarf2out.c (struct die_struct): Mark as chain_circular through
6588         die_sub field.
6589         * gengtype.c (walk_type, write_func_for_structure): Handle
6590         chain_circular.
6591         * doc/gty.texi: Document chain_circular.
6592
6593 2008-04-28  Richard Guenther  <rguenther@suse.de>
6594
6595         PR tree-optimization/36066
6596         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
6597         SCEV and loop.
6598
6599 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6600
6601         PR target/36064
6602         * config/i386/i386.md
6603         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
6604         Use match_scratch instead of match_operand for operands 3 and 4.
6605
6606 2008-04-27  Richard Guenther  <rguenther@suse.de>
6607
6608         PR tree-optimization/18754
6609         PR tree-optimization/34223
6610         * tree-pass.h (pass_complete_unrolli): Declare.
6611         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
6612         loop size before and after unconditionally of UL_NO_GROWTH in effect.
6613         Rewrite loop into loop closed SSA form if it is not already.
6614         (tree_unroll_loops_completely): Re-structure to iterate over
6615         innermost loops with intermediate CFG cleanups.
6616         Unroll outermost loops only if requested or the code does not grow
6617         doing so.
6618         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
6619         loops are available.
6620         (tree_vectorize): Instead do so here.
6621         (tree_complete_unroll): Also unroll outermost loops.
6622         (tree_complete_unroll_inner): New function.
6623         (gate_tree_complete_unroll_inner): Likewise.
6624         (pass_complete_unrolli): New pass.
6625         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
6626         uses outside of the loop.
6627         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
6628         form if it is available.  
6629         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
6630         * passes.c (init_optimization_passes): Schedule complete inner
6631         loop unrolling pass before the first CCP pass after final inlining.
6632
6633 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6634
6635         * targhooks.h (default_emutls_var_fields,
6636         default_emutls_var_init): Declare.
6637         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
6638         * target.h (struct gcc_target): Add struct emutls member.
6639         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
6640         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
6641         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
6642         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
6643         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
6644         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
6645         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
6646         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
6647         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
6648         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
6649         emit debug information.
6650         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
6651         * varasm.c: Include targhooks.h.
6652         (emutls_object_section, emutls_tmpl_section): New.
6653         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
6654         (EMUTLS_SEPARATOR): New.
6655         (prefix_name): New.
6656         (get_emutls_object_name): New.
6657         (default_emutls_var_fields): New, broken out of ...
6658         (get_emutls_object_type): ... here.  Adjust to use target hooks.
6659         (get_emutls_init_templ_addr): Adjust to use target hooks.
6660         (emutls_decl): Adjust to use target hooks.
6661         (emutls_finish): Likewise.
6662         (default_emutls_var_init): New, broken out of ...
6663         (assemble_variable): ... here.  Adjust to use target hooks.
6664         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
6665         SECCAT_EMUTLS_TMPL.
6666         * c-common.c (handle_section_attribute): Prevent overriding
6667         sections for emulated tls with special sections.
6668         * config/i386/i386.c (x86_64_elf_select_section): Add
6669         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
6670         (x86_64_elf_unique_section): Likewise.
6671         * config/vxworks.c: Include tree.h.
6672         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
6673         (vxworks_override_options): Set TLS scheme.
6674         * doc/tm.texi (Emulated TLS): New node.
6675
6676 2008-04-26  Simon Baldwin <simonb@google.com>
6677
6678         PR c/35652
6679         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
6680         with propagated string constants.
6681
6682 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
6683
6684         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
6685         constraint for operand 2 when operand 0 is memory operand.
6686         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
6687         operand 0 is memory operand.
6688         (fix_trunc<mode>_i387_with_temp): Ditto.
6689         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
6690         operand 2 when operand 1 is memory operand.
6691         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
6692         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
6693         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
6694         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6695         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
6696         operands 2,3 and 4 when operand 1 is memory operand.
6697         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
6698         is memory operand.
6699         (fistdi2_floor_with_temp): Ditto.
6700         (fist<mode>2_floor_with_temp): Ditto.
6701         (fistdi2_ceil_with_temp): Ditto.
6702         (fist<mode>2_ceil_with_temp): Ditto.
6703         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
6704
6705 2008-04-26  David Daney  <ddaney@avtrex.com>
6706
6707         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
6708         unspec_volitile.
6709         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
6710         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6711         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6712         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
6713         (compare_and_swap_12): New insn.
6714         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
6715         * config/mips/mips.c (mips_force_binary): New function.
6716         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
6717         (mips_expand_compare_and_swap_12): New function.
6718         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
6719
6720 2008-04-25  Jan Hubicka  <jh@suse.cz>
6721
6722         PR testsuite/35843
6723         * cfgexpand.c (pass_expand): Turn into RTL pass.
6724         * passes.c (execute_one_pass): Do pass typechecking after execution.
6725         * tree-pass.h (pass_expand): Turn into RTL pass.
6726
6727         * function.h (struct rtl_data): Move here fields
6728         accesses_prior_frames, calls_eh_return, saves_all_registers,
6729         has_nonlocal_goto, has_asm_statement, is_thunk,
6730         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
6731         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
6732         arg_pointer_save_area_init from struct function; turn into bool.
6733         (struct function): Move
6734         calls_eh_return, saves_all_registers, has_nonlocal_goto,
6735         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
6736         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
6737         tail_call_emit, arg_pointer_save_area_init
6738         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
6739         (current_function_returns_struct, current_function_returns_pcc_struct,
6740         current_function_calls_setjmp, current_function_calls_alloca,
6741         current_function_accesses_prior_frames,
6742         current_function_calls_eh_return, current_function_is_thunk,
6743         current_function_stdarg, current_function_profile,
6744         current_function_limit_stack, current_function_uses_pic_offset_table,
6745         current_function_uses_const_pool, current_function_has_nonlocal_label,
6746         current_function_saves_all_registers,
6747         current_function_has_nonlocal_goto,
6748         current_function_has_asm_statement): Remove accesor macros.
6749         * ra-conflict.c (global_conflicts): Update.
6750         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
6751         (suitable_for_tail_call_opt_p): Update.
6752         * builtins.c (expand_builtin_return_addr): Update.
6753         (expand_builtin_setjmp_setup): Update.
6754         (expand_builtin_nonlocal_goto): Update.
6755         * final.c (final_start_function): Update.
6756         (profile_function): Update.
6757         (leaf_function_p): Update.
6758         (only_leaf_regs_used): Update.
6759         * df-scan.c (df_get_exit_block_use_set): Update.
6760         * dojump.c (clear_pending_stack_adjust): Update.
6761         * tree-stdarg.c (gate_optimize_stdarg): Update.
6762         * gimple-low.c (lower_function_body): Update.
6763         * global.c (compute_regsets): Update.
6764         (global_alloc): Update.
6765         * dwarf2out.c (dwarf2out_begin_prologue): Update.
6766         * expr.c (expand_assignment): Update.
6767         * dse.c (dse_step0): Update.
6768         (dse_step1): Update.
6769         * c-decl.c (store_parm_decls): Update.
6770         * local-alloc.c (combine_regs): Update.
6771         (find_free_reg): Update.
6772         * function.c (assign_parms_augmented_arg_list): Update.
6773         (assign_parm_find_data_types): Update.
6774         (assign_parms): Update.
6775         (allocate_struct_function): Update.
6776         (expand_function_start): Update.
6777         (expand_function_end): Update.
6778         (get_arg_pointer_save_area): Update.
6779         (thread_prologue_and_epilogue_insns): Update.
6780         (rest_of_match_asm_constraints): Update.
6781         * stor-layout.c (variable_size): Update.
6782         * gcse.c (gcse_main): Update.
6783         (bypass_jumps): Update.
6784         * gimplify.c (gimplify_function_tree): Update.
6785         * calls.c (emit_call_1): Update.
6786         (expand_call): Update.
6787         * bt-load.c (compute_defs_uses_and_gen): Update.
6788         * except.c (sjlj_assign_call_site_values): Update.
6789         (sjlj_emit_function_enter): Update.
6790         (can_throw_external): Update.
6791         (set_nothrow_function_flags): Update.
6792         (expand_builtin_unwind_init): Update.
6793         (expand_eh_return): Update.
6794         (convert_to_eh_region_ranges): Update.
6795         (output_function_exception_table): Update.
6796         * emit-rtl.c (gen_tmp_stack_mem): Update.
6797         * cfgexpand.c (expand_used_vars): Update.
6798         (tree_expand_cfg): Update.
6799         * cfgcleanup.c (rest_of_handle_jump): Update.
6800         * explow.c (allocate_dynamic_stack_space): Update.
6801         * varasm.c (assemble_start_function): Update.
6802         (force_const_mem): Update.
6803         (mark_constant_pool): Update.
6804         * tree-optimize.c (tree_rest_of_compilation): Update.
6805         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
6806         * tree-cfg.c (notice_special_calls): Update.
6807         (is_ctrl_altering_stmt): Update.
6808         (tree_can_make_abnormal_goto): Update.
6809         (tree_purge_dead_abnormal_call_edges): Update.
6810         * config/alpha/predicates.md: Update.
6811         * config/alpha/alpha.c (alpha_sa_mask): Update.
6812         (alpha_sa_size): Update.
6813         (alpha_does_function_need_gp): Update.
6814         (alpha_expand_prologue): Update.
6815         (alpha_start_function): Update.
6816         (alpha_output_function_end_prologue): Update.
6817         (alpha_expand_epilogue): Update.
6818         * config/frv/frv.c (frv_stack_info): Update.
6819         (frv_expand_epilogue): Update.
6820         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
6821         (s390_register_info): Update.
6822         (s390_frame_info): Update.
6823         (s390_init_frame_layout): Update.
6824         (s390_can_eliminate): Update.
6825         (save_gprs): Update.
6826         * config/spu/spu.c (spu_split_immediate): Update.
6827         (need_to_save_reg): Update.
6828         (spu_expand_prologue): Update.
6829         (spu_expand_epilogue): Update.
6830         * config/sparc/sparc.md: Update.
6831         * config/sparc/sparc.c (eligible_for_return_delay): Update.
6832         (sparc_tls_got): Update.
6833         (legitimize_pic_address): Update.
6834         (sparc_emit_call_insn): Update.
6835         (sparc_expand_prologue): Update.
6836         (output_return): Update.
6837         (print_operand): Update.
6838         (sparc_function_ok_for_sibcall): Update.
6839         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
6840         * config/m32r/m32r.md: Update.
6841         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
6842         (m32r_compute_frame_size): Update.
6843         (m32r_expand_prologue): Update.
6844         (m32r_expand_epilogue): Update.
6845         (m32r_legitimize_pic_address): Update.
6846         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
6847         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6848         * config/i386/i386.c (ix86_frame_pointer_required): Update.
6849         (gen_push): Update.
6850         (ix86_save_reg): Update.
6851         (ix86_compute_frame_layout): Update.
6852         (ix86_expand_prologue): Update.
6853         (ix86_expand_epilogue): Update.
6854         * config/sh/sh.c (output_stack_adjust): Update.
6855         (calc_live_regs): Update.
6856         (sh5_schedule_saves): Update.
6857         (sh_expand_prologue): Update.
6858         (sh_expand_epilogue): Update.
6859         (sh_setup_incoming_varargs): Update.
6860         (sh_allocate_initial_value): Update.
6861         (sh_get_pr_initial_val): Update.
6862         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
6863         * config/sh/sh.md (label:): Update.
6864         * config/avr/avr.c (out_movhi_mr_r): Update.
6865         * config/crx/crx.h (enum): Update.
6866         * config/xtensa/xtensa.h (along): Update.
6867         * config/stormy16/stormy16.c Update.
6868         (xstormy16_compute_stack_layout): Update.
6869         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
6870         (fr30_expand_prologue): Update.
6871         * config/cris/cris.c (cris_conditional_register_usage): Update.
6872         (cris_reg_saved_in_regsave_area): Update.
6873         (cris_initial_frame_pointer_offset): Update.
6874         (cris_simple_epilogue): Update.
6875         (cris_expand_prologue): Update.
6876         (cris_expand_epilogue): Update.
6877         (cris_expand_pic_call_address): Update.
6878         (cris_asm_output_symbol_ref): Update.
6879         (cris_asm_output_label_ref): Update.
6880         * config/cris/cris.md Update.
6881         * config/iq2000/iq2000.c (compute_frame_size): Update.
6882         (iq2000_expand_epilogue): Update.
6883         * config/mt/mt.h (save_direction): Update.
6884         * config/mn10300/mn10300.c (mn10300_function_value): Update.
6885         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6886         (ia64_secondary_reload_class): Update.
6887         * config/m68k/m68k.c (m68k_save_reg): Update.
6888         (m68k_expand_prologue): Update.
6889         (m68k_expand_epilogue): Update.
6890         (legitimize_pic_address): Update.
6891         * config/rs6000/rs6000.c (rs6000_got_register): Update.
6892         (first_reg_to_save): Update.
6893         (first_altivec_reg_to_save): Update.
6894         (compute_vrsave_mask): Update.
6895         (compute_save_world_info): Update.
6896         (rs6000_stack_info): Update.
6897         (spe_func_has_64bit_regs_p): Update.
6898         (rs6000_ra_ever_killed): Update.
6899         (rs6000_emit_eh_reg_restore): Update.
6900         (rs6000_emit_allocate_stack): Update.
6901         (rs6000_emit_prologue): Update.
6902         (rs6000_emit_epilogue): Update.
6903         (rs6000_output_function_epilogue): Update.
6904         (output_profile_hook): Update.
6905         (rs6000_elf_declare_function_name): Update.
6906         * config/rs6000/rs6000.h (rs6000_args): Update.
6907         * config/rs6000/rs6000.md: Update.
6908         * config/mcore/mcore.c (mcore_expand_prolog): Update.
6909         * config/arc/arc.c (arc_output_function_epilogue): Update.
6910         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
6911         * config/darwin.c (machopic_function_base_name): Update.
6912         * config/score/score3.c (score3_compute_frame_size): Update.
6913         (rpush): Update.
6914         (rpop): Update.
6915         (score3_epilogue): Update.
6916         * config/score/score7.c (score7_compute_frame_size): Update.
6917         (score7_prologue): Update.
6918         (score7_epilogue): Update.
6919         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6920         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6921         * config/arm/arm.c (use_return_insn): Update.
6922         (require_pic_register): Update.
6923         (arm_load_pic_register): Update.
6924         (arm_compute_save_reg0_reg12_mask): Update.
6925         (arm_compute_save_reg_mask): Update.
6926         (thumb1_compute_save_reg_mask): Update.
6927         (output_return_instruction): Update.
6928         (arm_output_function_prologue): Update.
6929         (arm_output_epilogue): Update.
6930         (arm_get_frame_offsets): Update.
6931         (arm_expand_prologue): Update.
6932         (thumb_pushpop): Update.
6933         (thumb_exit): Update.
6934         (thumb1_expand_prologue): Update.
6935         (thumb1_expand_epilogue): Update.
6936         (arm_unwind_emit): Update.
6937         (arm_output_fn_unwind): Update.
6938         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6939         * config/arm/arm.md: Update.
6940         * config/pa/pa.md: Update.
6941         * config/pa/pa.c (legitimize_pic_address): Update.
6942         (compute_frame_size): Update.
6943         (hppa_expand_prologue): Update.
6944         (hppa_expand_epilogue): Update.
6945         (borx_reg_operand): Update.
6946         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6947         (HARD_REGNO_RENAME_OK): Update.
6948         * config/mips/mips.c (mips_global_pointer): Update.
6949         (mips_save_reg_p): Update.
6950         (mips_compute_frame_info): Update.
6951         (mips_frame_pointer_required): Update.
6952         (mips_expand_prologue): Update.
6953         (mips_expand_epilogue): Update.
6954         (mips_can_use_return_insn): Update.
6955         (mips_reorg_process_insns): Update.
6956         * config/v850/v850.c (compute_register_save_size): Update.
6957         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6958         * config/mmix/mmix.c (along): Update.
6959         (mmix_expand_epilogue): Update.
6960         * config/bfin/bfin.c (legitimize_pic_address): Update.
6961         (must_save_p): Update.
6962         (stack_frame_needed_p): Update.
6963         (add_to_reg): Update.
6964         (bfin_expand_prologue): Update.
6965         * stmt.c (expand_asm_operands): Update.
6966         * reload1.c (reload): Update.
6967         (init_elim_table): Update.
6968
6969 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6970         
6971         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6972         
6973 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6974
6975         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6976         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6977         (mov<mode>): Removed.
6978         (*movv4sf_internal): Likewise.
6979         (*movv2df_internal): Likewise.
6980
6981 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6982
6983         * config.gcc (crx-*-elf): Remove deprecation.
6984
6985 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6986
6987         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6988         __gcc_deregister_frame with atexit.
6989         (deregister_frame_dtor): Remove.
6990
6991 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6992             Nathan Sidwell  <nathan@codesourcery.com>
6993
6994         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6995         (misel): Likewise.
6996         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6997         (rs6000_isel): Likewise.
6998         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6999         (rs6000_isel): New variable.
7000         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
7001
7002 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
7003
7004         PR c++/35758
7005         * c-common.c (handle_vector_size_attribute): Call
7006         lang_hooks.types.reconstruct_complex_type instead of
7007         reconstruct_complex_type.
7008         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
7009         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
7010         * langhooks.h (struct lang_hooks_for_types): Add
7011         reconstruct_complex_type hook.
7012         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
7013         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
7014
7015 2008-04-24  Richard Guenther  <rguenther@suse.de>
7016
7017         * c-common.h (check_builtin_function_arguments): Declare.
7018         * c-common.c (validate_nargs): New function.
7019         (check_builtin_function_arguments): Likewise.
7020         * c-typeck.c (build_function_call): Call
7021         check_builtin_function_arguments.
7022         * builtins.c (fold_builtin_classify): Remove error reporting code.
7023         (fold_builtin_unordered_cmp): Likewise.
7024         (fold_builtin_1): Likewise.
7025         (fold_builtin_n): Likewise.
7026
7027 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
7028
7029         PR tree-optimization/36008
7030         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
7031         the original op1, rather than delta by step.
7032
7033 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
7034             Sebastian Pop  <sebastian.pop@amd.com>
7035
7036         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
7037         eliminate_local_variables_stmt, eliminate_local_variables,
7038         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
7039         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
7040         of code delimited by two edges in the CFG.
7041         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
7042         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
7043         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
7044         the case of parallelisation of reductions.
7045         (expr_invariant_in_region_p): New.
7046
7047         * tree-flow.h (gather_blocks_in_sese_region): Declared.
7048         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
7049
7050 2008-04-24  Ira Rosen  <irar@il.ibm.com>
7051             Richard Guenther  <rguenther@suse.de>
7052
7053         PR tree-optimization/36034
7054         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
7055         incapable of dealing with loads with gaps.
7056
7057 2008-04-24  Rafael Espindola  <espindola@google.com>
7058
7059         * tree-flow.h (vrp_evaluate_conditional): Change signature.
7060         * tree-ssa-propagate.c (fold_predicate_in): Update call to
7061         vrp_evaluate_conditional.
7062         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
7063         (vrp_evaluate_conditional): Split the cond argument.
7064         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
7065         (simplify_stmt_for_jump_threading): Update call to
7066         vrp_evaluate_conditional.
7067
7068 2008-04-24  Ira Rosen  <irar@il.ibm.com>
7069
7070         PR tree-optimization/35982
7071         * tree-vect-analyze.c (vect_check_interleaving): Check that the
7072         interleaved data-refs are of the same type.
7073
7074 2008-04-24  Danny Smith  <dannysmith@users.net>
7075
7076         * c-format.c (check_format_info_main): Use strncmp rather than a
7077         magic prefix to handle multichar length specs.
7078         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
7079         Don't prefix "I64" and "I32" with '\0'.
7080
7081 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
7082
7083         PR target/36015
7084         * config/i386/i386.c (init_cumulative_args): Don't pass anything
7085         in registers for -m32 only if stdarg_p (fntype).
7086
7087 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
7088
7089         PR rtl-optimization/36006
7090         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
7091         temp to op0 in order to avoid invalid rtx sharing.
7092
7093 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
7094
7095         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
7096         check TREE_INVARIANT.
7097         * tree-gimple.c (is_gimple_address): New.
7098         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
7099         * tree-gimple.h (is_gimple_address): New.
7100         * tree.h (decl_address_invariant_p): New.
7101         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
7102         (build_string): Likewise.
7103         (decl_address_invariant_p): New, from is_gimple_invariant_address.
7104         (tree_invariant_p_1): Likewise.
7105         (save_expr): Use it.
7106         (tree_invariant_p): New.
7107         (skip_simple_arithmetic): Use it.
7108         (stabilize_reference_1): Use it.
7109         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
7110         simplify.
7111         (build1_stat): Drop code to compute TREE_INVARIANT.
7112         (build2_stat): Drop code to compute TREE_INVARIANT.
7113         (build3_stat): Drop code to compute TREE_INVARIANT.
7114         (build4_stat): Drop code to compute TREE_INVARIANT.
7115         (build5_stat): Drop code to compute TREE_INVARIANT.
7116         (build7_stat): Drop code to compute TREE_INVARIANT.
7117         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
7118         * tree.h (struct tree_base): Remove invariant_flag.
7119         (TREE_INVARIANT): Remove.
7120         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
7121         (fold_builtin_expect): Check TREE_CONSTANT.
7122         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
7123         * c-tree.h (c_expr_to_decl): Drop third parameter.
7124         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
7125         (build_c_cast): Don't set TREE_INVARIANT.
7126         (pop_init_level): Don't set TREE_INVARIANT.
7127         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
7128         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
7129         TREE_CONSTANT.
7130         (gimplify_init_constructor): Don't set TREE_INVARIANT.
7131         (gimplify_addr_expr): Adjust comment.
7132         * tree-mudflap.c (mf_build_string):
7133         * print-tree.c (print_node): Don't print TREE_INVARIANT.
7134         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
7135         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
7136         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
7137         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
7138         * langhooks.h (struct lang_hooks): Drop third parameter from
7139         expr_to_decl.
7140
7141 2008-04-23  Richard Guenther  <rguenther@suse.de>
7142
7143         PR tree-optimization/27799
7144         PR tree-optimization/32921
7145         PR tree-optimization/32624
7146         * tree-ssa-structalias.c (merge_smts_into): Only merge the
7147         SMTs aliases and the tag itself into the solution.
7148         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
7149         merge the points-to solution back into the SMT aliases.
7150         (may_alias_p): Use alias_set_subset_of instead of
7151         aliases_conflict_p.  A pointer which points to
7152         memory with alias set zero may access any variable.
7153
7154 2008-04-23  Richard Guenther  <rguenther@suse.de>
7155
7156         * alias.c (alias_set_subset_of): Correctly handle asking
7157         if zero is a subset of an alias set with zero child.
7158         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
7159         (compute_flow_insensitive_aliasing): Correctly walk all
7160         pointers.  Do not unnecessarily union sets.
7161
7162 2008-04-23  Richard Guenther  <rguenther@suse.de>
7163
7164         PR middle-end/36021
7165         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
7166
7167 2008-04-22  Tomas Bily  <tbily@suse.cz>
7168
7169         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
7170         unreachable case.
7171         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
7172         NON_LVALUE_EXPR.
7173         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
7174         * tree-ssa-structalias.c (get_constraint_for): Likewise.
7175         * tree-inline.c (estimate_num_insns_1): Likewise.
7176         * varasm.c (const_hash_1, compare_constant, copy_constant)
7177         (compute_reloc_for_constant, output_addressed_constants): Likewise.
7178         * emit-rtl.c (component_ref_for_mem_expr)
7179         (set_mem_attributes_minus_bitpos): Likewise.
7180         * expr.c (highest_pow2_factor, expand_expr_real_1, )
7181         (is_aligning_offset): Likewise.
7182         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
7183         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
7184         * dojump.c (do_jump): Likewise.
7185         * builtins.c (get_pointer_alignment, get_memory_rtx)
7186         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
7187         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
7188
7189 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
7190
7191         PR rtl-optimization/36017
7192         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
7193         expanding the library call.
7194
7195 2008-04-22  Ian Lance Taylor  <iant@google.com>
7196
7197         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
7198         than size_in_bytes.
7199
7200 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
7201
7202         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
7203         of LR/CTR moves for Power6.
7204
7205 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
7206
7207         PR middle-end/36003
7208         * passes.c (init_optimization_passes): Remove
7209         pass_fast_rtl_byte_dce.
7210         
7211 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
7212
7213         PR target/29096
7214         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
7215         builtin functions to generate faster code.
7216         (_mm_cvtpu16_ps): Ditto.
7217         (_mm_cvtpi32x2_ps): Ditto.
7218
7219 2008-04-22  Nick Clifton  <nickc@redhat.com>
7220
7221         * common.opt (ftree-loop-distribution): Add Optimization
7222         attribute.
7223
7224         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
7225         (frv_expand_builtin_va_start): Likewise.
7226
7227         * config/arm/arm.c (thumb_find_work_register): Fix location of
7228         argument register count.
7229
7230 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
7231
7232         Support scheduling for ColdFire V1 and V3 microarchitecture.
7233         Improve scheduling of multiplication instructions.
7234
7235         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
7236         (mac): New instruction attribute.
7237         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
7238         (m68k_sched_mac): New variable.
7239         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
7240         Handle cfv1 and cfv3.
7241         (max_insn_size): New static variable.
7242         (struct _sched_ib): New type.
7243         (sched_ib): New static variable.
7244         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
7245         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
7246         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
7247         Update.
7248         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
7249         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
7250         new variables.  Update.
7251         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
7252         Add modeling of cfv3 instruction buffer.  Update.
7253         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
7254         * config/m68k/m68k.h (TUNE_CFV3): New macro.
7255         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
7256         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
7257         a particular reservation applies to.
7258         (type2): Reorganize attribute values.  Rename alu to alu_reg,
7259         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
7260         to mul_l and mul_w.
7261         (cf_ib_*): Simplify description of instruction buffer.
7262         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
7263         (cf_mem): Split into cf_mem1 and cf_mem2.
7264         (cf_v2_move_??): Rename to cfv12_alu_??.
7265         (cf_v2_move_l_??): Rename to cfv12_omove_??.
7266         (cf_v2_mul_??): Remove reservations.
7267         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
7268         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
7269         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
7270         appropriate place.
7271         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
7272         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
7273         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
7274         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
7275         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
7276         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
7277         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
7278         expansions of the above reservations for instructions of sizes
7279         1, 2 and 3 words.
7280
7281 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
7282
7283         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
7284
7285 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
7286
7287         * coverage.c: Include tree-pass.h.
7288         (coverage_counter_alloc): Print da_file_name to the dump file.
7289
7290 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
7291
7292         * sbitmap.c (sbitmap_range_empty_p): New function.
7293         * sbitmap.h (sbitmap_range_empty_p): New function.
7294         * bitmap.h: Now includes obstack.h.
7295
7296 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
7297             Kenneth Zadeck  <zadeck@naturalbridge.com>
7298
7299         * dbgcnt.def (ra_byte_scan): Added.
7300         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
7301         when the last hit happens for a counter.  
7302         * timevar.def (TV_DF_BYTE_LR): New variable.
7303         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
7304         * passes.c (pass_fast_rtl_byte_dce): New pass.
7305         * fwprop.c (update_df): Added mode to call df_ref_create.
7306         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
7307         DF_REF_EXTRACT_OFFSET.
7308         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
7309         DF_BYTE_LR_OUT, df_byte_lr): New macro.
7310         (df_mm): New enum.
7311         (df_ref_extract): Added mode field.
7312         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
7313         DF_REF_EXTRACT_OFFSET.
7314         (DF_REF_EXTRACT_MODE): New macro.
7315         (df_byte_lr_bb_info): New structure.
7316         (df_print_byte_regset, df_compute_accessed_bytes, 
7317         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
7318         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
7319         df_byte_lr_simulate_uses,
7320         df_byte_lr_simulate_artificial_refs_at_top,
7321         df_byte_lr_simulate_artificial_refs_at_end,
7322         df_compute_accessed_bytes): New function.
7323         (df_ref_create): Add parameter.
7324         (df_byte_lr_get_bb_info): New inline function.
7325         * df-scan.c (df_ref_record, df_uses_record,
7326         df_ref_create_structure): Added mode parameter.
7327         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
7328         df_defs_record, df_uses_record, df_get_conditional_uses,
7329         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
7330         df_entry_block_defs_collect, df_exit_block_uses_collect):
7331         Added mode parameter to calls to df_ref_record, df_uses_record,
7332         df_ref_create_structure.
7333         (df_ref_equal_p, df_ref_compare): Added test for modes.
7334         (df_ref_create_structure): Added code to set mode.  Renamed
7335         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
7336         DF_REF_EXTRACT_OFFSET.
7337         * df-core.c (df_print_byte_regset): New function.
7338         * df-byte-scan.c: New file.
7339         * df-problems.c (df_rd_transfer_function): Removed unnecessary
7340         calls to BITMAP_FREE.  
7341         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
7342         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
7343         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
7344         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
7345         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
7346         df_byte_lr_local_compute, df_byte_lr_init,
7347         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
7348         df_byte_lr_transfer_function, df_byte_lr_free, 
7349         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
7350         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
7351         df_byte_lr_simulate_uses,
7352         df_byte_lr_simulate_artificial_refs_at_top,
7353         df_byte_lr_simulate_artificial_refs_at_end): New function.
7354         * dce.c (byte_dce_process_block): New function.
7355         (dce_process_block): au is now passed in rather than computed
7356         locally.  Changed loops that look at artificial defs to not look
7357         for conditional or partial ones, because there never are any.  
7358         (fast_dce): Now is able to drive byte_dce_process_block or 
7359         dce_process_block depending on the kind of dce being done.
7360         (rest_of_handle_fast_dce): Add parameter to fast_dce.
7361         (rest_of_handle_fast_byte_dce): New function.
7362         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
7363         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
7364
7365 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
7366
7367         PR fortran/35019
7368         * gcc.h: Added fortran options that take arguments to
7369         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
7370         macros.
7371
7372 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
7373
7374         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
7375         scalarization if on the LHS and not a full access.
7376
7377 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7378
7379         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
7380
7381 2008-04-18  Rafael Espindola  <espindola@google.com>
7382
7383         * tree-vrp.c (find_case_label_index): Fix the binary search.
7384         (find_case_label_range): New.
7385         (vrp_visit_switch_stmt): Use find_case_label_range.
7386         (simplify_switch_using_ranges): Use find_case_label_range.
7387
7388 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
7389
7390         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
7391         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
7392
7393 2008-04-18  Tom Tromey  <tromey@redhat.com>
7394
7395         PR libcpp/15500:
7396         * doc/cpp.texi (Implementation-defined behavior): Mention
7397         -finput-charset.
7398
7399 2008-04-18  Ian Lance Taylor  <iant@google.com>
7400
7401         * fold-const.c (pointer_may_wrap_p): New static function.
7402         (fold_comparison): Add another test for pointer overflow.  Use
7403         pointer_may_wrap_p to disable some false positives.
7404
7405 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
7406           
7407         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
7408         (fname_as_string): Match updated cpp_interpret_string prototype.
7409         (fix_string_type): Support char16_t* and char32_t*.
7410         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
7411         derivative) nodes.  Register as builtin if C++0x.
7412         (c_parse_error): Support CPP_CHAR{16,32}.
7413         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
7414         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
7415         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
7416         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
7417         CTI_CHAR32_ARRAY_TYPE>: New elements.
7418         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
7419         char32_type_node, signed_char32_type_node, char16_array_type_node,
7420         char32_array_type_node): New defines.
7421         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
7422         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
7423         (lex_string): Support CPP_STRING{16,32}, match updated
7424         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
7425         (lex_charconst): Support CPP_CHAR{16,32}.
7426         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
7427         and CPP_STRING{16,32}.
7428
7429 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
7430
7431         PR bootstrap/35457
7432         * aclocal.m4: Regenerate.
7433         * configure: Regenerate.
7434
7435 2008-04-18  Jan Hubicka  <jh@suse.cz>
7436
7437         * except.c (dw2_size_of_call_site_table,
7438         sjlj_size_of_call_site_table): Use vector API for call_site_record.
7439
7440         * cgraphbuild.c (build_cgraph_edges): Update.
7441         * tree-pass.h: Update comment.
7442         * final.c (leaf_function_p): Update.
7443         (leaf_renumber_regs): Update.
7444         (rest_of_clean_state): Update.
7445         * omp-low.c (expand_omp_parallel): Update.
7446         * ipa-reference.c (analyze_function): Update.
7447         * reorg.c (find_end_label): Update.
7448         (optimize_skip): Update.
7449         (fill_simple_delay_slots): Update.
7450         (fill_simple_delay_slots): Update.
7451         (make_return_insns): Update.
7452         (dbr_schedule): Update.
7453         * gimple-low.c (record_vars_into): Update.
7454         * cfgbuild.c (make_edges): Update.
7455         * function.c (assign_stack_local): Update.
7456         (assign_parm_adjust_stack_rtl): Update.
7457         (locate_and_pad_parm): Update.
7458         (allocate_struct_function): Do not initialize stack_alignment_needed
7459         and preferred_stack_boundary here.
7460         (stack_protect_prologue): Update.
7461         (stack_protect_epilogue): Update.
7462         (expand_function_start): Initialize stack_alignment_needed,
7463         preferred_stack_boundary and max_jumptable_ents.
7464         (expand_function_end): Update.
7465         (free_after_compilation): Do not NULLify epilogue_delay_list.
7466         * function.h (struct rtl_data): Add stack_protect_guard,
7467         stack_alignment_needed,
7468         preferred_stack_boundary, epilogue_delay_list.
7469         (struct function): Remove value_histograms, stack_alignment_needed,
7470         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
7471         last_label_uid,
7472         unexpanded_var_list, stack_protect_guard.
7473         (current_function_epilogue_delay_list): Remove.
7474         * ipa-type-escape.c (analyze_function): Update.
7475         * gimplify.c (pop_gimplify_context): Update comment.
7476         * calls.c (expand_call): Update.
7477         (emit_library_call_value_1): Update.
7478         * except.c (set_nothrow_function_flags): Update.
7479         * cfgexpand.c (get_decl_align_unit): Update.
7480         (create_stack_guard): Update.
7481         (estimated_stack_frame_size): Update.
7482         (expand_used_vars): Update.
7483         (tree_expand_cfg): Free histogram earliers, init expansion variables.
7484         * explow.c (allocate_dynamic_stack_space): Update.
7485         * tree-ssa-live.c (remove_unused_locals): Update.
7486         * varasm.c (mark_constant_pool): Update.
7487         * tree-inline.c (remap_decls): Update.
7488         (initialize_cfun): Update.
7489         (declare_return_variable): Update.
7490         (inline_forbidden_p): Update.
7491         (expand_call_inline): Update.
7492         (declare_inline_vars): Update.
7493         (tree_function_versioning): Update.
7494         * tree-flow.h (value_histograms): New.
7495         (VALUE_HISTOGRAMS): New macro.
7496         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
7497         last_label_uid.
7498         * tree-cfg.c (set_bb_for_stmt): Update.
7499         (replace_by_duplicate_decl): Update.
7500         (move_block_to_fn): Update.
7501         (new_label_mapper): Update.
7502         (dump_function_to_file): Update.
7503         * ipa-struct-reorg.c (build_data_structure): Update.
7504         * cfgrtl.c (print_rtl_with_bb): Update.
7505         * reload1.c (reload): Update.
7506         (reload): Update.
7507         * config/i386/i386.c (setup_incoming_varargs_64,
7508         ix86_compute_frame_layout): Update.
7509         * config/arc/arc.c (arc_output_function_epilogue): Update.
7510
7511 2008-04-18  Marius Strobl <marius@FreeBSD.org>
7512
7513         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
7514         for FreeBSD as well.
7515         * gthr-posix95.h: Likewise.
7516
7517 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
7518
7519         PR rtl-optimization/35838
7520         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
7521         out the byte offset of the first subreg.
7522
7523 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
7524
7525         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
7526         to split_ti instead of three separate calls with single member arrays.
7527         (subti3 splitter): Ditto.
7528         (adddi3 splitter): Ditto with split_di.
7529         (subdi3 splitter): Ditto.
7530         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
7531         two separate calls with single member arrays.  Swap match_dup
7532         operands 1 and 2 to better fit into the array.
7533         (negdi2 splitter): Ditto with split_di.
7534         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
7535         two separate calls with single member arrays.  Swap match_dup operands
7536         6 and 7 to better fit into the array.
7537
7538 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
7539
7540         * config/i386/i386.c (sse_builtin_type): New.
7541         (bdesc_sse_args): Likewise.
7542         (bdesc_sse_3arg): Removed.
7543         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
7544         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
7545         IX86_BUILTIN_ROUNDPS.
7546         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
7547         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
7548         IX86_BUILTIN_ROUNDPS.
7549         (ix86_expand_sse_4_operands_builtin): Removed.
7550         (ix86_expand_sse_operands_builtin): New.
7551         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
7552         and CODE_FOR_sse4_1_roundps.
7553         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
7554         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
7555
7556 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
7557
7558         PR target/35907
7559         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
7560         regs before frame pop when needed.  If use_backchain_to_restore_sp
7561         then load backchain into a temp reg to restore vr and vrsave.  Add
7562         code to restore vr after frame pop if possible.
7563
7564 2008-04-17  Richard Guenther  <rguenther@suse.de>
7565
7566         * tree-vn.c (expressions_equal_p): Do not check type
7567         equality or compatibility before calling operand_equal_p.
7568         * fold-const.c (operand_equal_p): Check equivalence of
7569         integer constants before bailing out due to signedness or
7570         precision differences.
7571         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
7572         spurious differences in type qualification.  Ignore types
7573         for COMPONENT_REFs at all.
7574
7575 2008-04-17  Christian Bruel  <christian.bruel@st.com>
7576
7577         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
7578         msw_skip comparison.
7579         
7580 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
7581
7582         PR c/35739
7583         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
7584         reg type.
7585
7586         PR tree-optimization/35899
7587         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
7588         rather than TREE_OPERAND.
7589
7590 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
7591
7592         PR target/35944
7593         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
7594         temporary registers.  Change operand predicate to general_operand.
7595         (remainderxf3): Ditto.
7596
7597 2008-04-16  Richard Guenther  <rguenther@suse.de>
7598
7599         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
7600         * tree-affine.c (aff_combination_expand): Look through some
7601         conversions.
7602
7603 2008-04-15  Doug Kwan  <dougkwan@google.com>
7604
7605         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
7606         for hex printing.
7607         * tree-pretty-print.c (dump_generic_node): Ditto.
7608         * final.c (output_addr_const): Ditto.
7609         * dwarf2out.c (output_cfi): Ditto.
7610         * c-pretty-print.c (pp_c_integer_constant): Ditto.
7611         * print-rtl.c (print_rtx): Ditto.
7612         * print-tree.c (print_node_brief, print_node): Ditto.
7613         * c-common.c (match_case_to_enum_1): Ditto.
7614         * sched-vis.c (print_value): Ditto.
7615         * config/i386/i386.c (print_operand): Cast to long unsigned int
7616         for hex printing.
7617
7618 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
7619         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
7620         MS Windows VirtualProtect function.
7621
7622 2008-04-15  Jan Hubicka  <jh@suse.cz>
7623
7624         * gengtype.c (write_root): Param_is argument is OK.
7625         * expr.c (expand_expr_real_1): Update call of get_exception_*.
7626         * function.h: Include varray.h
7627         (rtl_eh): New stucture based on except.c one.
7628         (call_site_record): New forward declaration and vector type.
7629         * calls.c (emit_call_1): Do not call
7630         note_current_region_may_contain_throw.
7631         * except.c (eh_status): Remove cur_region, try_region since they are
7632         unused.
7633         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
7634         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
7635         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
7636         Remove call_site_data_used, call_site_data_size.
7637         Turn call_site_record into vector in function.h.
7638         (note_current_region_may_contain_throw): Remove.
7639         (get_exception_pointer, get_exception_filter): Do not take struct
7640         function argument; update.
7641         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
7642         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
7643         build_post_landing_pads, dw2_build_landing_pads,
7644         sjlj_assign_call_site_values, sjlj_mark_call_sites,
7645         sjlj_emit_function_enter, sjlj_emit_function_enter, 
7646         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7647         sjlj_build_landing_pads, finish_eh_generation,
7648         remove_exception_handler_label, remove_eh_handler,
7649         maybe_remove_eh_handler, add_reachable_handler,
7650         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
7651         add_action_record, collect_one_action_chain, add_call_site,
7652         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
7653         sjlj_output_call_site_table, output_function_exception_table,
7654         * except.h (note_current_region_may_contain_throw): Remove
7655         (get_exception_pointer, get_exception_filter): Do not take struct
7656         function argument.
7657         * Makefile.in (GTFILES): Put varargs before struct function.
7658
7659 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7660
7661         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
7662         punt for STRING_CST.
7663         (get_constraint_for): Deal with STRING_CST here instead.
7664
7665 2008-04-15  Richard Guenther  <rguenther@suse.de>
7666
7667         * tree-ssa-propagate.c (substitute_and_fold): Substitute
7668         statements in a basic-block with a backward walk.  Do not
7669         substitute into dead statements but instead remove those.
7670
7671 2008-04-15  Richard Guenther  <rguenther@suse.de>
7672
7673         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
7674         to zero, thus disable creation of SFTs.
7675
7676 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7677
7678         * tree-predcom.c (suitable_reference_p): Return false if the
7679         reference can throw.
7680
7681 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
7682
7683         PR c/35751
7684         * c-decl.c (finish_decl): If extern or static var has variable
7685         size, set TREE_TYPE (decl) to error_mark_node.
7686
7687 2008-04-15  Rafael Espindola  <espindola@google.com>
7688
7689         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
7690         variable arg1.
7691
7692 2008-04-15  Richard Guenther  <rguenther@suse.de>
7693
7694         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7695         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
7696         (visit_reference_op_load): Do walk vuse-vdef chains on
7697         vn_reference_lookup.
7698         (visit_reference_op_store): But do not here.
7699         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
7700         vn_reference_lookup.
7701         (vn_lookup_with_vuses): But do so here.
7702
7703 2008-04-14  Ian Lance Taylor  <iant@google.com>
7704
7705         * fold-const.c (fold_overflow_warning): Remove assertion.
7706
7707 2008-04-15  Ben Elliston  <bje@au.ibm.com>
7708
7709         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
7710         temp1 local variables.
7711
7712 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
7713
7714         PR target/35661
7715         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
7716         ".text.unlikely" section as executable.
7717
7718 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
7719
7720         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7721         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
7722         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
7723         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
7724         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
7725         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
7726         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
7727
7728 2008-04-14  Ian Lance Taylor  <iant@google.com>
7729
7730         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
7731         * fold-const.c (fold_comparison): If appropriate, test
7732         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
7733         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
7734         reassociating a pointer type.
7735         * doc/invoke.texi (Optimize Options): Document that
7736         -fstrict-overflow applies to pointer wraparound.
7737
7738 2008-04-13  Jan Hubicka  <jh@suse.cz>
7739
7740         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
7741
7742 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
7743
7744         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
7745         we are going to "save the world".
7746
7747 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
7748
7749         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
7750         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
7751         operand 0 constraint, not "=".
7752
7753 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
7754
7755         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
7756
7757 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7758
7759         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
7760         of size of positions_needed * CHAR_BIT.
7761
7762 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7763
7764         PR middle-end/35897
7765         * dse.c (store_info): Change positions_needed to unsigned
7766         HOST_WIDE_INT.
7767         (lowpart_bitmask): New.
7768         (record_store): Cast to unsigned HOST_WIDE_INT for
7769         positions_needed.  Assert width <= size of positions_needed *
7770         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
7771         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
7772         lowpart_bitmask to set mask.
7773
7774 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7775
7776         * config/bfin/constraints.md: New file.
7777         * config/bfin/bfin.md: Include it.
7778         (adddi3): Use satisfies_constraint functions instead of the old macros.
7779         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
7780         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
7781         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
7782         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
7783         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
7784         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
7785         EXTRA_CONSTRAINT): Delete.
7786         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
7787         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
7788         of the old macros.
7789         * config/bfin/bfin.c: Include "tm-constrs.h".
7790         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
7791         Use satisfies_constraint functions instead of the old macros.
7792         * doc/md.texi (Blackfin Constraints): Update file name reference.
7793
7794 2008-04-11  Richard Guenther  <rguenther@suse.de>
7795
7796         PR tree-optimization/35869
7797         * tree-vrp.c (execute_vrp): Move switch statement update after
7798         jump threading.  Schedule another cfg cleanup run.
7799
7800 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
7801
7802         PR c/35744
7803         * attribs.c (decl_attributes): Return early on errorneous node.
7804
7805 2008-04-10  Oleg Ryjkov  <olegr@google.com>
7806
7807         * tree.h (struct tree_base): Added a new flag default_def_flag.
7808         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
7809
7810 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7811
7812         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
7813
7814 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7815
7816         PR target/35768
7817         * pa.md: Define mode iterator P.  Define mode attribute dwc.
7818         (dcacheflush): Update pattern to use iterator P and attribute dwc.
7819         (icacheflush): Likewise.
7820         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
7821         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
7822
7823 2008-04-11  Ben Elliston  <bje@au.ibm.com>
7824
7825         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
7826
7827 2008-04-10  Rafael Espindola  <espindola@google.com>
7828
7829         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
7830         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
7831         (extract_range_from_expr): The same.
7832
7833 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7834
7835         * config/mips/mips.md (GPR2): New mode iterator.
7836         (seq): Add comment.
7837         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
7838         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
7839         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
7840         Rewrite these to take two modes, the mode of comparison and the
7841         mode of the destination.
7842         * config/mips/mips.c (mips_expand_scc): Instead of having
7843         paradoxical subreg as destination, expand "narrowing" scc if mode
7844         of comparison is SI and target is requested in DI mode.
7845         (mips_emit_int_order_test): Update comment.  Make mode of
7846         comparison match CMP0 rather than TARGET.  When creating inverse
7847         target use mode of TARGET.
7848
7849 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7850
7851         * gcov-dump.c (tag_summary): Only print summaries for the first
7852         GCOV_COUNTERS_SUMMABLE counters.
7853
7854 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
7855
7856         * config/i386/i386.md (absneg): New code iterator.
7857         (absnegprefix): New code attribute.
7858         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
7859         patterns using absneg code iterator.
7860         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
7861         using absneg code iterator.
7862         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
7863         *neg<mode>2 patterns using absneg code iterator.
7864         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7865         *negextendsfdf2 patterns using absneg code iterator.
7866         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
7867         *negextendsfxf2 patterns using absneg code iterator.
7868         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7869         *negextendsfdf2 patterns using absneg code iterator.
7870         * config/i386/sse.md (<code><mode>2): Macroize expander from
7871         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
7872
7873 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7874
7875         * config/s390/s390.h: Remove the remains of the recent search
7876         & replace action of current_function_outgoing_args_size.
7877
7878 2008-04-10  Ira Rosen  <irar@il.ibm.com>
7879
7880         PR tree-optimization/35821
7881         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
7882         NEW_STMT_LIST is not NULL.
7883
7884 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
7885
7886         PR libstdc++/35597
7887         * toplev.c (process_options): Remove -ffunction-sections debugging
7888         warning.
7889
7890 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
7891
7892         PR middle-end/PR28690
7893         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
7894         than gen_rtx_fmt_ee to perform more canonicalizations.
7895
7896 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7897
7898         PR driver/35665
7899         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
7900
7901 2008-04-09  Richard Guenther  <rguenther@suse.de>
7902
7903         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
7904         (dump_function_to_file): Dump function arguments with types.
7905
7906 2008-04-08  Richard Guenther  <rguenther@suse.de>
7907
7908         * fold-const.c (fold_widened_comparison): Do not allow
7909         sign-changes that change the result.
7910
7911 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7912
7913         PR target/35839
7914         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7915         kinds of indirect references.
7916
7917 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7918
7919         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7920         GNU Fortran language string.
7921
7922 2008-04-08  Rafael Espindola  <espindola@google.com>
7923
7924         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7925         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7926         * tree.h (tree_call_nonnegative_warnv_p): New.
7927
7928 2008-04-08  Jan Hubicka  <jh@suse.cz>
7929
7930         * function.c (free_after_compilation): Clear out regno_reg_rtx
7931         pointer.
7932
7933 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7934
7935         Revert
7936         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7937
7938         PR middle-end/PR28690
7939         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7940         same precedence as REG_POINTER and MEM_POINTER operands.
7941
7942 2008-04-08  Richard Guenther  <rguenther@suse.de>
7943
7944         PR middle-end/35834
7945         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7946         for adding index to base.
7947
7948 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7949
7950         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7951         (MINGW_ENABLE_EXECUTE_STACK): New.
7952         (IN_LIBGCC2): For libgcc include windows.h file for
7953         function declarations.
7954
7955 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7956
7957         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7958         and tem2 if tem1 is not a REG or MULT.
7959
7960 2008-04-08  Jan Hubicka  <jh@suse.cz>
7961
7962         * function.h (incomming_args): Break out of struct function.
7963         (function_subsections): Break out of struct function.
7964         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7965         return_rtx and hard_reg_initial_vals from struct function.
7966         Kill inl_max_label_num.
7967         (current_function_pops_args, current_function_args_info,
7968         current_function_args_size, current_function_args_size,
7969         current_function_pretend_args_size,
7970         current_function_outgoing_args_size,
7971         current_function_internal_arg_pointer, current_function_return_rtx):
7972         Kill compatibility accestor macros.
7973         * builtins.c (expand_builtin_apply_args_1): Update.
7974         (expand_builtin_next_arg): Update.
7975         * df-scan.c (df_get_call_refs): Update.
7976         * dbxout.c (dbxout_function_end): Update.
7977         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7978         (output_line_info): Update.
7979         (secname_for_decl): Update.
7980         (dwarf2out_var_location): Update.
7981         * function.c (free_after_compilation): Update.
7982         (assign_parm_find_stack_rtl): Update.
7983         (assign_parms): Update.
7984         (expand_dummy_function_end): Update.
7985         (expand_function_end): Update.
7986         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7987         (expand_call): Update.
7988         (emit_library_call_value_1): Update.
7989         (store_one_arg): Update.
7990         * varasm.c (initialize_cold_section_name): Update.
7991         (unlikely_text_section): Update.
7992         (unlikely_text_section_p): Update.
7993         (assemble_start_function): Update.
7994         (assemble_end_function): Update.
7995         (default_section_type_flags): Update.
7996         (switch_to_section): Update.
7997         * integrate.c (set_decl_abstract_flags): Update.
7998         (get_hard_reg_initial_val): Update.
7999         (has_hard_reg_initial_val): Update.
8000         (allocate_initial_values): Update.
8001         * resource.c (init_resource_info): Update.
8002         * config/alpha/alpha.c (NUM_ARGS): Update.
8003         (direct_return): Update.
8004         (alpha_va_start): Update.
8005         (alpha_sa_size): Update.
8006         (alpha_initial_elimination_offset): Update.
8007         (alpha_expand_prologue): Update.
8008         (alpha_start_function): Update.
8009         (alpha_expand_epilogue): Update.
8010         (unicosmk_initial_elimination_offset):
8011         * config/alpha/alpha.md (call expander): Update.
8012         * config/s390/s390.c (s390_register_info): Update.
8013         (s390_register_info): Update.
8014         (s390_frame_info): Update.
8015         (s390_initial_elimination_offset): Update.
8016         (s390_build_builtin_va_list): Update.
8017         (s390_va_start): Update.
8018         * config/spu/spu.c (direct_return): Update.
8019         (spu_expand_prologue): Update.
8020         (spu_initial_elimination_offset): Update.
8021         (spu_build_builtin_va_list): Update.
8022         (spu_va_start): Update.
8023         * config/sparc/sparc.c (sparc_init_modes): Update.
8024         (sparc_compute_frame_size): Update.
8025         (function_value): Update.
8026         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
8027         * config/i386/i386.md (return expander): Update.
8028         * config/i386/i386.c (ix86_va_start): Update.
8029         (ix86_can_use_return_insn_p): Update.
8030         (ix86_compute_frame_layout): Update.
8031         (ix86_expand_epilogue): Update.
8032         * config/sh/sh.c (output_stack_adjust): Update.
8033         (calc_live_regs): Update.
8034         (sh_expand_prologue): Update.
8035         (sh_builtin_saveregs): Update.
8036         (sh_va_start): Update.
8037         (initial_elimination_offset): Update.
8038         (sh_allocate_initial_value): Update.
8039         (sh_function_ok_for_sibcall): Update.
8040         (sh_get_pr_initial_val): Update.
8041         * config/sh/sh.md (return expander): Update.
8042         * config/avr/avr.c (frame_pointer_required_p): UPdate.
8043         * config/crx/crx.c (crx_compute_frame): UPdate.
8044         (crx_initial_elimination_offset): UPdate.
8045         * config/xtensa/xtensa.c (compute_frame_size): Update
8046         (xtensa_builtin_saveregs): Update.
8047         (xtensa_va_start): Update.
8048         (order_regs_for_local_alloc): Update.
8049         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
8050         (xstormy16_expand_builtin_va_start): Update.
8051         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
8052         * config/m68hc11/m68hc11.md (return expanders): Update.
8053         * config/m68hc11/m68hc11.c (expand_prologue): Update.
8054         (expand_epilogue): Update.
8055         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
8056         (cris_simple_epilogue): Update.
8057         (cris_expand_prologue): Update.
8058         (cris_expand_epilogue): Update.
8059         * config/iq2000/iq2000.c (iq2000_va_start): Update.
8060         (compute_frame_size): Update.
8061         * config/mt/mt.c (mt_compute_frame_size): Update.
8062         * config/mn10300/mn10300.c (expand_prologue): Update.
8063         (expand_epilogue): Update.
8064         (initial_offset): Update.
8065         (mn10300_builtin_saveregs):
8066         * config/mn10300/mn10300.md (return expander): Update.
8067         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
8068         (ia64_initial_elimination_offset): Update.
8069         (ia64_initial_elimination_offset): Update.
8070         (ia64_expand_prologue): Update.
8071         * config/m68k/m68k.md (return expander): Update.
8072         * config/rs6000/rs6000.c (rs6000_va_start): Update.
8073         (rs6000_stack_info): Update.
8074         * config/mcore/mcore.c (layout_mcore_frame): Update.
8075         (mcore_expand_prolog): Update.
8076         * config/arc/arc.c (arc_compute_frame_size): Update.
8077         * config/score/score3.c (score3_compute_frame_size): Update.
8078         * config/score/score7.c (score7_compute_frame_size): Update.
8079         * config/arm/arm.c (use_return_insn): Update.
8080         (thumb_find_work_register): Update.
8081         (arm_compute_save_reg_mask): Update.
8082         (arm_output_function_prologue): Update.
8083         (arm_output_epilogue): Update.
8084         (arm_size_return_regs): Update.
8085         (arm_get_frame_offsets): Update.
8086         (arm_expand_prologue): Update.
8087         (thumb_exit): Update.
8088         (thumb_unexpanded_epilogue): Update.
8089         (thumb1_output_function_prologue): Update.
8090         * config/pa/pa.md (return expander): Update.
8091         * config/pa/pa.c (compute_frame_size): Update.
8092         (hppa_builtin_saveregs): Update.
8093         * config/mips/mips.c (mips_va_start): Update.
8094         (mips16_build_function_stub): Update.
8095         (mips_compute_frame_info): Update.
8096         (mips_restore_gp): Update.
8097         (mips_output_function_prologue): Update.
8098         (mips_expand_prologue): Update.
8099         * config/v850/v850.c (compute_frame_size): Update.
8100         (expand_prologue): * config/mmix/mmix.c (along): update.
8101         (mmix_initial_elimination_offset): update.
8102         (mmix_reorg): update.
8103         (mmix_use_simple_return): update.
8104         (mmix_expand_prologue): update.
8105         (mmix_expand_epilogue): Update.
8106         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
8107         (emit_link_insn): Update.
8108
8109 2008-04-08  Anatoly Sokolov <aesok@post.ru>
8110
8111         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
8112         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
8113         instructions.
8114         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
8115         atmega103 device.
8116
8117 2008-04-07  Jan Hubicka  <jh@suse.cz>
8118
8119         * function.h (rtl): Rename to x_rtl.
8120         (crtl): New define.
8121         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8122         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8123         used_temp_slots avail_temp_slots, temp_slot_level,
8124         nonlocal_goto_handler_labels): Update accesstors.
8125         (rtl): New global variable.
8126         (struct function): Move some fileds to rtl_data.
8127         (get_arg_pointer_save_area): Update prototype.
8128         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8129         get_arg_pointer_save_area.
8130         * expr.c (init_expr): Update
8131         * function.c (get_frame_size): Update
8132         (assign_stack_local): Update
8133         (expand_function_end): Update.
8134         (get_art_pointer_save_area): Update
8135         * function.h 
8136         * emit-rtl.c (rtl): Declare.
8137         (regno_reg_rtx): Declare.
8138         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8139         Update.
8140         (gen_reg_rtx): Update.
8141         * varasm.c (n_deferred_constatns): Update accestor.
8142         (init_varasm_status): Do not allocate varasm_status.
8143         (force_const_mem, get_pool_size, output_constant_pool): Update.
8144         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8145         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8146         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
8147         * sparc/sparc.h (INIT_EXPANDERS): Update.
8148         * ia64/ia64.h (INIT_EXPANDERS): Update.
8149
8150 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
8151
8152         * reload.c (push_secondary_reload): Add missing break to for loop.
8153
8154 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
8155
8156         PR middle-end/PR28690
8157         * rtlanal.c: Update copyright years.
8158         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
8159         as REG_POINTER and MEM_POINTER operands.
8160         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
8161         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
8162         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
8163         * gcse.c: Update copyright years.
8164         (pre_delete): Call gen_reg_rtx_and_attrs.
8165         (hoist_code): Likewise.
8166         (build_store_vectors): Likewise.
8167         (delete_store): Likewise.
8168         * loop-invariant.c (move_invariant_reg): Likewise.
8169         Update copyright years.
8170
8171 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
8172
8173         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
8174         control string instead of quoted.
8175
8176 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
8177
8178         * doc/rtl.texi: Rewrite of subreg section.
8179
8180 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
8181
8182         PR/35842
8183         * config/i386/i386.c (legitimize_pic_address): Add treating
8184         of dllimport SYM_REF's.
8185         (legitimize_dllimport_symbol): Add prototype.
8186
8187 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
8188
8189         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
8190         reference in constructor with non self-referential type.
8191
8192 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
8193
8194         Removal of Return with Depressed Stack Pointer support
8195         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
8196         (ECF_SP_DEPRESSED): Likewise.
8197         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
8198         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
8199         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
8200         (expand_call): Do not test ECF_SP_DEPRESSED.
8201         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
8202         * function.c (keep_stack_depressed): Delete.
8203         (handle_epilogue_set): Likewise.
8204         (update_epilogue_consts): Likewise.
8205         (emit_equiv_load): Likewise.
8206         (thread_prologue_and_epilogue_insns): Remove support for Return with
8207         Depressed Stack Pointer.
8208         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
8209
8210 2008-04-06  Richard Guenther  <rguenther@suse.de>
8211
8212         PR tree-optimization/35400
8213         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
8214         information from SSA_NAMEs.
8215
8216 2008-04-06  Anatoly Sokolov <aesok@post.ru>
8217
8218         * config/avr/avr.h (avr_mega_p): Remove declaration.
8219         (AVR_MEGA): Remove macro.
8220         * config/avr/avr.c (avr_mega_p): Remove variable.
8221         (avr_override_options): Remove inicializion of avr_mega_p.
8222         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
8223         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
8224         (avr_jump_mode): (Ditto.).
8225         (avr_output_progmem_section_asm_op): (Ditto.).
8226         (avr_asm_init_sections): (Ditto.).
8227         (avr_asm_init_sections): (Ditto.).
8228         (avr_rtx_costs): (Ditto.).
8229         * config/avr/avr.md: (Ditto.).
8230         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
8231         '__AVR_MEGA__'.
8232
8233 2008-04-06  Richard Guenther  <rguenther@suse.de>
8234
8235         PR tree-optimization/35842
8236         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
8237         is_gimple_invariant_address.
8238
8239 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8240
8241         * gcc.c (default_compilers): Sync Fortran extensions list with
8242         that in fortran/lang-specs.h.
8243         * doc/invoke.texi: Likewise.
8244         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
8245         * dwarf2out.c (gen_compile_unit_die): Likewise.
8246
8247 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
8248
8249         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
8250
8251 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
8252
8253         PR target/12329
8254         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
8255         attribute is used for nested functions.
8256
8257 2008-04-05  Jan Hubicka  <jh@suse.cz>
8258
8259         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
8260
8261         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
8262         letter argument.
8263         (dump_files): Update.
8264         (enable_rtl_dump_file): Do not accept letter argument.
8265         * tree-pass.h (dump_file_info): Remove letter argument.
8266         * toplev.c (decode_d_option): Update -da handling.
8267         * toplev.h (enable_rtl_dump_file): Update prototype.
8268         * passes.c (register_one_dump_file): Do not accept IPA argument; work
8269         it out based on pass type.
8270         (register_dump_files_1): Likewise.
8271         (init_optimization_passes): Update register_one_dump_file calls.
8272         (execute_one_pass): Sanity check that IPA passes are called at IPA
8273         level and RTL passes at RTL level.
8274         (execute_pass_list): IPA pass can not be after or subpass of
8275         GIMPLE/RTL pass.
8276         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
8277         disallov RTL subpasses of IPA subpasses.
8278
8279 2008-04-05  Ben Elliston  <bje@au.ibm.com>
8280
8281         * tree-cfg.c (need_fake_edge_p): Return false for calls to
8282         builtins that return exactly once and do not throw. Cache call to
8283         call_expr_flags.
8284
8285 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
8286
8287         PR rtl-optimization/34916
8288         PR middle-end/35519
8289         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
8290         between instruction pairs.
8291
8292 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
8293
8294         * doc/invoke.texi: Document -mbitops for SH.
8295         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
8296         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
8297         * config/sh/sh.c (print_operand): Add %t operand code.
8298         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
8299         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
8300         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
8301         (extendqihi2): Likewise.
8302         (movqi_i): Likewise.
8303         (insv): Use bset, bclr and bst instructions for SH2A if possible.
8304         (extv): Use bld instruction for SH2A if possible.
8305         (extzv): Likewise.
8306         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
8307         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
8308         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
8309         (bset.b, bclr.b): Define peepholes.
8310         * config/sh/sh.opt (mbitops): New option.
8311
8312 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
8313
8314         PR target/35620
8315         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
8316         and view convert expression.
8317
8318 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
8319
8320         PR target/35364
8321         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8322
8323 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
8324
8325         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
8326
8327         * config/i386/cpuid.h (bit_AES): New.
8328         (bit_PCLMUL): Likewise.
8329
8330         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
8331         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
8332         SSE2 if AES or PCLMUL is enabled.
8333         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
8334         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
8335         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
8336         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
8337         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
8338         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
8339         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
8340         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
8341         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
8342         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
8343         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
8344         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
8345         __builtin_ia32_aeskeygenassist128 and
8346         __builtin_ia32_pclmulqdq128.
8347         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
8348         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
8349         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
8350
8351         * config/i386/i386.h (TARGET_AES): New.
8352         (TARGET_PCLMUL): Likewise.
8353         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
8354
8355         * config/i386/i386.md (UNSPEC_AESENC): New.
8356         (UNSPEC_AESENCLAST): Likewise.
8357         (UNSPEC_AESDEC): Likewise.
8358         (UNSPEC_AESDECLAST): Likewise.
8359         (UNSPEC_AESIMC): Likewise.
8360         (UNSPEC_AESKEYGENASSIST): Likewise.
8361         (UNSPEC_PCLMUL): Likewise.
8362
8363         * config/i386/i386.opt (maes): New.
8364         (mpclmul): Likewise.
8365
8366         * config/i386/sse.md (aesenc): New pattern.
8367         (aesenclast): Likewise.
8368         (aesdec): Likewise.
8369         (aesdeclast): Likewise.
8370         (aesimc): Likewise.
8371         (aeskeygenassist): Likewise.
8372         (pclmulqdq): Likewise.
8373
8374         * config/i386/wmmintrin.h: New.
8375
8376         * doc/extend.texi: Document AES and PCLMUL built-in function.
8377
8378         * doc/invoke.texi: Document -maes and -mpclmul.
8379
8380 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
8381
8382         * function.c (free_after_parsing): Replace with
8383         cxx_push_function_context from C++ front-end.
8384         (allocate_struct_function): Don't call langhook.
8385         * langhooks.h (struct lang_hooks_for_functions): Delete.
8386         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
8387         member "function".
8388         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
8389         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
8390         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
8391         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
8392         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
8393         remove LANG_HOOKS_FUNCTION_INITIALIZER.
8394         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
8395
8396         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
8397         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
8398         
8399 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
8400
8401         PR c/35440
8402         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
8403         for all types.
8404
8405 2008-04-04  Richard Guenther  <rguenther@suse.de>
8406
8407         PR middle-end/35823
8408         * fold-const.c (optimize_minmax_comparison): Use the correct
8409         type for the constant in the simplified comparison.
8410
8411 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
8412
8413         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
8414         Pass L2 size as "--param l2-cache-size" to the compiler.
8415         (decode_l2_cache): New function to decode L2 cache parameters using
8416         0x8000006 extended cpuid function.
8417         (detect_caches_amd): Determine parameters of L2 cache using
8418         decode_l2_caches function.
8419         (decode_caches_intel): Decode L2 cache parameters.
8420         (detect_caches_intel): Determine L2 cache parameters using
8421         decode_caches_intel and decode_l2_caches functions.
8422
8423 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
8424
8425         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
8426         secondary input reload for subword loads from the constant pool.
8427
8428 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
8429
8430         PR target/35713
8431         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
8432           constants of the appropriate size for runtime calculations.
8433
8434         PR c/35712
8435         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
8436           decimal-float literal constant zero.
8437
8438 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
8439
8440         PR c/35738
8441         * c-parser.c (c_parser_omp_atomic): Call
8442         default_function_array_conversion on the RHS.
8443
8444         PR middle-end/35818
8445         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
8446         call is_variable_sized if decl has incomplete type.
8447
8448 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
8449
8450         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
8451
8452 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
8453
8454         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
8455         iterators.
8456         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
8457         (sgt<u>): Merge sgt and sgtu into new expander.
8458         (sgt, sgtu): Remove expanders.
8459         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
8460         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
8461         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
8462         *sgtu_<mode>_mips16 into new pattern.
8463         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
8464         (sge<u>): Merge sge and sgeu into new expander.
8465         (sge, sgeu): Remove expanders.
8466         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
8467         new pattern.
8468         (*sge_<mode>, second *sge_<mode>): Remove patterns.
8469         (slt<u>): Merge slt and sltu into new expander.
8470         (slt, sltu): Remove expanders.
8471         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
8472         (*slt_<mode>, *sltu_<mode>): Remove patterns.
8473         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
8474         *sltu_<mode>_mips16 into new pattern.
8475         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
8476         (sle<u>): Merge sle and sleu into new expander.
8477         (sle, sleu): Remove expanders.
8478         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
8479         (*sle_<mode>, *sleu_<mode>): Remove patterns.
8480         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
8481         *sleu_<mode>_mips16 into new pattern.
8482         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
8483
8484 2008-04-03  Jan Hubicka  <jh@suse.cz>
8485
8486         PR tree-optimization/35795
8487         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
8488         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8489         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
8490         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
8491         * score/score3.c (score3_output_mi_thunk): Likewise.
8492         * score/score7.c (score7_output_mi_thunk): Likewise.
8493         * mips/mips.c (mips_output_mi_thunk): Likewise.
8494
8495 2008-04-03  Richard Guenther  <rguenther@suse.de>
8496
8497         * tree-vrp.c (extract_range_from_unary_expr): Handle all
8498         conversions.  Simplify code.
8499
8500 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
8501
8502         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
8503
8504 2008-04-03  Tom Tromey  <tromey@redhat.com>
8505             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8506
8507         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8508         * config/bfin/t-bfin-linux (generated_files): Add
8509         linux-sysroot-suffix.h.
8510         * doc/install.texi (Prerequisites): Require make 3.80.
8511         * doc/sourcebuild.texi (Front End Directory): Document new
8512         variable.
8513         * Makefile.in (generated_files): New variable.
8514         (ALL_HOST_OBJS): New variable.
8515         ($(ALL_HOST_OBJS)): New target.
8516
8517 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
8518
8519         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
8520         (remap_block): Call id->transform_lang_insert_block instead
8521         of langhook.
8522         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
8523         Set id.transform_lang_insert_block to NULL.
8524         (clone_body): Move to cp/optimize.c
8525         * tree-inline.h (struct copy_body_data): Change
8526         transform_lang_insert_block to function pointer.
8527         (copy_generic_body, copy_decl_no_change): Export.
8528         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
8529         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
8530         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
8531
8532         * c-tree.h (insert_block): Kill.
8533         * c-decl.c (insert_block): Kill.
8534
8535 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
8536
8537         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8538         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
8539         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
8540         argument.
8541         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
8542         argument, call {push,pop}_function_context from here.
8543         * c-parser.c: Use c_{push,pop}_function_context.
8544
8545         * function.c (push_function_context_to): Move meat ...
8546         (push_function_context): ... here.  Simplify.
8547         * function.c (pop_function_context_from): Move meat ...
8548         (pop_function_context): ... here.  Simplify.
8549         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
8550         leave_nested).
8551         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8552         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
8553         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
8554         * tree.h (push_function_context_to, pop_function_context_from): Remove.
8555
8556 2008-04-03  Ben Elliston  <bje@au.ibm.com>
8557
8558         * expmed.c (extract_force_align_mem_bit_field): Remove.
8559
8560 2008-04-03  Richard Guenther  <rguenther@suse.de>
8561
8562         PR middle-end/35800
8563         * expr.h (try_casesi): Adjust prototype.
8564         * expr.c (try_casesi): Take fallback label as extra parameter.
8565         Use that for gen_casesi if default_label is NULL.
8566         * stmt.c (expand_case): Pass fallback label to try_casesi,
8567         make sure to fill gaps with a fallback label if default_label
8568         is not present.
8569
8570 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
8571
8572         PR target/35801
8573         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
8574
8575 2008-04-03  Ben Elliston  <bje@au.ibm.com>
8576
8577         * expmed.c (extract_split_bit_field): Remove if (0) code.
8578         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
8579         (do_ds_constraint): Likewise.
8580
8581 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
8582
8583         * doc/cppopts.texi (-dU): Document.
8584         * c-common.h (flag_dump_macros): Update comment.
8585         * c-opts.c (handle_OPT_d): Handle -dU.
8586         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
8587         dump_queued_macros, cb_used_define, cb_used_undef): New.
8588         (init_pp_output): Handle -dU.
8589         (cb_line_change): Call dump_queued_macros.
8590         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
8591
8592 2008-04-02  Anatoly Sokolov <aesok@post.ru>
8593
8594         * config/avr/predicates.md (io_address_operand): New predicate. 
8595         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
8596         * config/avr/avr.c (avr_io_address_p): Remove function.
8597         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
8598         'avr_io_address_p' function.
8599         (out_movhi_r_mr): (Ditto.).
8600         (out_movqi_mr_r): (Ditto.).
8601         (out_movhi_mr_r): (Ditto.).
8602         (avr_address_cost): (Ditto.).
8603
8604 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
8605
8606         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
8607         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
8608         in 32bit mode when XMM registers are available to avoid store
8609         forwarding stalls.
8610         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
8611         corresponding post-reload splitters.
8612
8613 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8614
8615         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
8616         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
8617         __builtin_ia32_roundss.
8618         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
8619         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
8620         __builtin_ia32_roundss.
8621         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
8622         IX86_BUILTIN_SHUFPD here.
8623
8624 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8625
8626         * config/i386/i386.md (plogic): New.
8627         (plogicprefix): Likewise.
8628
8629         * config/i386/mmx.md (mmx_<code><mode>3): New.
8630         (mmx_and<mode>3): Removed.
8631         (mmx_ior<mode>3): Likewise.
8632         (mmx_xor<mode>3): Likewise.
8633
8634         * config/i386/sse.md (<code><mode>3): New.
8635         (*<code><mode>3): Likewise.
8636         (*<code><mode>3): Likewise.
8637         (<code><mode>3): Likewise.
8638         (*sse_<code><mode>3): Likewise.
8639         (*sse2_<code><mode>3): Likewise.
8640         (<code>tf3): Likewise.
8641         (*<code>tf3): Likewise.
8642         (and<mode>3): Likewise.
8643         (*and<mode>3): Likewise.
8644         (ior<mode>3): Removed.
8645         (*ior<mode>3): Likewise.
8646         (xor<mode>3): Likewise.
8647         (*xor<mode>3): Likewise.
8648         (*and<mode>3): Likewise.
8649         (*ior<mode>3): Likewise.
8650         (*xor<mode>3): Likewise.
8651         (and<mode>3): Likewise.
8652         (*sse_and<mode>3): Likewise.
8653         (*sse2_and<mode>3): Likewise.
8654         (andtf3): Likewise.
8655         (*andtf3): Likewise.
8656         (ior<mode>3): Likewise.
8657         (*sse_ior<mode>3): Likewise.
8658         (*sse2_ior<mode>3): Likewise.
8659         (iortf3): Likewise.
8660         (*iortf3): Likewise.
8661         (xor<mode>3): Likewise.
8662         (*sse_xor<mode>3): Likewise.
8663         (*sse2_xor<mode>3): Likewise.
8664         (xortf3): Likewise.
8665         (*xortf3): Likewise.
8666
8667 2008-04-02  Richard Guenther  <rguenther@suse.de>
8668
8669         PR tree-optimization/14495
8670         PR tree-optimization/34793
8671         * tree-vrp.c (struct switch_update): New structure.
8672         (to_remove_edges, to_update_switch_stmts): New VECs.
8673         (simplify_switch_using_ranges): New function.  Remove not taken
8674         case labels and edges.
8675         (simplify_stmt_using_ranges): Call it.
8676         (identify_jump_threads): Mark edges we have queued for removal
8677         so we don't thread them.
8678         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
8679         case label vector.
8680         * tree-cfg.c (group_case_labels): Deal with missing default label.
8681         (tree_verify_flow_info): Allow missing default label.
8682         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
8683         (emit_case_nodes): Likewise.
8684         (expand_case): Do not rely on the default label to be present.
8685         * expr.c (try_casesi): Deal with NULL default_label.
8686         (do_tablejump): Likewise.
8687
8688 2008-04-02  Richard Guenther  <rguenther@suse.de>
8689
8690         PR tree-optimization/14495
8691         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
8692         SWITCH_EXPR here ...
8693         (vrp_visit_switch_stmt): ... but here (new function).
8694         (find_case_label_index): New helper function.
8695         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
8696
8697 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8698
8699         * fwprop.c: Fix ISO-C99ism.
8700
8701 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8702
8703         PR bootstrap/35752
8704         * Makefile.in (objdir): Set it here.
8705         * configure.ac: Not here.  Find dynamic linker characteristics.
8706         * exec-tool.in: Use them.
8707         * aclocal.m4: Regenerate.
8708         * configure: Regenerate.
8709
8710 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8711
8712         * expr.c (expand_var): Delete it.
8713         * expr.h (expand_var): Delete prototype.
8714         * function.c (expand_function_start): Use expand_decl instead.
8715         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
8716         langhook.
8717
8718 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
8719
8720         PR rtl-optimization/35542
8721         * fwprop.c (forward_propagate_and_simplify): Replace
8722         loc_reg_mentioned_in_p with reg_mentioned_p.
8723
8724 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8725
8726         PR rtl-optimization/35281
8727         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
8728         (propagate_rtx_1): Handle PR_HANDLE_MEM.
8729         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
8730         (varying_mem_p): Move above propagate_rtx.
8731         (all_uses_available_at): Do not check MEMs.
8732
8733 2008-04-02  Rafael Espindola  <espindola@google.com>
8734
8735         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
8736         (register_edge_assert_for_2): Split the cond argument.
8737         (register_edge_assert_for_1): Adjust for the change in
8738         register_edge_assert_for_2.
8739         (register_edge_assert_for): Split the cond argument.
8740         (find_switch_asserts): Adjust for the change in
8741         register_edge_assert_for.
8742
8743 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
8744
8745         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
8746         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
8747         offsets for 64-bit mingw.
8748         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
8749         abi for x86_64-pc-mingw.
8750
8751 2008-04-02  Richard Guenther  <rguenther@suse.de>
8752
8753         * tree-vrp.c (extract_range_from_assert): Make sure to not
8754         produce range min/max with TREE_OVERFOW set.
8755         If merging a anti-range and a range keep the anti-range if
8756         the range covers all values of the type.
8757         (register_edge_assert_for_2): Only allow sign-changing
8758         conversions in detecting canonical range checks.  Also
8759         register an assert for the unsigned name if useful.
8760
8761         PR tree-optimization/35787
8762         * tree-vrp.c (vrp_val_max): New function.
8763         (vrp_val_min): Likewise.
8764         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
8765         (vrp_val_is_min): Likewise.
8766         (supports_overflow_infinity): Use vrp_val_{min,max}.
8767         (negative_overflow_infinity): Likewise.
8768         (positive_overflow_infinity): Likewise.
8769         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
8770         (is_positive_overflow_infinity): Likewise.
8771         (is_overflow_infinity): Likewise.
8772         (avoid_overflow_infinity): Use vrp_val_{min,max} and
8773         vrp_val_is_{min,max}.
8774         (set_and_canonicalize_value_range): Canonicalize anti-ranges
8775         to ranges if possible.  Avoid empty ranges.
8776
8777 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8778
8779         PR middle-end/35705
8780         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
8781         the expression is a function address.
8782
8783 2008-04-01  George Helffrich  <george@gcc.gnu.org>
8784
8785         PR fortran/35154, fortran/23057
8786         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
8787         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
8788         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
8789         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
8790         in common.
8791         (dbxout_syms): Check for COMMON-based symbol and wrap in
8792         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
8793         in bracket for efficiency.
8794
8795         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
8796         using DW_TAG_common_block + member offset.
8797         (add_pubname_string): New function.
8798         (dw_expand_expr): New function to find block name and offset for
8799         COMMON var.
8800         (common_check): New function to check whether symbol in Fortran COMMON.
8801         (gen_variable_die): If COMMON, use DW_TAG_common_block.
8802
8803 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
8804
8805         PR c/35436
8806         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
8807
8808 2008-04-02  Ben Elliston  <bje@au.ibm.com>
8809
8810         * config/v850/v850.md (casesi): Remove if (0) code.
8811         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8812         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
8813
8814 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
8815
8816         * config/i386/i386.md (rex64suffix): New mode attribute.
8817         (floathi<mode>2): Disable expander for SSE math.
8818         (*floathi<mode>2_1): New insn insn_and_split pattern.
8819         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
8820         corresponding post-reload splitters.
8821         (*floathi<mode>2_i387): New macroized insn pattern.
8822         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
8823         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
8824         insn_and_split pattern.
8825         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
8826         New macroized instruction patterns and corresponding post-reload
8827         splitters.
8828         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
8829         and corresponding post-reload splitters.
8830         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
8831         New macroized instruction patterns.
8832         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
8833         macroized instruction patterns and corresponding post-reload splitters.
8834         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
8835         corresponding post-reload splitters.
8836         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
8837         New macroized instruction patterns.
8838         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
8839         corresponding post-reload splitters.
8840         (*floatsi<mode>2_i387): New macroized instruction patterns.
8841
8842 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
8843
8844         * config/i386/i386.md (smaxmin): New.
8845         (umaxmin): Likewise.
8846         (maxminiprefix): Likewise.
8847         (maxminfprefix): Likewise.
8848         (<code><mode>3): Likewise.
8849         (smin<mode>3): Removed.
8850         (smax<mode>3): Likewise.
8851
8852         * config/i386/mmx.md (mmx_<code>v2sf3): New.
8853         (mmx_<code>v4hi3): Likewise.
8854         (mmx_<code>v8qi3): Likewise.
8855         (mmx_smaxv2sf3): Removed.
8856         (mmx_sminv2sf3): Likewise.
8857         (mmx_umaxv8qi3): Likewise.
8858         (mmx_smaxv4hi3): Likewise.
8859         (mmx_uminv8qi3): Likewise.
8860         (mmx_sminv4hi3): Likewise.
8861
8862         * config/i386/sse.md (<addsub><mode>3): New.
8863         (*<addsub><mode>3): Likewise.
8864         (<sse>_vm<addsub><mode>3): Likewise.
8865         (<maxmin><mode>3): Likewise.
8866         (*<maxmin><mode>3_finite): Likewise.
8867         (*<maxmin><mode>3): Likewise.
8868         (<sse>_vm<maxmin><mode>3): Likewise.
8869         (sse3_h<addsub>v4sf3): Likewise.
8870         (sse3_h<addsub>v2df3): Likewise.
8871         (<maxmin>v16qi3): Likewise.
8872         (*<maxmin>v16qi3): Likewise.
8873         (<maxmin>v8hi3): Likewise.
8874         (*<maxmin>v8hi3): Likewise.
8875         (*sse4_1_<maxmin><mode>3): Likewise.
8876         (*sse4_1_<maxmin><mode>3): Likewise.
8877         (add<mode>3): Removed.
8878         (*add<mode>3): Likewise.
8879         (<sse>_vmadd<mode>3): Likewise.
8880         (sub<mode>3): Likewise.
8881         (*sub<mode>3): Likewise.
8882         (<sse>_vmsub<mode>3): Likewise.
8883         (smin<mode>3): Likewise.
8884         (*smin<mode>3_finite): Likewise.
8885         (*smin<mode>3): Likewise.
8886         (<sse>_vmsmin<mode>3): Likewise.
8887         (smax<mode>3): Likewise.
8888         (*smax<mode>3_finite): Likewise.
8889         (*smax<mode>3): Likewise.
8890         (<sse>_vmsmax<mode>3): Likewise.
8891         (sse3_haddv4sf3): Likewise.
8892         (sse3_haddv2df3): Likewise.
8893         (sse3_hsubv4sf3): Likewise.
8894         (sse3_hsubv2df3): Likewise.
8895         (umaxv16qi3): Likewise.
8896         (*umaxv16qi3): Likewise.
8897         (smaxv8hi3): Likewise.
8898         (*smaxv8hi3): Likewise.
8899         (*sse4_1_smax<mode>3): Likewise.
8900         (*sse4_1_umax<mode>3): Likewise.
8901         (uminv16qi3): Likewise.
8902         (*uminv16qi3): Likewise.
8903         (sminv8hi3): Likewise.
8904         (*sminv8hi3): Likewise.
8905         (*sse4_1_smin<mode>3): Likewise.
8906         (*sse4_1_umin<mode>3): Likewise.
8907
8908 2008-04-01  Rafael Espindola  <espindola@google.com>
8909
8910         * tree-cfg.c (verify_expr): remove in_phi.
8911         (verify_stmt): Don't call walk_tree with verify_expr. Use
8912         is_gimple_min_invariant instead of is_gimple_val.
8913
8914 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8915
8916         * doc/include/gpl_v3.texi: Update for manpage generation.
8917         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8918         gpl.texi.
8919         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8920         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8921         gpl_v3.texi instead of gpl.texi.
8922         (gpl.pod): New.
8923
8924 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8925
8926         PR pch/13675
8927         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8928
8929 2008-04-01  Rafael Espindola  <espindola@google.com>
8930
8931         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8932         (extract_code_and_val_from_cond): Use
8933         extract_code_and_val_from_cond_with_ops.
8934
8935 2008-04-01  Jan Hubicka  <jh@suse.cz>
8936
8937         * function.c (free_after_compilation): Free epilogue_delay_list.
8938         (prepare_function_start): Assert that previous compilation was freed.
8939
8940 2008-04-01  Jan Hubicka  <jh@suse.cz>
8941             Jim Wilson  <wilson@tuliptree.org>
8942             Andreas Tobler <andreast@gcc.gnu.org>
8943
8944         PR middle-end/35781
8945         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8946         rtl.emit instead cfun->emit.
8947         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8948         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8949
8950 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8951
8952         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8953
8954 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8955
8956         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8957         New options
8958         (fprofile-use): Add var flag_profile_use
8959         * coverage.c (coverage_begin_output): Do not open a gcno file for
8960         output only if -ftest-coverage is set.
8961         Do not add getpwd() to gcda file path.
8962         (build_gcov_info): Check the new flag
8963         flag_profile_datafile_relative_path.
8964         (coverage_init): Use profile_data_prefix.
8965         Read profile counter only if flag_profile_use is set.
8966         * opts.c (common_handle_option): New option fprofile-use=,
8967         fprofile-dir=, fprofile-generate=.
8968         * toplev.c (profile_data_prefix): New variable definition.
8969         * toplev.h (profile_data_prefix): New declaration.
8970         * doc/invoke.tex (Option Summary, Optimization Options):
8971         Add new options.
8972
8973 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8974
8975         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8976         use tmp consistently.
8977
8978         PR target/35695
8979         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8980         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8981         UNSPEC_FR_RECIP_APPROX_RES.
8982         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8983
8984 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8985
8986         PR c/35750
8987         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8988
8989 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8990
8991         PR middle-end/30186
8992         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8993         element of the vector via a pointer.
8994
8995 2008-03-31  Ian Lance Taylor  <iant@google.com>
8996
8997         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8998
8999 2008-03-31  Jan Hubicka  <jh@suse.cz>
9000
9001         * builtins.c (expand_builtin_setjmp_receiver): Update call of
9002         get_arg_pointer_save_area.
9003         * expr.c (init_expr): Just clear out rtl.expr.
9004         * function.c (free_after_compilation): Clear out whole RTL structure.
9005         (get_func_frame_size): Merge into ...
9006         (get_frame_size): ... this one.
9007         (assign_stack_local_1): Merge into ...
9008         (assign_stack_local): ... this one.
9009         (expand_function_end): Update call of get_arg_pointer_save_area.
9010         (get_art_pointer_save_area): Remove cfun argument.
9011         * function.h (emit_status): regno_pointer_align does not need length
9012         attribute. Move x_regno_reg_rtx to ...
9013         (regno_reg_rtx): ... new global array.
9014         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
9015         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
9016         apply_args_value, forced_labels, stack_pointer_delta):
9017         Update accestors.
9018         (struct varasm_status): Move here from varasm.c
9019         (struct rtl_data): New. Move here some fields from struct function.
9020         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
9021         frame_offset, stack_check_probe_note, arg_pointer_save_area,
9022         used_temp_slots avail_temp_slots, temp_slot_level,
9023         nonlocal_goto_handler_labels): Update accesstors.
9024         (rtl): New global variable.
9025         (struct function): Move some fileds to rtl_data.
9026         (get_arg_pointer_save_area): Update prototype.
9027         * emit-rtl.c (rtl): Declare.
9028         (regno_reg_rtx): Declare.
9029         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
9030         Update.
9031         (gen_reg_rtx): Update.
9032         (init_virtual_regs): Do not tate emit_status argument.
9033         (init_emit): Do not allocate emit.
9034         * varasm.c (varasm_statuc): Move to function.h.
9035         (n_deferred_constatns): Update accestor.
9036         (init_varasm_status): Do not allocate varasm_status.
9037         (force_const_mem, get_pool_size, output_constant_pool): Update.
9038         * stmt.c (force_label_rtx): Do not use x_ prefixes.
9039         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
9040
9041 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
9042
9043         PR rtl-optimization/35729
9044         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
9045         references.
9046
9047 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
9048
9049         PR target/32000
9050         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
9051         load/store if memory is unaligned.
9052         (*movti_rex64): Likewise.
9053
9054         * config/i386/predicates.md (misaligned_operand): New.
9055
9056 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
9057
9058         PR tree-opt/35431
9059         * tree-ssa-phiopt.c (conditional_replacement): Return early for
9060         complex types.
9061
9062 2008-03-31  Jan Beulich  <jbeulich@novell.com>
9063
9064         * config/ia64/constraints.md: Add 'j' constraint.
9065         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
9066         (movdi_internal): Likewise.
9067
9068 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
9069
9070         PR c/35748
9071         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
9072
9073 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9074
9075         PR target/35757
9076         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
9077         proper error message for the third argument on blendpd and
9078         blendps.
9079
9080         * config/i386/sse.md (blendbits): New.
9081         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
9082
9083 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
9084
9085         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
9086
9087 2008-03-30  Richard Guenther  <rguenther@suse.de>
9088
9089         PR middle-end/31023
9090         * fold-const.c (fold_sign_changed_comparison): Do leave
9091         conversions to base-types alone.
9092
9093 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9094
9095         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
9096         the link register if one altivec register is be saved.
9097
9098 2008-03-30  Ben Elliston  <bje@au.ibm.com>
9099
9100         * final.c (final_scan_insn): Remove if (0) code.
9101
9102 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
9103
9104         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
9105
9106 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9107
9108         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
9109         of V4SFmode to ix86_binary_operator_ok.
9110
9111 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
9112
9113         * config/i386/i386.c (override_options): Initialize
9114         ix86_veclib_handler to ix86_veclibabi_svml when
9115         -mveclibabi=svml is used.
9116         (ix86_veclibabi_svml): New function for SVML ABI style
9117         vectorization support.
9118         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
9119
9120 2008-03-28  Rafael Espindola  <espindola@google.com>
9121
9122         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
9123         (tree_binary_nonnegative_warnv_p): Make it public.
9124         (tree_single_nonnegative_warnv_p): Make it public.
9125         (tree_invalid_nonnegative_warnv_p): Make it public.
9126         (tree_unary_nonzero_warnv_p): Make it public.
9127         (tree_binary_nonzero_warnv_p): Make it public
9128         (tree_single_nonzero_warnv_p): Make it public.
9129         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
9130         (extract_range_from_binary_expr): Split the expr argument.
9131         (extract_range_from_unary_expr): Split the expr argument.
9132         (extract_range_from_comparison): Split the expr argument.
9133         (extract_range_from_expr): Use the new aux functions.
9134         (vrp_evaluate_conditional_warnv): Use
9135         vrp_evaluate_conditional_warnv_with_ops.
9136         * tree.h (tree_unary_nonzero_warnv_p): Declare.
9137         (tree_binary_nonzero_warnv_p): Declare.
9138         (tree_single_nonzero_warnv_p): Declare.
9139         (tree_expr_nonzero_warnv_p): Declare.
9140         (tree_unary_nonnegative_warnv_p): Declare.
9141         (tree_binary_nonnegative_warnv_p): Declare.
9142         (tree_single_nonnegative_warnv_p): Declare.
9143         (tree_invalid_nonnegative_warnv_p): Declare.
9144
9145 2008-03-28  Richard Guenther  <rguenther@suse.de>
9146
9147         PR tree-optimization/30317
9148         PR tree-optimization/30911
9149         PR tree-optimization/34793
9150         * tree-vrp.c (set_and_canonicalize_value_range): New function.
9151         (struct assert_locus_d): New member EXPR.
9152         (register_new_assert_for): Add EXPR parameter to support
9153         ASSERT_EXPR <name, expr OP limit>.
9154         (register_edge_assert_for_1): Adjust callers.
9155         (find_assert_locations): Likewise.
9156         (process_assert_insertions_for): Build condition from expression.
9157         (extract_range_from_assert): Handle ASSERT_EXPRs
9158         of the form ASSERT_EXPR <name, expr OP limit>.
9159         (register_edge_assert_for_2): New helper registering
9160         asserts for comparisons.  Recognize range tests of the form
9161         (unsigned)i - CST1 OP CST2.
9162         (register_edge_assert_for_1): Use it.
9163         (register_edge_assert_for): Likewise.
9164         (needs_overflow_infinity): Integer sub-types
9165         do not need overflow infinities.
9166         (vrp_val_is_max): The extreme values of integer sub-types
9167         are those of the base type.
9168         (vrp_val_is_min): Likewise.
9169         * tree.def (ASSERT_EXPR): Document extra allowed conditional
9170         expressions.
9171
9172 2008-03-28  Nick Clifton  <nickc@redhat.com>
9173
9174         PR target/31110
9175         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9176         Return GENERAL_REGS for stack adjustment reloads.
9177
9178 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9179
9180         PR target/31334
9181         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
9182         const_vector when all the vectors are constant.
9183
9184 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
9185
9186         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
9187         comparisons.
9188         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
9189         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
9190         (scc_sf): New.
9191         (s<code>_sf): Use new scc_sf attribute for opcode names.
9192
9193 2008-03-27  Tom Tromey  <tromey@redhat.com>
9194
9195         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
9196         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
9197         config/spu/t-spu-elf, config/i386/t-interix,
9198         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
9199         config/i386/x-darwin, config/i386/x-mingw32,
9200         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
9201         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
9202         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
9203         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
9204         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
9205         config/rs6000/x-darwin, config/rs6000/t-rs6000,
9206         config/score/t-score-elf, config/arm/t-strongarm-pe,
9207         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
9208         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
9209         Revert automatic dependency patch.
9210
9211 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9212
9213         PR target/35657
9214         * config/i386/i386.c (ix86_function_arg_boundary): Align
9215         decimal floating point to its natural boundary.
9216
9217 2008-03-27  Richard Guenther  <rguenther@suse.de>
9218
9219         PR middle-end/35716
9220         * fold-const.c (fold_comparison): Restrict distinct decl
9221         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
9222         solely rely on operand_equal_p.
9223
9224 2008-03-27  Richard Guenther  <rguenther@suse.de>
9225
9226         PR c/32511
9227         * c-common.c (handle_weak_attribute): Reject combination of
9228         weak and inline.
9229
9230 2008-03-27  Richard Guenther  <rguenther@suse.de>
9231
9232         PR tree-optimization/32810
9233         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
9234         conversions from DECL_INITIAL.
9235         (fold_const_aggregate_ref): Likewise from constructor elements.
9236
9237 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
9238
9239         * tree-affine.h (aff_combination_expand): Declare.
9240         (get_inner_reference_aff): Likewise.
9241         * tree-affine.c (aff_combination_expand): Split out from
9242         tree_to_aff_combination_expand.
9243         (get_inner_reference_aff): New function.
9244         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9245         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
9246         (struct lim_aux_data): sm_done field removed.
9247         (mem_ref_loc_p, mem_ref_locs_p): New types.
9248         (struct mem_ref): Added id, stored, accesses_in_loop,
9249         indep_loop, dep_loop, indep_ref, dep_ref fields.
9250         Removed is_stored, locs and next fields.
9251         (memory_accesses): New variable.
9252         (movement_possibility): Do not allow moving statements
9253         that store to memory.
9254         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
9255         New functions.
9256         (determine_max_movement): For statements with memory references,
9257         find the outermost loop in that the reference is independent.
9258         (move_computations_stmt): Mark the virtual operands for renaming.
9259         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
9260         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
9261         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
9262         add_vop_ref_mapping, create_vop_ref_mapping_loop,
9263         create_vop_ref_mapping, analyze_memory_references,
9264         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
9265         get_all_locs_in_loop, ref_always_accessed_p,
9266         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
9267         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
9268         store_motion_loop, store_motion): New functions.
9269         (struct vop_to_refs_elt): New type.
9270         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
9271         memref_hash, memref_eq, hoist_memory_references): Rewritten.
9272         (schedule_sm): Replaced by...
9273         (execute_sm): ... this.
9274         (determine_lsm_ref, hoist_memory_references,
9275         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
9276         find_more_ref_vops, free_mem_ref, free_mem_refs,
9277         determine_lsm_loop, determine_lsm): Removed.
9278         (tree_ssa_lim_finalize): Free data structures used by store motion.
9279         (tree_ssa_lim): Call analyze_memory_references.  Use
9280         store_motion instead of determine_lsm.
9281
9282 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
9283
9284         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
9285         rename tmake_file to m68hc11/t-m68hc11.
9286         (mcore): Set inhibit_libc to true.
9287         * config.host (alpha*-dec-*vms*): Set extra_programs.
9288         (interix3*): Don't use host_xmake_file.
9289         * configure.ac: Let config.gcc override inhibit_libc.
9290         * configure: Regenerate.
9291
9292         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
9293         * config/t-openbsd-thread: Remove commented out lines.
9294         
9295         * config/x-interix: Remove.
9296
9297         * config/m68hc11/t-m68hc11-gas: Rename to...
9298         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
9299
9300         * config/mcore/t-mcore: Remove T_CFLAGS.
9301         * config/mcore/t-mcore-pe: Likewise.
9302
9303 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
9304
9305         * configure.ac: Replace custom __GNU_SOURCE test with
9306         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
9307         * aclocal.m4: Regenerate.
9308         * configure: Regenerate.
9309         * config.in: Regenerate.
9310
9311 2008-03-27  Richard Guenther  <rguenther@suse.de>
9312
9313         * fold-const.c (target.h): Include.
9314         (fold_comparison): Fold comparison of addresses of decls
9315         that bind locally or of constants.  Consolidate address folding code.
9316         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
9317         results from fold_binary_to_constant.
9318         (compare_values_warnv): Likewise.
9319
9320 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
9321
9322         PR middle-end/35429
9323         * fold-const.c (fold_truthop): Check for integeral types when folding
9324         a == 0 && b == 0 and a != 0 || b != 0 .
9325
9326 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9327
9328         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
9329
9330 2008-03-26  Andreas Schwab  <schwab@suse.de>
9331
9332         * doc/invoke.texi: Fix use of @item vs. @itemx.
9333
9334 2008-03-26  Tom Tromey  <tromey@redhat.com>
9335
9336         * Makefile.in (build/gensupport.o, build/print-rtl.o,
9337         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
9338         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
9339         build/gencodes.o, build/genconditions.o, build/genconfig.o,
9340         build/genconstants.o, build/genemit.o, build/genextract.o,
9341         build/genflags.o, build/genmddeps.o, build/genopinit.o,
9342         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
9343         options.h.
9344
9345 2008-03-26  Richard Guenther  <rguenther@suse.de>
9346
9347         Revert
9348         2008-03-26  Richard Guenther  <rguenther@suse.de>
9349
9350         * fold-const.c (target.h): Include.
9351         (fold_comparison): Fold comparison of addresses of two decls
9352         that bind locally.  Consolidate address folding code.
9353
9354 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9355
9356         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
9357         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
9358         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
9359         dconstsqrt2, dconstthird, dconste and/or dconst10.
9360         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
9361         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
9362         dconstsqrt2, dconste): Delete.
9363         (init_emit_once): Likewise.  Simplify initializing dconstm1.
9364         Constify variable.
9365         * real.c (get_real_const): New.
9366         * real.h (dconst3, dconst10, dconstm2, dconstthird,
9367         dconstsqrt2, dconste): Delete.
9368         (real_value_const, get_real_const): New.
9369
9370 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
9371
9372         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
9373
9374         * config/i386/i386.c (ix86_function_arg_boundary): Check
9375         BIGGEST_ALIGNMENT instead of 128.
9376         (setup_incoming_varargs_64): Likewise.
9377
9378 2008-03-26  Tom Tromey  <tromey@redhat.com>
9379
9380         * Makefile.in (DEPFILES): Add missing '/'.
9381
9382 2008-03-26  Richard Guenther  <rguenther@suse.de>
9383
9384         * fold-const.c (target.h): Include.
9385         (fold_comparison): Fold comparison of addresses of two decls
9386         that bind locally.  Consolidate address folding code.
9387
9388 2008-03-26  Nick Clifton  <nickc@redhat.com>
9389
9390         PR target/31232
9391         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
9392         not allow INT+INT as a legitimate addressing mode.
9393
9394 2008-03-26  Richard Guenther  <rguenther@suse.de>
9395
9396         * tree-flow.h (widen_bitfield): Remove declaration.
9397         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
9398         (widen_bitfield): Remove function.
9399         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
9400         code.
9401
9402 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9403
9404         PR target/31558
9405         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
9406         error_mark_node's.
9407
9408 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9409
9410         PR rtl-optimization/35232
9411         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
9412         (forget_old_reloads_1, forget_marked_reloads): Don't clear
9413         reg_reloaded_call_part_clobbered here.
9414         (reload_regs_reach_end_p): New function.
9415         (reload_reg_rtx_for_input): New variable.
9416         (reload_reg_rtx_for_output): Likewise.
9417         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
9418         when reassigning a pseudo register.  Load reloadreg from 
9419         reload_reg_rtx_for_input, moving the mode and register
9420         calculation to...
9421         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
9422         instead of the original when deciding whether an input reload
9423         would be a no-op or whether an output reload can be deleted.
9424         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
9425         when setting up new_spill_reg_store.  Load it from
9426         reload_reg_rtx_for_output, moving the mode and register
9427         calculation to...
9428         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
9429         instead of the original when deciding whether an output reload
9430         would be a no-op.  Do the same when modifying insn notes.
9431         Use rtx_equal_p instead of == to compare the registers.
9432         (inherit_piecemeal_p): Take a mode and two register numbers
9433         as argument.
9434         (emit_reload_insns): Clear new_spill_reg_store for every hard
9435         register in the reload register.  Remove spill registers
9436         from reg_reloaded_valid before considering whether to record
9437         inheritance information for them.  Use reload_reg_rtx_for_output
9438         instead of reg_rtx when recording output reloads.  Use
9439         reload_reg_rtx_for_input instead of reg_rtx when recording
9440         input reloads.  Set or clear reg_reloaded_call_part_clobbered
9441         at the same time as setting reg_reloaded_valid.
9442         (delete_output_reload): Add a new_reload_reg parameter and use it
9443         instead of rld[j].reg_rtx.
9444         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
9445         calls accordingly.
9446
9447 2008-03-25  Tom Tromey  <tromey@redhat.com>
9448
9449         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
9450         (build/genattr.o): Likewise.
9451         (build/genattrtab.o): Likewise.
9452         (build/gencodes.o): Likewise.
9453         (build/genconfig.o): Likewise.
9454         (build/genconstants.o): Likewise.
9455         (build/genemit.o): Likewise.
9456         (build/genextract.o): Likewise.
9457         (build/genflags.o): Likewise.
9458
9459 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
9460         
9461         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
9462         instead of size_int for integer types.
9463         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
9464         to match type of MINUS_EXPR.
9465         
9466 2008-03-25  Tom Tromey  <tromey@redhat.com>
9467
9468         * configure: Rebuilt.
9469         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
9470         Makefile.
9471
9472 2008-03-25  Tom Tromey  <tromey@redhat.com>
9473
9474         * config/x-solaris (host-solaris.o): Update.
9475         * config/x-linux (host-linux.o): Update.
9476         * config/x-hpux (host-hpux.o): Update.
9477         * config/x-darwin (host-darwin.o): Update.
9478         * config/v850/t-v850e (v850-c.o): Update.
9479         * config/v850/t-v850 (v850-c.o): Update.
9480         * config/t-vxworks (vxworks.o): Update.
9481         * config/t-sol2 (sol2-c.o, sol2.o): Update.
9482         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
9483         * config/spu/t-spu-elf (spu-c.o): Update.
9484         (spu.o): Remove.
9485         * config/sh/t-symbian (sh-c.o): Update.
9486         (symbian.o): Update.
9487         * config/sh/t-sh (sh-c.o): Update.
9488         * config/score/t-score-elf (score7.o, score3.o): Update.
9489         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
9490         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
9491         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
9492         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
9493         (rs6000.o): Remove.
9494         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
9495         * config/m32c/t-m32c (m32c-pragma.o): Update.
9496         * config/ia64/t-ia64 (ia64-c.o): Update.
9497         * config/i386/x-mingw32 (host-mingw32.o): Update.
9498         * config/i386/x-i386 (driver-i386.o): Update.
9499         * config/i386/x-darwin (host-i386-darwin.o): Update.
9500         * config/i386/x-cygwin (host-cygwin.o): Update.
9501         * config/i386/t-nwld (nwld.o): Update.
9502         * config/i386/t-netware (netware.o): Update.
9503         * config/i386/t-interix (winnt.o): Update.
9504         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
9505         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
9506         msformat-c.o): Update.
9507         * config/bfin/t-bfin-linux (generated_files): Add
9508         linux-sysroot-suffix.h.
9509         * config/arm/t-wince-pe (pe.o): Update.
9510         * config/arm/t-strongarm-pe (pe.o): Update.
9511         * config/arm/t-pe (pe.o): Update.
9512         * config/arm/t-arm (arm-c.o): Update.
9513         * doc/install.texi (Prerequisites): Require make 3.80.
9514         * Makefile.in: Remove .o targets.
9515         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
9516         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
9517         (simple_generated_h, simple_generated_c): Move earlier.
9518         (generated_files): New variable.
9519         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
9520         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
9521         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
9522         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
9523         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
9524         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
9525         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
9526         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
9527         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
9528         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
9529         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
9530         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
9531         (.c.o): Remove.
9532         (COMPILE.base, COMPILE): New variables.
9533         (%.o): New pattern rule.
9534         (ALL_HOST_OBJS): New variable.
9535         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
9536         (dummy-checksum.o, cc1-checksum.o): Remove.
9537         (DRIVER_SHLIB): New variable.
9538         (DRIVER_DEFINES): Use it.
9539         (gencondmd.c): Move out of build/.
9540         (s-conditions): Update.
9541         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
9542         (ALL_BUILD_OBJS): Likewise.
9543         (build/%.o): Use BUILDCOMPILE.
9544         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
9545         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
9546         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
9547         build/gencheck.o, build/gencodes.o, build/genconditions.o,
9548         build/genconfig.o, build/genconstants.o, build/genemit.o,
9549         build/genextract.o, build/genflags.o, build/genmddeps.o,
9550         build/genopinit.o, build/genoutput.o, build/genpeep.o,
9551         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
9552         build/gen-protos.o, build/scan.o, build/fix-header.o,
9553         build/scan-decls.o): Simplify.
9554         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
9555         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
9556         prefix.o, toplev.o): Reduce to variable setting.
9557         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
9558         ($(out_object_file), gcc-options.o): New targets.
9559         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
9560         * configure: Rebuilt.
9561         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
9562         * doc/sourcebuild.texi (Front End Directory): Document new variable.
9563
9564 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
9565
9566         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
9567         complain when we hit an error, return ERROR_MARK_NODE.
9568
9569 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9570
9571         * config/sh/constraints.md (Pso, Psz): New constraints.
9572         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
9573         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
9574
9575 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9576
9577         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
9578         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
9579
9580 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9581
9582         * config/sh/sh.md (prefetch): Add condition for SH2A target.
9583         (prefetch_sh2a): New.   
9584
9585 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9586             Naveen.H.S  <naveen.hs@kpitcummins.com>
9587
9588         * config/sh/constraints.md (I28): New constraint.
9589         * config/sh/sh.c (broken_move): Add support for movi20s.
9590         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
9591
9592 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
9593             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9594             Naveen.H.S  <naveen.hs@kpitcummins.com>
9595
9596         * config/sh/sh.c (SH_ATTRIBUTES): Define.
9597         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
9598         (print_operand): Handle resbank in %@ operand code.
9599         (sh_encode_section_info): New.
9600         (push_regs): Add conditions for resbank.
9601         (sh_expand_epilogue): Likewise.
9602         (sh_insert_attributes): Likewise.
9603         (sh_attribute_table): Likewise.
9604         (sh_handle_resbank_handler_attribute): New.
9605         (sh2a_handle_function_vector_handler_attribute): New.
9606         (sh2a_is_function_vector_call): New.
9607         (sh2a_get_function_vector_number): New.
9608         (sh2a_function_vector_p): New.
9609         (sh_cfun_resbank_handler_p): New.
9610         * config/sh/sh.md (calli): Emit jsr/n if possible.
9611         (calli_tbr_rel): New.
9612         (calli_pcrel): Emit jsr/n if possible.
9613         (return_i): Emit rts/n if possible.
9614         (call_valuei_tbr_rel): New.
9615         (call_valuei_pcrel): Add condition for SH2A target.
9616         (call_value): Likewise.
9617         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
9618         (sh2a_get_function_vector_number): Likewise.
9619         (sh2a_is_function_vector_call): Likewise.
9620         * doc/extend.texi: Document TBR relative addressing of SH2A.
9621         (resbank): Add description for SH2A.
9622
9623 2008-03-24  Richard Guenther  <rguenther@suse.de>
9624
9625         PR c/22371
9626         * gimplify.c (gimplify_modify_expr): For frontend type-correct
9627         pointer assignments change conversions according to middle-end rules.
9628         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
9629         * configure.ac: Include type checking in yes.
9630         * configure: Regenerate.
9631
9632 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9633
9634         * diagnostic.c (diagnostic_count_diagnostic): Delete.
9635         (diagnostic_report_diagnostic): Update. Handle ICEs here.
9636         
9637 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
9638
9639         * gthr-vxworks.h (UNUSED): Define.
9640
9641 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
9642
9643         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
9644
9645 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
9646
9647         * doc/extend.texi (Function Attributes): Add missing comma in the
9648         example of the "alloc_size" attribute.
9649         
9650 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
9651
9652         Revert:
9653         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9654
9655         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9656         32bit host.
9657
9658         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9659
9660         PR target/35496
9661         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9662         of the underlying type of a MS bitfield layout to the natural
9663         alignment of the type.
9664
9665         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9666
9667         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9668         to their natural alignment to avoid store forwarding stalls.
9669
9670 2008-03-22  Richard Guenther  <rguenther@suse.de>
9671
9672         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
9673         For PHI nodes verify the address is invariant.
9674         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
9675         (get_symbol_constant_value): Use is_gimple_min_invariant.
9676         (maybe_fold_stmt_indirect): Likewise.
9677
9678 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
9679
9680         PR rtl-optimization/33927
9681         * Makefile.in (dse.o): Depend on $(TM_P_H).
9682         * expr.h (extract_low_bits): Declare.
9683         * expmed.c (extract_low_bits): New function.
9684         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
9685         * dse.c: Include tm_p.h.
9686         (find_shift_sequence): Remove the read_reg argument and return the
9687         read value.  Emit the instructions instead of returning them.
9688         Iterate on new_mode rather than calculating it each time.
9689         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
9690         source to NEW_MODE and extract_low_bits to convert the shifted
9691         value to READ_MODE.
9692         (replace_read): Allow the load and store to have different mode
9693         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
9694         or extraction instructions before trying the replacement.  Update
9695         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
9696
9697 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9698
9699         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9700         to their natural alignment to avoid store forwarding stalls.
9701
9702 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9703
9704         PR target/27946
9705         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
9706         encouraging but not allowing gprs for input;
9707         change the input constraint to !f#r.
9708         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
9709         gprs for output;
9710         change the output constraint to !f#r.
9711
9712 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
9713
9714         PR target/13958
9715         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
9716         corresponding post-reload splitters.
9717         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
9718         when x87 FP math is selected.
9719         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
9720         New function prototype.
9721         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
9722         unreachable function to ease macroization of insn patterns.
9723
9724 2008-03-21  Martin Jambor  <mjambor@suse.cz>
9725
9726         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
9727         reference dumps if ddr is NULL or dependence is unknown.
9728
9729 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9730
9731         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
9732         unsigned extension into account.
9733         (ATOMIC_COMPARE_AND_SWAP): Likewise.
9734         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
9735         Do computations on a scratch register.
9736
9737 2008-03-21  Richard Guenther  <rguenther@suse.de>
9738
9739         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9740         Use is_gimple_min_invariant instead of TREE_INVARIANT.
9741         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9742         * tree-ssa-dom.c (record_equality): Likewise.
9743         * tree-inline.c (copy_body_r): Likewise.
9744         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
9745         TREE_INVARIANT.
9746
9747 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9748
9749         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
9750         as 'delete_unused' argument.
9751
9752 2008-03-20  Richard Guenther  <rguenther@suse.de>
9753
9754         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
9755         special casing of constant qualifiers.
9756         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
9757         care about them in general.
9758         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
9759         regardless of their type.
9760         (fold_stmt_r): Forcefully fold *& if we end up with that.
9761
9762 2008-03-20  Paul Brook  <paul@codesourcery.com>
9763
9764         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
9765         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
9766         linker flags.
9767         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
9768         definition.
9769         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
9770         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
9771
9772 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
9773
9774         * common.opt (Wmudflap): New option.
9775         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
9776         (mx_register_decls): Likewise.
9777         (mudflap_finish_file): Likewise.
9778         * doc/invoke.texi: Document -Wno-mudflap.
9779
9780 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
9781
9782         * c-format.c (replace_format_name_to_system_name): New.
9783         (cmp_attribs): New.
9784         (convert_format_name_to_system_name): New.
9785         (decode_format_attr): Add use of convert_format_name_to_system_name.
9786         (format_types_orig): Add gnu_ prefix to names.
9787         (check_format_info_main): Special treating of \0 escaped names for
9788         supporting multi-character format specifiers as I32, I64.
9789         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
9790         (gnu_target_overrides_format_attributes): New.
9791         * c-format.h: Add structure target_ovr_attr to hold
9792         system specific formatter names.
9793         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
9794         msformat-c.o file to c_target_objs and cxx_target_objs.
9795         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9796         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
9797         (TARGET_N_FORMAT_TYPES): New.
9798         * config/i386/msformat-c.c: New.
9799         * config/i386/t-cygming: Add build rule for msformat-c.o.
9800         * doc/extend.texi: Add new format names gnu_* and ms_* and
9801         further details.
9802         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9803
9804 2008-03-20  Ira Rosen  <irar@il.ibm.com>
9805
9806         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
9807         optimizations turned on under -O3.
9808         (ftree-vectorize): Add that the flag is turned on with -O3.
9809
9810 2008-03-20  Ben Elliston  <bje@au.ibm.com>
9811
9812         * regmove.c (try_auto_increment): Fix spelling error in comment.
9813         * final.c (final_scan_insn): Likewise.
9814
9815 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
9816
9817         PR target/14552
9818         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
9819         allocator preferences for "y" and "r" class registers.
9820         ("*mov<mode>_internal"): Ditto.
9821         ("*movv2sf_internal_rex64"): Ditto.
9822         ("*movv2sf_internal"): Ditto.
9823
9824 2008-03-19  Michael Matz  <matz@suse.de>
9825
9826         PR middle-end/35616
9827         * calls.c (expand_call): Check overlap of arguments with call
9828         address for sibcalls.
9829
9830 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9831
9832         PR target/35496
9833         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9834         of the underlying type of a MS bitfield layout to the natural
9835         alignment of the type.
9836
9837 2008-03-19  Jan Hubicka  <jh@suse.cz>
9838
9839         PR other/35094
9840         * toplev.c (decode_d_option): Handle all CPP flags.
9841         * tree-vrp.c: Update tree_pass descriptors.
9842         * regrename.c: Update tree_pass descriptors.
9843         * fwprop.c: Update tree_pass descriptors.
9844         * doc/invoke.texi: Remove documentation of dropped -d? flags.
9845         * tree-into-ssa.c: Update tree_pass descriptors.
9846         * tree-dump.c: Update tree_pass descriptors.
9847         * tree-complex.c: Update tree_pass descriptors.
9848         * tree-dump.h: Update tree_pass descriptors.
9849         * see.c: Update tree_pass descriptors.
9850         * cgraphbuild.c: Update tree_pass descriptors.
9851         * tracer.c: Update tree_pass descriptors.
9852         * tree-loop-distribution.c: Update tree_pass descriptors.
9853         * cgraph.c: Update tree_pass descriptors.
9854         * postreload-gcse.c: Update tree_pass descriptors.
9855         * postreload.c: Update tree_pass descriptors.
9856         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
9857         * tree-tailcall.c: Update tree_pass descriptors.
9858         * tree-pass.h (tree_opt_pass): Rename to ...
9859         (opt_pass) ... this one; add "type" field and remove letter field.
9860         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
9861         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
9862         all_lowering_passes): Update declaration.
9863         * ipa-cp.c: Update tree_pass descriptors.
9864         * final.c: Update tree_pass descriptors.
9865         * omp-low.c: Update tree_pass descriptors.
9866         * tree-ssa-dse.c: Update tree_pass descriptors.
9867         * ipa-reference.c: Update tree_pass descriptors.
9868         * tree-ssa-uncprop.c: Update tree_pass descriptors.
9869         * auto-inc-dec.c: Update tree_pass descriptors.
9870         * reorg.c: Update tree_pass descriptors.
9871         * cgraphunit.c: Update tree_pass descriptors.
9872         * tree-ssa-copyrename.c: Update tree_pass descriptors.
9873         * tree-ssa-ccp.c: Update tree_pass descriptors.
9874         * df-core.c: Update tree_pass descriptors.
9875         * mode-switching.c: Update tree_pass descriptors.
9876         * tree-nomudflap.c: Update tree_pass descriptors.
9877         * modulo-sched.c: Update tree_pass descriptors.
9878         * ipa-pure-const.c: Update tree_pass descriptors.
9879         * cse.c: Update tree_pass descriptors.
9880         * web.c: Update tree_pass descriptors.
9881         * tree-stdarg.c: Update tree_pass descriptors.
9882         * tree-ssa-math-opts.c: Update tree_pass descriptors.
9883         * tree-ssa-dom.c: Update tree_pass descriptors.
9884         * tree-nrv.c: Update tree_pass descriptors.
9885         * tree-ssa-alias.c: Update tree_pass descriptors.
9886         * loop-init.c: Update tree_pass descriptors.
9887         * gimple-low.c: Update tree_pass descriptors.
9888         * ipa-inline.c: Update tree_pass descriptors.
9889         * tree-ssa-sink.c: Update tree_pass descriptors.
9890         * global.c: Update tree_pass descriptors.
9891         * ifcvt.c: Update tree_pass descriptors.
9892         * jump.c: Update tree_pass descriptors.
9893         * predict.c: Update tree_pass descriptors.
9894         * tree-ssa-loop.c: Update tree_pass descriptors.
9895         * recog.c: Update tree_pass descriptors.
9896         * dse.c: Update tree_pass descriptors.
9897         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
9898         * tree-eh.c: Update tree_pass descriptors.
9899         * regmove.c: Update tree_pass descriptors.
9900         * local-alloc.c
9901         * function.c: Update tree_pass descriptors.
9902         * tree-vectorizer.c: Update tree_pass descriptors.
9903         * gcse.c: Update tree_pass descriptors.
9904         * ipa-type-escape.c: Update tree_pass descriptors.
9905         * tree-if-conv.c: Update tree_pass descriptors.
9906         * init-regs.c: Update tree_pass descriptors.
9907         * ipa.c: Update tree_pass descriptors.
9908         * tree-ssa-phiopt.c: Update tree_pass descriptors.
9909         * rtl-factoring.c: Update tree_pass descriptors.
9910         * lower-subreg.c: Update tree_pass descriptors.
9911         * bt-load.c: Update tree_pass descriptors.
9912         * tree-dfa.c: Update tree_pass descriptors.
9913         * except.c: Update tree_pass descriptors.
9914         * emit-rtl.c: Update tree_pass descriptors.
9915         * cfgexpand.c: Update tree_pass descriptors.
9916         * tree-cfgcleanup.c: Update tree_pass descriptors.
9917         * cfgcleanup.c: Update tree_pass descriptors.
9918         * tree-ssa-pre.c: Update tree_pass descriptors.
9919         * tree-sra.c: Update tree_pass descriptors.
9920         * tree-mudflap.c: Update tree_pass descriptors.
9921         * tree-ssa-copy.c: Update tree_pass descriptors.
9922         * cfglayout.c: Update tree_pass descriptors.
9923         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9924         * tree-ssa-dce.c: Update tree_pass descriptors.
9925         * tree-ssa.c: Update tree_pass descriptors.
9926         * regclass.c: Update tree_pass descriptors.
9927         * integrate.c: Update tree_pass descriptors.
9928         * tree-optimize.c: Update tree_pass descriptors.
9929         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9930         * tree-object-size.c: Update tree_pass descriptors.
9931         * combine.c: Update tree_pass descriptors.
9932         * tree-outof-ssa.c: Update tree_pass descriptors.
9933         * bb-reorder.c: Update tree_pass descriptors.
9934         * stack-ptr-mod.c: Update tree_pass descriptors.
9935         * var-tracking.c: Update tree_pass descriptors.
9936         * tree-profile.c: Update tree_pass descriptors.
9937         * tree-vect-generic.c: Update tree_pass descriptors.
9938         * reg-stack.c: Update tree_pass descriptors.
9939         * sched-rgn.c: Update tree_pass descriptors.
9940         * tree-ssa-structalias.c: Update tree_pass descriptors.
9941         * tree-cfg.c: Update tree_pass descriptors.
9942         * passes.c (current_pass): Update declaration.
9943         (finish_optimization_passes): Update.
9944         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9945         (register_one_dump_file, register_dump_files_1, next_pass_1):
9946         Update arguments.
9947         (init_optimization_passes): Update handling of new types.
9948         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9949         * ipa-struct-reorg.c: Update tree_pass descriptors.
9950         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9951         * combine-stack-adj.c: Update tree_pass descriptors.
9952         * cfgrtl.c: Update tree_pass descriptors.
9953         * dce.c: Update tree_pass descriptors.
9954         * tree-ssanames.c: Update tree_pass descriptors.
9955
9956 2008-03-19  Richard Guenther  <rguenther@suse.de>
9957
9958         PR middle-end/35609
9959         * tree-ssa.c (walk_data): New structure.
9960         (warn_uninitialized_var): If not always_executed warn with "maybe"
9961         instead of "is".
9962         (execute_early_warn_uninitialized): Compute post-dominators.
9963         Initialize always_executed before processing each basic block.
9964
9965 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9966
9967         PR target/35504
9968         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9969         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9970
9971 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9972
9973         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9974
9975 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9976
9977         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9978         is true.
9979         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9980         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9981         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9982         target after ignore has been set, and move there also the commputation
9983         of subtarget and original_target.
9984         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9985         (LANG_HOOKS_INITIALIZER): Remove it.
9986         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9987
9988 2008-03-18  Richard Guenther  <rguenther@suse.de>
9989
9990         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9991         found an expression with constants, note that in the VN for the lhs.
9992         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9993         fold them to constants if possible.  Run cleanup_cfg if done so.
9994         (execute_pre): Return todo.
9995         (do_pre): Likewise.
9996         (execute_fre): Likewise.
9997         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9998         of constants.
9999         (get_prop_source_stmt): Look through pointer conversions.
10000
10001 2008-03-18  Jan Hubicka  <jh@suse.cz>
10002
10003         * tree-pretty-print.c: Include predict.h.
10004         (dump_generic_node): Dump predictor.
10005         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
10006         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
10007         * gimple-low.c (lower_stmt): Likewise.
10008         * expr.c (expand_expr_real): Likewise.
10009         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
10010         them.
10011         (build_predict_expr, build_predict_expr): New.
10012         * predict.h (predictor_name, build_predict_expr): Update.
10013         * c-typeck.c (c_finish_bc_stmt): Add prediction.
10014         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
10015         * predict.def (PRED_CONTINUE): Update hitrate.
10016         * tree.def (PREDICT_EXPR): Define.
10017         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
10018         do not handle BIND_EXPR.
10019         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
10020         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
10021         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
10022         operands.
10023
10024 2008-03-18  Michael Matz  <matz@suse.de>
10025
10026         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
10027
10028 2008-03-18  Richard Guenther  <rguenther@suse.de>
10029
10030         * tree-gimple.h (is_gimple_invariant_address): Declare.
10031         (is_gimple_constant): Likewise.
10032         * tree-gimple.c (is_gimple_constant): New function.
10033         (is_gimple_invariant_address): Likewise.
10034         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
10035         and is_gimple_invariant_address.
10036         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
10037         previous change.
10038         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
10039         an addressable base.
10040
10041 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
10042
10043         PR middle-end/35611
10044         * gimplify.c (gimplify_expr): Gimplify second operand of
10045         OMP_ATOMIC_LOAD.
10046
10047 2008-03-17  Richard Guenther  <rguenther@suse.de>
10048
10049         PR tree-optimization/19637
10050         * fold-const.c (fold_unary): Remove restrictions of removing
10051         intermediate pointer-conversions (P2)(P1)P0.
10052         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
10053         conversion to void pointer.
10054         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
10055
10056 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
10057
10058         PR debug/31510
10059         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
10060         emulated thread local variables.
10061
10062 2008-03-16  Richard Guenther  <rguenther@suse.de>
10063
10064         PR middle-end/35607
10065         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10066         expand TREE_INVARIANT operations that are not gimple invariant.
10067
10068 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
10069
10070         * doc/extend.texi (Alignment): Say that the ABI controls
10071         the __alignof__ for non-strict-alignment targets rather
10072         than being a recommendation.
10073
10074 2008-03-15  Paul Brook  <paul@codesourcery.com>
10075
10076         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
10077         annotations.
10078         (arm_output_fn_unwind): Mark functions that can not be unwound.
10079
10080 2008-03-15  Paul Brook  <paul@codesourcery.com>
10081
10082         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
10083         extension instructions.
10084
10085 2008-03-15  Richard Guenther  <rguenther@suse.de>
10086
10087         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
10088         and fold constant aggregate refs.
10089         (fold_const_aggregate_ref): Handle string constants
10090         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
10091         (evaluate_stmt): Simplify now that ccp_fold folds constant
10092         aggregate refs.
10093
10094 2008-03-15  Paul Brook  <paul@codesourcery.com>
10095
10096         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
10097         (extzv): Use gen_extzv_t2.
10098         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
10099
10100 2008-03-15  Richard Guenther  <rguenther@suse.de>
10101
10102         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
10103         (fold_const_aggregate_ref): Likewise.
10104         (get_value): Return NULL if we don't have any values.
10105         (ccp_finalize): Set const_val to NULL after freeing it.
10106         * tree-flow.h (get_symbol_constant_value): Declare.
10107         (fold_const_aggregate_ref): Likewise.
10108         * tree-ssa-sccvn.c (try_to_simplify): Use them.
10109
10110 2008-03-15  Richard Guenther  <rguenther@suse.de>
10111
10112         PR middle-end/35593
10113         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
10114         to not produce negative array indices if not allowed.  Add
10115         parameter to indicate that.
10116         (maybe_fold_offset_to_component_ref): Allow negative array
10117         indices only for the first member of a structure.
10118         (maybe_fold_offset_to_reference): Allow negative array indices.
10119         (maybe_fold_stmt_addition): Likewise.
10120
10121 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
10122             Anatoly Sokolov <aesok@post.ru>
10123
10124         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
10125         (avr_arch): Add ARCH_AVR6.
10126         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
10127         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
10128         instead of fixed value 2.
10129         (print_operand_address): Use gs() asm specifier instead of pm().
10130         (avr_assemble_integer): (Ditto.).
10131         (avr_output_addr_vec_elt): (Ditto.).
10132         (print_operand): Handle "!" code.
10133         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
10134         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
10135         (AVR_HAVE_EIJMP_EICALL): Define.
10136         (AVR_3_BYTE_PC): Redefine.
10137         (AVR_2_BYTE_PC): (Ditto.).
10138         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
10139         (LINK_SPEC): Add atmega2560 and atmega2561.
10140         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
10141         (crtm2561.o).
10142         * config/avr/avr.md (call_insn): Use eicall instead of icall 
10143         for 3 byte PC devices.
10144         (call_value_insn): (Ditto.).
10145         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
10146         (indirect_jump): Use only for for 2 byte PC devices.
10147         (*tablejump): (Ditto.).
10148         (*indirect_jump_avr6): Add insn.
10149         (*tablejump_rjmp): Don't use for 3 byte PC devices.
10150         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
10151         instead of ijmp for 3 byte PC devices.
10152         (__tablejump2__): (Ditto.).
10153         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
10154         (MULITLIB_DIRNAMES): (Ditto.). 
10155         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
10156
10157 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
10158
10159         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
10160         "sse2_umulsidi3".  Use V1DI mode for operand 0.
10161         ("mmx_psadbw"): Use V1DI mode for operand 0.
10162         * config/i386/i386-modes.def (V1SI): New vector mode.
10163         * config/i386/i386.c (struct builtin_description)
10164         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
10165         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
10166         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
10167         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
10168         v1di_ftype_v8qi_v8qi type.
10169         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
10170
10171         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
10172         __builtin_ia32_pmuludq]: Fix the mode of return value.
10173
10174 2008-03-15  Richard Guenther  <rguenther@suse.de>
10175
10176         PR middle-end/35595
10177         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
10178         being a PHI_NODE.
10179
10180 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
10181         
10182         * doc/invoke.texi (Option Summary, Xtensa Options): Document
10183         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
10184         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
10185         unless TARGET_SERIALIZE_VOLATILE is enabled.
10186         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
10187         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
10188         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
10189
10190 2008-03-14  Richard Guenther  <rguenther@suse.de>
10191
10192         PR tree-optimization/34172
10193         * tree-flow.h (refs_may_alias_p): Declare.
10194         (get_single_def_stmt): Likewise.
10195         (get_single_def_stmt_from_phi): Likewise.
10196         (get_single_def_stmt_with_phi): Likewise.
10197         * tree-dfa.c (refs_may_alias_p): New function.
10198         (get_single_def_stmt): Likewise.
10199         (get_single_def_stmt_from_phi): Likewise.
10200         (get_single_def_stmt_with_phi): Likewise.
10201         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
10202         (vn_reference_lookup_1): New helper function.
10203         (vn_reference_lookup): Walk the virtual use-def chain to
10204         continue searching for a match if the def does not alias the
10205         reference we are looking for.
10206
10207 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
10208
10209         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
10210         archive and Perzl.  Update The Written Word listing.
10211
10212 2008-03-14  Richard Guenther  <rguenther@suse.de>
10213
10214         PR tree-optimization/34043
10215         PR tree-optimization/33989
10216         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
10217         when doing FRE.
10218         (bitmap_find_leader): Use extra argument to verify dominance
10219         relationship inside a basic-block.
10220         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
10221         (find_leader_in_sets): Adjust.
10222         (create_component_ref_by_pieces): Take extra argument for
10223         dominance check, handle lookup failures.
10224         (find_or_generate_expression): Likewise.
10225         (create_expression_by_pieces): Likewise.
10226         (insert_into_preds_of_block): Adjust.
10227         (create_value_expr_from): If asked for, verify all operands
10228         are in the blocks AVAIL_OUT set.
10229         (make_values_for_stmt): Check for SSA_NAMEs that are life
10230         over an abnormal edge.
10231         (compute_avail): Remove such check.
10232         (do_SCCVN_insertion): New function.
10233         (eliminate): If we do not find a leader suitable for replacement
10234         insert a replacement expression from SCCVN if available.
10235         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
10236         (struct vn_ssa_aux): Add needs_insertion flag.
10237         * tree-ssa-sccvn.c (may_insert): New global flag.
10238         (copy_reference_ops_from_ref): Value-number union member access
10239         based on its size, not type and member if insertion is allowed.
10240         (visit_reference_op_load): For a weak match from union type
10241         punning lookup a view-converted value and insert a SSA_NAME
10242         for that value if that is not found.
10243         (visit_use): Make dumps shorter.  Do not disallow value numbering
10244         SSA_NAMEs that are life over an abnormal edge to constants.
10245         (free_scc_vn): Release inserted SSA_NAMEs.
10246         (run_scc_vn): New flag to specify whether insertion is allowed.
10247         Process SSA_NAMEs in forward order.
10248         * tree-ssa-loop-im.c (for_each_index): Handle invariant
10249         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
10250         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
10251         pointer type to/from integral types that do not change the
10252         precision to regular conversions.
10253
10254 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
10255
10256         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10257         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10258         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
10259         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
10260         input arguments and the mode of return value.  Built-in functions
10261         that operate on whole 64-bit MMX register now use V1DI mode.
10262
10263 2008-03-13  Alon Dayan  <alond@il.ibm.com>
10264             Olga Golovanevsky  <olga@il.ibm.com>
10265
10266         PR tree-optimization/35041
10267         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
10268         to locate the right position in a statement.
10269
10270 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
10271
10272         PR target/34000
10273         PR target/35553
10274         * config/i386/xmmintrin.h:  Change all static inline functions to
10275         extern inline and add __gnu_inline__ attribute.
10276         * config/i386/bmintrin.h: Ditto.
10277         * config/i386/smmintrin.h: Ditto.
10278         * config/i386/tmmintrin.h: Ditto.
10279         * config/i386/mmintrin-common.h: Ditto.
10280         * config/i386/ammintrin.h: Ditto.
10281         * config/i386/emmintrin.h: Ditto.
10282         * config/i386/pmmintrin.h: Ditto.
10283         * config/i386/mmintrin.h: Ditto.
10284         * config/i386/mm3dnow.h: Ditto.
10285
10286 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
10287
10288         PR middle-end/35185
10289         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
10290         (lower_omp_2): New function.
10291         (lower_omp_1, lower_omp): Rewritten.
10292
10293 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
10294
10295         PR 35054
10296         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
10297         with the phrase "Microsoft Windows compilers".
10298         (Push/Pop Macro Pragmas): New subsection. Document
10299         #pragma push_macro and pragma pop_macro.
10300
10301 2008-03-12  Paul Brook  <paul@codesourcery.com>
10302
10303         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
10304
10305 2008-03-12  Paul Brook  <paul@codesourcery.com>
10306
10307         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
10308         (thumb2_alusi3_short): Exclude PLUS and MINUS.
10309         (thumb2_addsi_shortim): Rename ...
10310         (thumb2_addsi_short): ... to this.  Allow register operands.
10311         (thumb2_subsi_short): New pattern.
10312         (thumb2_one_cmplsi2_short,
10313         thumb2_negsi2_short): New patterns and peepholes.
10314
10315 2008-03-12  Paul Brook  <paul@codesourcery.com>
10316
10317         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
10318
10319 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
10320
10321         * config/i386/i386.md (int_cond): New code iterator.
10322         (fp_cond): Ditto.
10323         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
10324         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
10325         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
10326         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
10327         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
10328         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
10329         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
10330         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
10331
10332 2008-03-12  Paul Brook  <paul@codesourcery.com>
10333
10334         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
10335         instead of {arm,thumb}_compute_save_reg_mask.
10336         (output_return_instruction): Ditto.
10337         (thumb_unexpanded_epilogue): Ditto.
10338         (thumb1_expand_prologue): Ditto.
10339         (thumb1_output_function_prologue): Ditto.
10340         (arm_set_return_address): Ditto.
10341         (thumb_set_return_address): Ditto.
10342         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
10343         regs to achieve stack alignment.
10344         (thumb1_compute_save_reg_mask): Fix compiler warning.
10345         (arm_output_epilogue): Use offsets->saved_regs_mask.
10346         Adjust stack pointer by poping call clobered registers.
10347         (arm_expand_prologue): Use offsets->saved_regs_mask.
10348         Adjust stack pointer by pushing extra registers.
10349         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
10350
10351 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
10352
10353         PR tree-opt/35422
10354         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
10355         conversion to the operands of a multiplication.
10356
10357 2008-03-12  Richard Guenther  <rguenther@suse.de>
10358
10359         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
10360         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
10361         * timevar.def (TV_TREE_PHIPROP): Add.
10362         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
10363         pass description.  Use TV_TREE_PHIPROP.
10364         * tree-ssa-forwprop.c: Remove phiprop code.
10365
10366 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
10367
10368         PR middle-end/35549
10369         * omp-low.c (maybe_lookup_decl): Constify first argument.
10370         (use_pointer_for_field): Change last argument from bool to
10371         omp_context *.  Disallow shared copy-in/out in nested
10372         parallel if decl is shared in outer parallel too.
10373         (build_outer_var_ref, scan_sharing_clauses,
10374         lower_rec_input_clauses, lower_copyprivate_clauses,
10375         lower_send_clauses, lower_send_shared_vars): Adjust callers.
10376
10377 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
10378             Ira Rosen  <irar@il.ibm.com>
10379
10380         * tree-vectorizer.c (free_stmt_vec_info): New function.
10381         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
10382         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
10383         * tree-vectorizer.h (free_stmt_vec_info): Declare.
10384         * tree-vect-transform.c (vectorizable_conversion): Free
10385         vec_oprnds0 if it was allocated.
10386         (vect_permute_store_chain): Remove unused VECs.
10387         (vectorizable_store): Free VECs that are allocated in the..
10388         function.
10389         (vect_transform_strided_load, vectorizable_load): Likewise.
10390         (vect_remove_stores): Simplify the code.
10391         (vect_transform_loop): Move code to vect_remove_stores().
10392         Call vect_remove_stores() and free_stmt_vec_info().
10393
10394 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10395
10396         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
10397         TARGET_HPUX.  Revise comment.
10398         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
10399         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
10400         Use sr4 variant of `be' instruction when not generating PIC code.
10401         (attr_length_call): Adjust for above change.
10402
10403 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10404
10405         * ipa-reference.c (static_execute): Remove module_statics_const and
10406         associated setting code.
10407
10408 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
10409
10410         PR target/35540
10411         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
10412         predicate for operand 1.
10413         (paritysi2_cmp): Use register_operand predicate for operand 2.
10414         Use earlyclobber modifier for operand 1.  Remove support for
10415         memory operands.
10416         (paritydi2_cmp): Use register_operand predicate for operand 3.
10417         Use earlyclobber modifier for operand 1.  Remove support for
10418         memory operands.
10419
10420 2008-03-11  Paul Brook  <paul@codesourcery.com>
10421             Vladimir Prus  <vladimir@codesourcery.com>
10422
10423         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
10424         (arm_compute_save_reg0_reg12_mask): Always
10425         check if register 11 must be saved.  Always safe hard frame pointer
10426         when frame_pointer_needeed.
10427         (arm_compute_save_reg_mask): Save IP and PC
10428         only with apcs frames.
10429         (arm_output_epilogue): Adjust Thumb2 codepath to
10430         be also invoked and work for ARM non-apcs frames.
10431         (arm_expand_prologue): Don't bother saving IP
10432         for non-apcs frame, since it's not clobbered by
10433         prologue code.  Implement non-apcs frame
10434         layout.
10435
10436 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
10437
10438         PR rtl-optimization/35281
10439         * expr.c (convert_move): Use a new pseudo for the intermediate
10440         from_mode->word_mode result.
10441
10442 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
10443
10444         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
10445         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
10446         * toplev.c (compile_file): Don't call it.
10447
10448 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
10449
10450         PR middle-end/35526
10451         * expr.c (store_expr): Call emit_block_move if the mode
10452         of "temp" RTX is BLKmode.
10453
10454 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10455             Richard Guenther  <rguenther@suse.de>
10456
10457         PR tree-optimization/31358
10458         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
10459         the step with a NULL_TREE.
10460         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
10461         to sizetype if type is a pointer type.
10462         (add_candidate_1): Don't convert the base and step to
10463         the generic type if the orginal type is a pointer type.
10464         (add_iv_value_candidates): Use sizetype for the step
10465         if type is a pointer type.
10466         (cand_value_at): Likewise.
10467         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
10468         for pointer types.
10469         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
10470         Don't convert the tem affine to the type.
10471         (add_elt_to_tree): Use sizetype for the step if a pointer.
10472         Use POINTER_PLUS_EXPR for pointers.
10473         (aff_combination_to_tree): Use sizetype for the step if a
10474         pointer.
10475
10476 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
10477
10478         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
10479         Remove commutativity hint.
10480
10481 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
10482
10483         PR c/35438
10484         PR c/35439
10485         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
10486         errorneous type.  Check that v is a VAR_DECL.
10487
10488         PR middle-end/35099
10489         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
10490
10491 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
10492
10493         PR tree-optimization/35494
10494         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
10495         may be overriden at link and run time.
10496
10497 2008-03-10  Richard Guenther  <rguenther@suse.de>
10498
10499         PR tree-optimization/34677
10500         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
10501         (poolify_tree): Likewise.
10502         (modify_expr_template): Likewise.
10503         (poolify_modify_stmt): Likewise.
10504         (insert_fake_stores): Handle all component-ref style stores
10505         in addition to INDIRECT_REF.  Also handle complex types.
10506         Do not poolify the inserted load.
10507         (realify_fake_stores): Do not rebuild the tree but only
10508         make it a SSA_NAME copy.
10509         (init_pre): Remove initialzation of modify_expr_template.
10510         Do not allocate modify_expr_node_pool.
10511         (fini_pre): Do not free modify_expr_node_pool.
10512
10513 2008-03-10  Paul Brook  <paul@codesourcery.com>
10514
10515         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
10516         to avoid conflicts.
10517
10518 2008-03-10  Paul Brook  <paul@codesourcery.com>
10519             Mark Shinwell  <shinwell@codesourcery.com>
10520
10521         * config/arm/cortex-r4.md: New.
10522         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
10523         insn attributes.
10524         * config/arm/arm.md: Include cortex-r4.md.
10525         (insn): Add smmls, sdiv and udiv values.
10526         (generic_sched): Don't use generic scheduling for Cortex-R4.
10527         (arm_issue_rate): New function.
10528         (TARGET_SCHED_ISSUE_RATE): Define.
10529
10530 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
10531
10532         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
10533
10534 2008-03-10  Richard Guenther  <rguenther@suse.de>
10535
10536         * tree-ssa-pre.c (get_sccvn_value): Simplify.
10537         (compute_avail): Do not add stmt uses to AVAIL_OUT.
10538
10539 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
10540
10541         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
10542         Set default to true.
10543
10544 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10545
10546         * c.opt (Wsynth): Deprecate.
10547         * doc/invoke.texi (Option Summary, Warning Options): Document
10548         -Wno-format-contains-nul.
10549
10550 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
10551
10552         PR target/35496
10553         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
10554         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
10555
10556 2008-03-09  Ira Rosen  <irar@il.ibm.com>
10557
10558         * config/rs6000/rs6000.c (builtin_description): Rename vector
10559         left shift operations.
10560         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
10561         (altivec_vsl<VI_char>): Rename to ...
10562         (ashl<mode>3): ... new name.
10563         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
10564         gen_ashlv4si3.
10565         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
10566
10567 2008-03-08  Richard Guenther  <rguenther@suse.de>
10568
10569         * coverage.h (tree_coverage_counter_addr): Declare.
10570         * coverage.c (tree_coverage_counter_addr): New function.
10571         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
10572         before using again.
10573         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
10574         (tree_gen_one_value_profiler): Likewise.
10575         (tree_gen_ic_profiler): Likewise.
10576         (tree_gen_average_profiler): Likewise.
10577         (tree_gen_ior_profiler): Likewise.
10578
10579 2008-03-08  Richard Guenther  <rguenther@suse.de>
10580
10581         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
10582         (vn_binary_op_insert): Likewise.
10583         (vn_unary_op_lookup): Likewise.
10584         (vn_unary_op_insert): Likewise.
10585         (vn_nary_op_lookup): Declare.
10586         (vn_nary_op_insert): Likewise.
10587         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
10588         and binary hashes, use a single obstack for unary_op_pool
10589         and binary_op_pool.
10590         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
10591         a single struct vn_nary_op_s.  Store tree code length and
10592         a variable number of operands.
10593         (struct vn_reference_op_struct): Remove unused op2.
10594         (vn_reference_op_eq): Do not compare op2.
10595         (vn_reference_op_compute_hash): Do not compute hash of op2.
10596         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
10597         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
10598         with vn_nary_op_compute_hash.
10599         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
10600         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
10601         vn_nary_op_lookup.
10602         (vn_unary_op_insert, vn_binary_op_insert): Replace with
10603         vn_nary_op_insert.
10604         (visit_unary_op): Call nary functions.
10605         (visit_binary_op): Likewise.
10606         (process_scc): Adjust for struct vn_tables_s changes.
10607         (allocate_vn_table): Likewise.
10608         (free_vn_table): Likewise.
10609         * tree-vn.c (vn_add): Call nary functions.
10610         (vn_lookup): Likewise.
10611
10612 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
10613
10614         PR target/35498
10615         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
10616         wdst back after sync_compare_and_swapqhi_internal.
10617
10618 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
10619
10620         PR target/22152
10621         * config/i386/i386-modes.def (V1DI): New vector mode.
10622         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
10623         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
10624         (MMXMODE248): Ditto.
10625         (MMXMODE): Add V1DI mode.
10626         (mmxvecsize): Change DI mode to V1DI mode.
10627         ("mov<mode>): Use MMXMODEI8 mode iterator.
10628         ("*mov<mode>_internal_rex64"): Ditto.
10629         ("*mov<mode>_internal"): Ditto.
10630         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
10631         ("mmx_sub<mode>3"): Ditto.
10632         ("mmx_adddi3"): Remove insn pattern.
10633         ("mmx_subdi3"): Ditto.
10634         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
10635         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
10636         ("mmx_ashl<mode>3"): Ditto.
10637         ("mmx_lshrdi3"): Remove insn pattern.
10638         ("mmx_ashldi3"): Ditto.
10639         * config/i386/i386.c (classify_argument): Handle V1DImode.
10640         (function_arg_advance_32): Ditto.
10641         (function_arg_32): Ditto.
10642         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
10643         mmx_addv1di3 insn pattern.
10644         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
10645         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
10646         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
10647         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
10648         Remove definitions of built-in functions.
10649         (V1DI_type_node): New node.
10650         (v1di_ftype_v1di_int): Ditto.
10651         (v1di_ftype_v1di_v1di): Ditto.
10652         (v2si_ftype_v2si_si): Ditto.
10653         (v4hi_ftype_v4hi_di): Remove node.
10654         (v2si_ftype_v2si_di): Ditto.
10655         (ix86_init_mmx_sse_builtins): Handle V1DImode.
10656         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
10657         Redefine builtins using def_builtin_const with *_ftype_*_int node.
10658         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
10659         Add new builtins using def_builtin_const.
10660         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
10661         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
10662         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
10663         * config/i386/mmintrin.h (__v1di): New typedef.
10664         (_mm_add_si64): Cast arguments to __v1di type.
10665         (_mm_sub_si64): Ditto.
10666         (_mm_sll_pi16): Cast __count to __v4hi type.
10667         (_mm_sll_pi32): Cast __count to __v2si type.
10668         (_mm_sll_si64): Cast arguments to __v1di type.
10669         (_mm_srl_pi16): Cast __count to __v4hi type.
10670         (_mm_srl_pi32): Cast __count to __v2si type.
10671         (_mm_srl_si64): Cast arguments to __v1di type.
10672         (_mm_sra_pi16): Cast __count to __v4hi type.
10673         (_mm_sra_pi32): Cast __count to __v2si type.
10674         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
10675         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
10676         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
10677         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
10678         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
10679         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
10680         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
10681         (_mm_srai_pi32): Use __builtin_ia32_psradi.
10682         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
10683         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10684         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10685         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
10686
10687 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
10688
10689         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
10690
10691 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
10692
10693         PR target/35373
10694         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
10695         reg+const addressing for Altivec modes.  Don't generate reg+reg
10696         addressing for TFmode or TDmode quantities.
10697
10698 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
10699
10700         * c-common.c (vector_types_convertible_p): Call langhook
10701         instead of comptypes.
10702
10703 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10704
10705         PR tree-opt/35402
10706         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
10707         integral and scalar float variables which have a
10708         NULL DECL_INITIAL.
10709
10710 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
10711
10712         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
10713         dwarf_register_span hook when emitting unwind information for
10714         register-to-memory saves.
10715         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
10716         (rs6000_frame_related): Remove call to spe_synthesize_frame.
10717
10718 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
10719
10720         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
10721         for the same VAR_DECL.
10722
10723 2008-03-06  Tom Tromey  <tromey@redhat.com>
10724
10725         * treelang: Delete.
10726         * doc/standards.texi (Standards): Don't mention treelang.
10727         * doc/invoke.texi (Overall Options): Don't mention treelang.
10728         * doc/install.texi (Prerequisites): Don't mention bison or
10729         treelang.
10730         (Configuration): Don't mention treelang.
10731         (Building): Likewise.
10732         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
10733
10734 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
10735
10736         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
10737         word-extractions out of a multi-word object.
10738
10739 2008-03-06  Richard Guenther  <rguenther@suse.de>
10740
10741         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
10742         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
10743         result type and precision.
10744         * expr.c (get_inner_reference): Set unsignedp based on the result
10745         type of BIT_FIELD_REF.
10746         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
10747         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
10748         (try_instantiate_multiple_fields): Likewise.  Use the correct type
10749         for BIT_FIELD_REF.
10750         (sra_build_assignment): Likewise.
10751         (sra_build_elt_assignment): Likewise.
10752         (sra_explode_bitfield_assignment): Likewise.
10753         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
10754         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
10755         set BIT_FIELD_REF_UNSIGNED.
10756         (vectorizable_load): Likewise.
10757
10758 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
10759
10760         * cse.c (cse_extended_basic_block): Invalidate artificial defs
10761         at bb start.
10762
10763 2008-03-06  Richard Guenther  <rguenther@suse.de>
10764
10765         * alias.c (struct alias_set_entry): Move has_zero_child field
10766         to pack with alias_set.
10767
10768 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10769
10770         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10771         32bit host.
10772
10773 2008-03-05  Ian Lance Taylor  <iant@google.com>
10774
10775         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
10776
10777 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
10778
10779         * fwprop.c (update_df): Support width and offset parameters of
10780         df_ref_create.
10781         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
10782         global_conflicts): Change DF_REF_EXTRACT to either
10783         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10784         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10785         * df-scan.c (df_ref_record, df_defs_record,
10786         df_ref_create_structure, df_def_record_1, df_uses_record,
10787         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
10788         df_bb_refs_collect, df_entry_block_defs_collect,
10789         df_exit_block_uses_collect): Support new width and offset fields.
10790         (ref_extract_pool): New storage pool.
10791         (df_free_ref): New function.
10792         (df_reg_chain_unlink, df_free_collection_rec,
10793         df_sort_and_compress_refs): Call df_free_ref.
10794         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
10795         of df_ref_extract.
10796         (df_ref_create_structure): Allocate df_ref_extract if offset and
10797         width fields are used.
10798         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
10799         (df_uses_record): Get offset and width from ZERO_EXTRACT 
10800         and SIGN_EXTRACT.
10801         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
10802         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10803         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10804         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
10805         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10806         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10807         (df_ref_extract): New structure.
10808         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
10809         (df_ref_create): Add width and offset parameters.
10810         
10811 2008-03-05  Richard Guenther  <rguenther@suse.de>
10812
10813         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10814         Use ranges_overlap_p.
10815         (offset_overlaps_with_access): Rename
10816         to ranges_overlap_p and move ...
10817         * tree-flow-inline.h (ranges_overlap_p): ... here.
10818
10819         * tree.h (get_inner_reference, handled_component_p): Update
10820         comments.
10821
10822         * tree.h (record_component_aliases, get_alias_set,
10823         alias_sets_conflict_p, alias_sets_must_conflict_p,
10824         objects_must_conflict_p): Move declarations ...
10825         * alias.h (record_component_aliases, get_alias_set,
10826         alias_sets_conflict_p, alias_sets_must_conflict_p,
10827         objects_must_conflict_p): ... here.
10828         Include coretypes.h.
10829         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
10830
10831 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
10832
10833         * cfg.c: Include tree-flow.h.
10834         (remove_edge_raw): Call redirect_edge_var_map_clear.
10835         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
10836         * tree-flow-inline.h (redirect_edge_var_map_def): New.
10837         (redirect_edge_var_map_result): New.
10838         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
10839         PENDING_STMT use with redirect_edge_var_map_*.
10840         * tree-ssa.c (edge_var_maps): New definition.
10841         (redirect_edge_var_map_add): New.
10842         (redirect_edge_var_map_clear): New.
10843         (redirect_edge_var_map_dup): New.
10844         (redirect_edge_var_map_vector): New.
10845         (redirect_edge_var_map_destroy): New.
10846         (ssa_redirect_edge): Replace PENDING_STMT use with
10847         redirect_edge_var_map_*.
10848         (flush_pending_stmts): Same.
10849         (delete_tree_ssa): Destroy edge var map.
10850         * tree-flow.h (struct _edge_var_map): New.
10851         Define edge_var_map vector type.
10852         Declare redirect_edge_var_map_* prototypes.
10853         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
10854         * tree-cfg.c (reinstall_phi_args): Replace
10855         PENDING_STMT use with redirect_edge_var_map_*.
10856
10857 2008-03-05  Richard Guenther  <rguenther@suse.de>
10858
10859         PR tree-optimization/35472
10860         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
10861         whose single use_stmt has a overlapping set of loaded and
10862         stored symbols as that use_stmt might be a noop assignment then.
10863
10864 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
10865
10866         * gthr-rtems.h: Implement __gthread_mutex_destroy.
10867
10868 2008-03-05  Richard Guenther  <rguenther@suse.de>
10869
10870         PR c++/35336
10871         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
10872         should be constants.
10873         * tree-cfg.c (verify_expr): Verify it.
10874         * fold-const.c (fold_truthop): Remove code generating
10875         BIT_FIELD_REFs of structure bases.
10876         (fold_binary): Likewise.
10877         (fold_ternary): Position and size of BIT_FIELD_REFs are
10878         always host integers.
10879         (make_bit_field_ref): Remove.
10880         (optimize_bit_field_compare): Remove.
10881         (all_ones_mask_p): Remove.
10882
10883 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
10884
10885         PR gcc/33009
10886         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
10887         (split_block_and_df_analyze): New. Split basic block and rebuild
10888         dataflow.
10889         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
10890         SPLIT_BLOCK.
10891         (split_pattern_seq): Likewise.
10892         (erase_matching_seqs): Likewise.
10893         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
10894
10895 2008-03-04  Geoff Keating  <geoffk@apple.com>
10896
10897         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
10898         declaration and code.
10899         (tree_invalid_nonnegative_warnv_p): Likewise.
10900
10901 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10902
10903         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
10904         examples.  Truncate option-names then causing overfull hbox.
10905
10906 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10907
10908         PR target/35222
10909         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
10910         on hpux10.
10911         * configure: Rebuilt.
10912
10913 2008-03-04  Rafael Espindola  <espindola@google.com>
10914
10915         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10916         (tree_unary_nonnegative_warnv_p): New.
10917         (tree_binary_nonnegative_warnv_p): New.
10918         (tree_single_nonnegative_warnv_p): New.
10919         (tree_invalid_nonnegative_warnv_p): New.
10920         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10921
10922 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10923
10924         PR 28322
10925         * opts.c (handle_option): Postpone 'unknown option' errors only for
10926         warning options.
10927
10928 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10929
10930         PR target/35453
10931         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10932         (_SIDD_XXX): This.
10933
10934 2008-03-04  Rafael Espindola  <espindola@google.com>
10935
10936         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10937         (tree_binary_nonzero_warnv_p): New.
10938         (tree_single_nonzero_warnv_p): New.
10939         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10940
10941 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10942
10943         PR middle-end/35456
10944         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10945         transformations for modes that have signed zeros.
10946         * ifcvt.c (noce_try_abs): Ditto.
10947
10948 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10949
10950         * config/i386/i386.c (override_options): Force
10951         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10952
10953 2008-03-04  Jan Hubicka  <jh@suse.cz>
10954
10955         PR c++/35262
10956         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10957         in last commit.
10958
10959 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10960
10961         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10962         label to probe the stack.
10963
10964 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10965
10966         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10967         (__gthr_win32_mutex_destroy): Declare.
10968         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10969         __gthr_win32_mutex_destroy.
10970         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10971
10972 2008-03-03  Jan Hubicka  <jh@suse.cz>
10973
10974         PR c++/35262
10975         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10976         aggressive on inlining cold calls.
10977
10978 2008-03-03  Richard Guenther  <rguenther@suse.de>
10979
10980         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10981         struct copies into the expression table.
10982         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10983         (try_to_simplify): Likewise.
10984         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10985         integral and pointer arguments which do not change the
10986         precision to NOP_EXPRs.
10987         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10988         VIEW_CONVERT_EXPR case.
10989
10990 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10991
10992         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10993         defined in a loop at depth 0 is invariant.
10994         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10995         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10996         be called at loop depth 0.
10997
10998 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10999
11000         PR driver/35420
11001         * gcc.c (process_command): Update copyright notice dates.
11002         * gcov.c (print_version): Likewise.
11003         * gcov-dump.c (print_version): Likewise.
11004         * mips-tfile.c (main): Likewise.
11005         * mips-tdump.c (main): Likewise.
11006
11007 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11008
11009         PR 24924
11010         * c-common.c (flag_permissive): Delete.
11011         (constant_expression_warnings): Check flags first.
11012         (constant_expression_error): New.
11013         * c-common.h (flag_permissive): Delete.
11014         (constant_expression_error): Declare.
11015         * flags.h (flag_permissive): Declare. Update description.
11016         * diagnostic.c (pedwarn): Update.
11017         (permerror): New.
11018         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
11019         (permissive_error_kind): New.
11020         * toplev.c (flag_permissive): Define. Update description.
11021         * toplev.h (permissive_error_kind): Declare.
11022         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
11023         (pedwarn_c90): Use pedantic_warning_kind.
11024         * c-opts.c (c_common_post_options): flag_permissive does not affect
11025         flag_pedantic_errors.
11026
11027 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
11028
11029         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
11030         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
11031         __absvsi2, __absvDI2): Use unsigned arithmetic.
11032
11033 2008-03-02  Andi Kleen  <ak@suse.de>
11034             Richard Guenther  <rguenther@suse.de>
11035
11036         * struct-equiv.c: Remove file.
11037         * cfg_cleanup.c (condjump_equiv_p): Remove.
11038         * Makefile.in (OBJS-common): Remove struct-equiv.o.
11039         (struct-equiv.o): Remove rule.
11040         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
11041         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
11042         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
11043
11044 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11045
11046         * ifcvt.c (noce_process_if_block): Try to handle only the then
11047         block if the else block exists but isn't suitable.
11048
11049 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
11050
11051         PR gcc/35063
11052         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
11053         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
11054         regression from previous patch.
11055
11056 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
11057
11058         PR gcc/35063
11059         * gthr.h: Add __gthread_mutex_destroy as a function that must be
11060         implemented.
11061         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
11062         * gthr-single.h (__gthread_mutex_destroy): Likewise.
11063         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
11064         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
11065         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
11066         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
11067         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
11068         (__gthread_mutex_destroy_function): Rename to
11069         __gthread_mutex_destroy.
11070         * gthr-dce.h (__gthread_mutex_destroy): Call
11071         pthread_mutex_destroy.
11072         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
11073         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
11074         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
11075
11076 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11077
11078         * df-scan.c (df_ref_chain_change_bb): Simplify.
11079         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
11080         set_block_for_insn if there's any change.
11081         * df.h ((df_insn_change_bb): Fix prototype.
11082         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
11083         df_insn_change_bb, don't call set_block_for_insn.
11084         * emit-rtl.c (reorder_insns): Likewise.
11085         * haifa-sched.c (move_insn): Likewise.
11086
11087 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11088
11089         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
11090
11091 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11092
11093         * tree-flow-inline.h (next_readonly_imm_use): Return
11094         NULL_USE_OPERAND_P after the end.
11095
11096 2008-03-01  Richard Guenther  <rguenther@suse.de>
11097
11098         PR tree-optimization/35411
11099         * tree-sra.c (sra_build_assignment): Split conversion to
11100         final type to a separate statement if we are not assigning
11101         to a register.
11102
11103 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11104
11105         * fold-const.c (fold_convertible_p): Correct the logic to follow
11106         that in fold_convert().
11107
11108 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
11109
11110         PR c++/35315
11111         * tree-inline.c (build_duplicate_type): When we make a
11112         duplicate type, make it unique in the canonical types system.
11113
11114 2008-02-29  Tom Tromey  <tromey@redhat.com>
11115
11116         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
11117         input_file_stack_history, input_file_stack_restored): Remove.
11118         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
11119         * input.h (struct file_stack): Remove.
11120         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
11121         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
11122         Likewise.
11123         * diagnostic.h (struct diagnostic_context) <last_module>: Change
11124         type.
11125         (diagnostic_last_module_changed): Add 'map' argument.
11126         (diagnostic_set_last_function): Likewise.
11127         * diagnostic.c (undiagnostic_report_current_module): Iterate using
11128         line map, not input_file_stack.
11129         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
11130
11131 2008-02-29  Paul Brook  <paul@codesourcery.com>
11132
11133         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
11134
11135 2008-02-29  Paul Brook  <paul@codesourcery.com>
11136
11137         * config/arm/ieee754-df.S (muldf3): Use RET macros.
11138
11139 2008-02-29  Richard Guenther  <rguenther@suse.de>
11140
11141         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
11142         vn_lookup_or_add.
11143         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
11144         value for comparing for a store match.
11145         (simplify_unary_expression): Do nothing for SSA_NAMEs.
11146         (try_to_simplify): Do not do a full-blown reference lookup.
11147
11148 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11149
11150         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
11151         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
11152
11153         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
11154
11155 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
11156
11157         * tree-loop-linear.c (try_interchange_loops): Compare memory access
11158         strides against cache sizes.
11159
11160 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11161
11162         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
11163         constant to fpul.
11164
11165 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
11166
11167         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
11168         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
11169         is smaller than the original promoted value.
11170         (simplify_subreg): If OP is a SUBREG, try to preserve its
11171         SUBREG_PROMOTED_VAR_P information.
11172
11173 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
11174
11175         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
11176         (VN_INFO_GET): Allocate new objects on the obstack.
11177         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
11178         for rpo_numbers_temp, for consistency.
11179         (free_scc_vn): Free the obstack.
11180
11181 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
11182
11183         * doc/invoke.texi: Document -ftree-loop-distribution.
11184         * tree-loop-distribution.c: New.
11185         * tree-pass.h (pass_loop_distribution): New.
11186         * graphds.h (struct graph): Add htab_t indices.
11187         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
11188         * tree-vectorizer.c (rename_variables_in_loop): Extern.
11189         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
11190         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
11191         * tree-data-ref.c (debug_data_dependence_relations): New.
11192         (dump_data_dependence_relation): Also print data references.
11193         (free_data_ref): Extern.
11194         (same_access_functions): Moved...
11195         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
11196         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
11197         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
11198         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
11199         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
11200         (stmts_from_loop): Skip LABEL_EXPR.
11201         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
11202         New.
11203         (build_rdg): Initialize rdg->indices htab.
11204         (free_rdg, stores_from_loop, ref_base_address,
11205         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
11206         have_similar_memory_accesses_1, ref_base_address_1,
11207         remove_similar_memory_refs): New.
11208         * tree-data-ref.h: Depend on tree-chrec.h.
11209         (debug_data_dependence_relations, free_data_ref): Declared.
11210         (same_access_functions): ... here.
11211         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
11212         New.
11213         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
11214         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
11215         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
11216         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
11217         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
11218         rdg_vertex_for_stmt): Declared.
11219         (struct rdg_edge): Add level.
11220         (RDGE_LEVEL): New.
11221         (free_rdg, stores_from_loop, remove_similar_memory_refs,
11222         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
11223         Declared.
11224         (rdg_has_similar_memory_accesses): New.
11225         * tree-vect-analyze.c: Remove unused static decls.
11226         * lambda.h (dependence_level): New.
11227         * common.opt (ftree-loop-distribution): New.
11228         * tree-flow.h (mark_virtual_ops_in_bb, 
11229         slpeel_tree_duplicate_loop_to_edge_cfg,
11230         rename_variables_in_loop): Declared.
11231         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
11232         (OBJS-common): Add tree-loop-distribution.o.
11233         (tree-loop-distribution.o): New rule.
11234         * tree-cfg.c (mark_virtual_ops_in_bb): New.
11235         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
11236         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
11237
11238 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
11239
11240         PR target/33963
11241         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
11242         other than structures and unions.
11243
11244 2008-02-28  Richard Guenther  <rguenther@suse.de>
11245
11246         Revert:
11247         2008-02-26  Richard Guenther  <rguenther@suse.de>
11248
11249         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11250         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11251         (lookup_decl_from_uid): Declare.
11252         (remove_decl_from_map): Likewise.
11253         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11254         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11255         (decl_for_uid_map): New global hashtable mapping DECL_UID
11256         to the decl tree.
11257         (init_ttree): Allocate it.
11258         (insert_decl_to_uid_decl_map): New helper function.
11259         (make_node_stat): Insert new decls into the map.
11260         (copy_node_stat): Likewise.
11261         (lookup_decl_from_uid): New function.
11262         (remove_decl_from_map): Likewise.
11263         (print_decl_for_uid_map_statistics): New helper.
11264         (dump_tree_statistics): Call it.
11265
11266         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11267         (referenced_var_iterator): Adjust.
11268         (FOR_EACH_REFERENCED_VAR): Adjust.
11269         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11270         (num_referenced_vars): Adjust.
11271         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11272         (first_referenced_var): Remove.
11273         (end_referenced_vars_p): Likewise.
11274         (next_referenced_var): Likewise.
11275         (referenced_var_iterator_set): New helper function.
11276         * tree-dfa.c (referenced_var_lookup): Adjust.
11277         (referenced_var_check_and_insert): Likewise.
11278         (remove_referenced_var): Likewise.
11279         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11280         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11281         (verify_call_clobbering): Likewise.
11282         (verify_memory_partitions): Likewise.
11283         (init_tree_ssa): Allocate bitmap instead of hashtable for
11284         referenced_vars.
11285         (delete_tree_ssa): Adjust.
11286         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11287         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11288         (compute_tag_properties): Likewise.
11289         (set_initial_properties): Likewise.
11290         (find_partition_for): Likewise.
11291         (update_reference_counts): Likewise.
11292         (dump_may_aliases_for): Likewise.
11293         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11294         (add_call_clobber_ops): Likewise.
11295         (add_call_read_ops): Likewise.
11296         (get_asm_expr_operands): Likewise.
11297         * tree-into-ssa.c (dump_decl_set): Likewise.
11298         (update_ssa): Likewise.
11299         * tree-sra.c (scan_function): Likewise.
11300         (decide_instantiations): Likewise.
11301         (scalarize_parms): Likewise.
11302         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11303         (dsa_named_for): Likewise.
11304         * tree-ssa-structalias.c (update_alias_info): Likewise.
11305         (merge_smts_into): Likewise.
11306
11307 2008-02-27  David Daney  <ddaney@avtrex.com>
11308
11309         PR target/34409
11310         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
11311         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
11312         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
11313         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
11314         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
11315
11316 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
11317
11318         PR target/25477
11319         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
11320         (BUILT_IN_NEXTTOWARD): Remove.
11321         (BUILT_IN_NEXTTOWARDF): Ditto.
11322         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
11323         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
11324
11325 2008-02-27  Tom Tromey  <tromey@redhat.com>
11326
11327         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
11328         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
11329
11330 2008-02-27  Jan Beulich  <jbeulich@novell.com>
11331
11332         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
11333         update the respective field on newdecl.
11334
11335 2008-02-27  Revital Eres  <eres@il.ibm.com>
11336
11337         PR rtl-optimization/34999
11338         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
11339         crossing edges that ends with a call insn.
11340         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
11341         call insn and clear the EDGE_CROSSING flag of the crossing edge
11342         when fixing fallthru edges.
11343
11344 2008-02-27  Richard Guenther  <rguenther@suse.de>
11345
11346         PR middle-end/35390
11347         * fold-const.c (fold_unary): Return the correct argument,
11348         converted to the result type.
11349
11350 2008-02-27  Richard Guenther  <rguenther@suse.de>
11351
11352         PR middle-end/34971
11353         * expr.c (expand_expr_real_1): Assert on rotates that operate
11354         on partial modes.
11355         * fold-const.c (fold_binary): Use the types precision, not the
11356         bitsize of the mode if folding rotate expressions.  Build rotates
11357         only for full modes.
11358
11359 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
11360
11361         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
11362         and CPP_PRAGMA_EOL.
11363         * c-pragma.c (pragma_ns_name): New typedef.
11364         (registered_pp_pragmas): New variable.
11365         (c_pp_lookup_pragma): New function.
11366         (c_register_pragma_1): If flag_preprocess_only, do nothing
11367         for non-expanded pragmas, for expanded ones push pragma's
11368         namespace and name into registered_pp_pragmas vector.
11369         (c_invoke_pragma_handler): Register OpenMP pragmas even when
11370         flag_preprocess_only, don't register GCC pch_preprocess
11371         pragma if flag_preprocess_only.
11372         * c-opts.c (c_common_init): Call init_pragma even if
11373         flag_preprocess_only.
11374         * c-pragma.c (c_pp_lookup_pragma): New prototype.
11375         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
11376         cpp_register_pragma if flag_preprocess_only.
11377
11378 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11379
11380         PR c/28800
11381         * c-parser.c (c_parser_translation_unit): Warn for empty
11382         translation unit, not empty source file.
11383
11384 2008-02-26  Paul Brook  <paul@codesourcery.com>
11385
11386         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
11387         operand for Thumb-2.
11388         * config/arm/arm.h (reg_class): Add CORE_REGS.
11389         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
11390         (BASE_REG_CLASS): Use CORE_REGS.
11391         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
11392         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
11393         (REGNO_OK_FOR_INDEX_P): Exclude SP.
11394         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
11395         ARM_REGNO_OK_FOR_INDEX_P.
11396         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
11397         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
11398         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
11399         (ldm/stm peepholes): Ditto.
11400         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
11401         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
11402         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
11403         * config/arm/constraints.md: Enable "k" constraint on ARM.
11404
11405 2008-02-27  Ben Elliston  <bje@au.ibm.com>
11406
11407         * config/rs6000/rs6000.c: Annotate cache line size field in all
11408         instances of struct processor_costs.
11409
11410 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
11411
11412         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
11413         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
11414         jump_bypass): New counters.
11415         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
11416         * dce.c (gate_ud_dce): Same.
11417         (gate_fast_dce): Same.
11418         * dse.c (gate_dse1): New function.
11419         (gate_dse2): New function.
11420         (gate_dse): Merge results of new gate functions.
11421         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
11422         (gate_handle_jump_bypass): Add dbg_cnt.
11423         (gate_handle_gcse): Add dbg_cnt.
11424         * ifcvt.c (gate_handle_if_conversion): Same.
11425         (gate_handle_if_after_combine): Same.
11426         (gate_handle_if_after_reload): Same.
11427         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
11428
11429 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
11430
11431         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
11432         line sizes.
11433         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
11434
11435 2008-02-26  Jason Merrill  <jason@redhat.com>
11436
11437         PR c++/35315
11438         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
11439         alone if it's the naming decl for the type's main variant.
11440
11441 2008-02-26  Tom Tromey  <tromey@redhat.com>
11442
11443         * system.h (USE_MAPPED_LOCATION): Poison.
11444         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
11445         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
11446         (make_goto_expr_edges): Likewise.
11447         (remove_bb): Likewise.
11448         (execute_warn_function_return): Likewise.
11449         * basic-block.h (struct edge_def) <goto_locus>: Change type to
11450         location_t.
11451         * c-common.c (fname_decl): Remove old location code.
11452         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
11453         location code.
11454         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
11455         variant.
11456         (ASM_INPUT_SOURCE_LOCATION): Likewise.
11457         (gen_rtx_ASM_INPUT): Likewise.
11458         (gen_rtx_ASM_INPUT_loc): Likewise.
11459         (get_rtx_asm_OPERANDS): Remove.
11460         * cfglayout.c (insn_locators_alloc): Remove old location code.
11461         (set_curr_insn_source_location): Likewise.
11462         (curr_insn_locator): Likewise.
11463         * print-tree.c (print_node): Remove old location code.
11464         * tree-mudflap.c (mf_varname_tree): Remove old location code.
11465         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
11466         * cfgexpand.c (expand_gimple_cond_expr): Don't use
11467         location_from_locus.
11468         (construct_exit_block): Remove old location code.
11469         * emit-rtl.c (force_next_line_note): Remove old location code.
11470         * profile.c (branch_prob): Remove old location code.
11471         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
11472         LOC_LINE): Remove old-location variants.
11473         * langhooks.c (lhd_print_error_function): Remove old location
11474         code.
11475         * configure, config.in: Rebuilt.
11476         * configure.ac (--enable-mapped-location): Remove.
11477         * c-decl.c (c_init_decl_processing): Remove old location code.
11478         (finish_function): Likewise.
11479         * recog.c (decode_asm_operands): Remove old location code.
11480         * c-pch.c (c_common_read_pch): Remove old location code.
11481         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
11482         variants.
11483         * gimple-low.c (lower_function_body): Remove old location code.
11484         * toplev.c (unknown_location): Remove.
11485         (push_srcloc): Remove old-location variant.
11486         (process_options): Remove old location code.
11487         (lang_dependent_init): Likewise.
11488         * input.h (UNKNOWN_LOCATION): Move definition.
11489         (location_t): Undeprecate.
11490         (source_locus): Remove.
11491         (location_from_locus): Remove.
11492         (struct location_s): Remove.
11493         Remove all old-location code.
11494         (input_line, input_filename): Remove.
11495         * final.c (final_scan_insn): Remove old location code.
11496         * diagnostic.c (diagnostic_build_prefix): Remove
11497         USE_MAPPED_LOCATION test.
11498         * tree.h (gimple_stmt) <locus>: Now a location_t.
11499         (tree_exp) <locus>: Likewise.
11500         (DECL_IS_BUILTIN): Remove old-location variant.
11501         (annotate_with_file_line, annotate_with_locus): Likewise.
11502         (expr_locus, set_expr_locus): Update.
11503         * tree.c (build1_stat): Remove old location code.
11504         (last_annotated_node): Remove.
11505         (annotate_with_file_line): Remove old-location variant.
11506         (annotate_with_locus): Likewise.
11507         (expr_location): Remove old location code.
11508         (set_expr_location): Likewise.
11509         (expr_has_location): Likewise.
11510         (expr_locus): Likewise.
11511         (set_expr_locus): Likewise.
11512         (expr_filename): Don't use location_from_locus.
11513         (expr_lineno): Likewise.
11514         * rtl-error.c (location_for_asm): Remove old location code.
11515         * c-lex.c (cb_line_change): Remove old location code.
11516         (fe_file_change): Likewise.
11517         (cb_def_pragma): Likewise.
11518         (c_lex_with_flags): Likewise.
11519         * gengtype.c (do_typedef): Don't special-case location types.
11520         (define_location_structures): Remove.
11521         (main): Don't call define_location_structures.
11522         * tree-pretty-print.c (dump_implicit_edges): Remove old location
11523         code.
11524
11525 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11526
11527         PR 26264
11528         * builtins.def (BUILT_IN_STDARG_START): Remove.
11529         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
11530         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11531         * tree-inline.c (inline_forbidden_p_1): Likewise.
11532         
11533 2008-02-26  Richard Guenther  <rguenther@suse.de>
11534
11535         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11536         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11537         (lookup_decl_from_uid): Declare.
11538         (remove_decl_from_map): Likewise.
11539         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11540         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11541         (decl_for_uid_map): New global hashtable mapping DECL_UID
11542         to the decl tree.
11543         (init_ttree): Allocate it.
11544         (insert_decl_to_uid_decl_map): New helper function.
11545         (make_node_stat): Insert new decls into the map.
11546         (copy_node_stat): Likewise.
11547         (lookup_decl_from_uid): New function.
11548         (remove_decl_from_map): Likewise.
11549         (print_decl_for_uid_map_statistics): New helper.
11550         (dump_tree_statistics): Call it.
11551
11552         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11553         (referenced_var_iterator): Adjust.
11554         (FOR_EACH_REFERENCED_VAR): Adjust.
11555         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11556         (num_referenced_vars): Adjust.
11557         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11558         (first_referenced_var): Remove.
11559         (end_referenced_vars_p): Likewise.
11560         (next_referenced_var): Likewise.
11561         (referenced_var_iterator_set): New helper function.
11562         * tree-dfa.c (referenced_var_lookup): Adjust.
11563         (referenced_var_check_and_insert): Likewise.
11564         (remove_referenced_var): Likewise.
11565         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11566         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11567         (verify_call_clobbering): Likewise.
11568         (verify_memory_partitions): Likewise.
11569         (init_tree_ssa): Allocate bitmap instead of hashtable for
11570         referenced_vars.
11571         (delete_tree_ssa): Adjust.
11572         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11573         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11574         (compute_tag_properties): Likewise.
11575         (set_initial_properties): Likewise.
11576         (find_partition_for): Likewise.
11577         (update_reference_counts): Likewise.
11578         (dump_may_aliases_for): Likewise.
11579         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11580         (add_call_clobber_ops): Likewise.
11581         (add_call_read_ops): Likewise.
11582         (get_asm_expr_operands): Likewise.
11583         * tree-into-ssa.c (dump_decl_set): Likewise.
11584         (update_ssa): Likewise.
11585         * tree-sra.c (scan_function): Likewise.
11586         (decide_instantiations): Likewise.
11587         (scalarize_parms): Likewise.
11588         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11589         (dsa_named_for): Likewise.
11590         * tree-ssa-structalias.c (update_alias_info): Likewise.
11591         (merge_smts_into): Likewise.
11592
11593 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11594
11595         PR 34351
11596         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
11597         * c-opts.c (c_common_handle_option): Wall enables
11598         Wvolatile-register-var.
11599         * common.opt: Move Wvolatile-register-var to...
11600         * c.opt: ...here.
11601         
11602 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11603
11604         * common.opt (Wlarger-than=): New.
11605         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
11606         -Wlarger-than=.
11607         * opts.c (common_handle_option): Handle -Wlarger-than=.
11608         * optc-gen.awk: Likewise.
11609         * opth-gen.awk: Likewise.
11610         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
11611         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11612         
11613 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11614
11615         * c-common.c (match_case_to_enum_1): Add appropriate
11616         OPT_W* parameter to warning.
11617         (c_do_switch_warnings): Likewise.
11618         * c-typeck.c (warning_init): Add one more parameter following
11619         'warning' function.
11620         (push_init_level): Update call to warning_init.
11621         (pop_init_level): Likewise.
11622         (add_pending_init): Likewise.
11623         (output_init_element: Likewise.
11624
11625 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11626
11627         PR 28322
11628         * toplev.c (toplev_main): If there are warnings or error, print
11629         errors for ignored options.
11630         * opts.c (ignored_options): New static variable.
11631         (postpone_unknown_option_error): New.
11632         (print_ignored_options): New.
11633         (handle_option): Postpone errors for unknown -Wno-* options.
11634         * opts.h (print_ignored_options): Declare.
11635         
11636 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11637
11638         * config/mips/mips.md (loadgp_blockage, blockage): Change type
11639         to "ghost".
11640
11641 2008-02-25  Richard Guenther  <rguenther@suse.de>
11642
11643         Revert:
11644         2008-02-25  Richard Guenther  <rguenther@suse.de>
11645
11646         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11647         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11648         (lookup_decl_from_uid): Declare.
11649         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11650         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11651         (decl_for_uid_map): New global hashtable mapping DECL_UID
11652         to the decl tree.
11653         (init_ttree): Allocate it.
11654         (insert_decl_to_uid_decl_map): New helper function.
11655         (make_node_stat): Insert new decls into the map.
11656         (copy_node_stat): Likewise.
11657         (lookup_decl_from_uid): New function.
11658         (print_decl_for_uid_map_statistics): New helper.
11659         (dump_tree_statistics): Call it.
11660
11661         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11662         (referenced_var_iterator): Adjust.
11663         (FOR_EACH_REFERENCED_VAR): Adjust.
11664         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11665         (num_referenced_vars): Adjust.
11666         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11667         (first_referenced_var): Remove.
11668         (end_referenced_vars_p): Likewise.
11669         (next_referenced_var): Likewise.
11670         (referenced_var_iterator_set): New helper function.
11671         * tree-dfa.c (referenced_var_lookup): Adjust.
11672         (referenced_var_check_and_insert): Likewise.
11673         (remove_referenced_var): Likewise.
11674         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11675         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11676         (verify_call_clobbering): Likewise.
11677         (verify_memory_partitions): Likewise.
11678         (init_tree_ssa): Allocate bitmap instead of hashtable for
11679         referenced_vars.
11680         (delete_tree_ssa): Adjust.
11681         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11682         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11683         (compute_tag_properties): Likewise.
11684         (set_initial_properties): Likewise.
11685         (find_partition_for): Likewise.
11686         (update_reference_counts): Likewise.
11687         (dump_may_aliases_for): Likewise.
11688         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11689         (add_call_clobber_ops): Likewise.
11690         (add_call_read_ops): Likewise.
11691         (get_asm_expr_operands): Likewise.
11692         * tree-into-ssa.c (dump_decl_set): Likewise.
11693         (update_ssa): Likewise.
11694         * tree-sra.c (scan_function): Likewise.
11695         (decide_instantiations): Likewise.
11696         (scalarize_parms): Likewise.
11697         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11698         (dsa_named_for): Likewise.
11699         * tree-ssa-structalias.c (update_alias_info): Likewise.
11700         (merge_smts_into): Likewise.
11701
11702 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11703
11704         PR fortran/29549
11705         * doc/invoke.texi (-fcx-limited-range): Document new option.
11706         * toplev.c (process_options): Handle -fcx-fortran-rules.
11707         * common.opt: Add documentation for -fcx-fortran-rules.
11708
11709 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11710
11711         PR c/35162
11712         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
11713         actual behaviour and C99.
11714         
11715 2008-02-26  Ben Elliston  <bje@au.ibm.com>
11716
11717         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
11718         (ASM_CPU_POWER6_SPEC): Likewise.
11719         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
11720         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
11721         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
11722
11723 2008-02-25  Richard Guenther  <rguenther@suse.de>
11724
11725         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11726         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11727         (lookup_decl_from_uid): Declare.
11728         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11729         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11730         (decl_for_uid_map): New global hashtable mapping DECL_UID
11731         to the decl tree.
11732         (init_ttree): Allocate it.
11733         (insert_decl_to_uid_decl_map): New helper function.
11734         (make_node_stat): Insert new decls into the map.
11735         (copy_node_stat): Likewise.
11736         (lookup_decl_from_uid): New function.
11737         (print_decl_for_uid_map_statistics): New helper.
11738         (dump_tree_statistics): Call it.
11739
11740         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11741         (referenced_var_iterator): Adjust.
11742         (FOR_EACH_REFERENCED_VAR): Adjust.
11743         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11744         (num_referenced_vars): Adjust.
11745         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11746         (first_referenced_var): Remove.
11747         (end_referenced_vars_p): Likewise.
11748         (next_referenced_var): Likewise.
11749         (referenced_var_iterator_set): New helper function.
11750         * tree-dfa.c (referenced_var_lookup): Adjust.
11751         (referenced_var_check_and_insert): Likewise.
11752         (remove_referenced_var): Likewise.
11753         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11754         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11755         (verify_call_clobbering): Likewise.
11756         (verify_memory_partitions): Likewise.
11757         (init_tree_ssa): Allocate bitmap instead of hashtable for
11758         referenced_vars.
11759         (delete_tree_ssa): Adjust.
11760         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11761         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11762         (compute_tag_properties): Likewise.
11763         (set_initial_properties): Likewise.
11764         (find_partition_for): Likewise.
11765         (update_reference_counts): Likewise.
11766         (dump_may_aliases_for): Likewise.
11767         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11768         (add_call_clobber_ops): Likewise.
11769         (add_call_read_ops): Likewise.
11770         (get_asm_expr_operands): Likewise.
11771         * tree-into-ssa.c (dump_decl_set): Likewise.
11772         (update_ssa): Likewise.
11773         * tree-sra.c (scan_function): Likewise.
11774         (decide_instantiations): Likewise.
11775         (scalarize_parms): Likewise.
11776         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11777         (dsa_named_for): Likewise.
11778         * tree-ssa-structalias.c (update_alias_info): Likewise.
11779         (merge_smts_into): Likewise.
11780
11781 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
11782
11783         PR target/35258
11784         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
11785         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
11786         * alias.h (nonoverlapping_memrefs_p): Likewise.
11787
11788 2008-02-25  Jan Beulich  <jbeulich@novell.com>
11789
11790         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
11791         * config/i386/netware-libgcc.exp: Add __bswap?i2,
11792         __emultls_get_address, __emultls_register_common,
11793         __floatundi?f, and _Unwind_GetIPInfo.
11794         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
11795         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
11796         (gen_regparm_prefix): Likewise.
11797         (i386_nlm_encode_section_info): Sync with
11798         config/i386/winnt.c:i386_pe_encode_section_info().
11799         (i386_nlm_maybe_mangle_decl_assembler_name): New.
11800         i386_nlm_mangle_decl_assembler_name): New.
11801         (netware_override_options): New.
11802         * config/i386/netware.h (netware_override_options): Declare.
11803         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
11804         (i386_nlm_mangle_decl_assembler_name): Declare.
11805         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
11806
11807 2008-02-25  Ben Elliston  <bje@au.ibm.com>
11808
11809         PR other/32948
11810         * c-decl.c (grokdeclarator): Remove unused local variables
11811         `typedef_type' and `type_as_written'.
11812         * bb-reorder.c
11813         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
11814         unused local variable `has_hot_blocks'.
11815         (fix_crossing_conditional_branches): Remove unused local variable
11816         `prev_bb'.
11817         
11818 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
11819
11820         PR middle-end/19984
11821         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
11822         using DEF_C99_BUILTIN.
11823         (BUILT_IN_NANF): Ditto.
11824         (BUILT_IN_NANL): Ditto.
11825
11826 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
11827             Revital Eres  <eres@il.ibm.com>
11828
11829         * modulo-sched.c (calculate_must_precede_follow): Address TODO
11830         regarding the order of two dependent insns in the same row.
11831
11832 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11833
11834         * stor-layout.c (layout_decl): Do not bump the alignment of a
11835         bit-field to more than byte alignment if it is packed.
11836
11837 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
11838
11839         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
11840         e300c2 and e300c3.
11841
11842 2008-02-24  Diego Novillo  <dnovillo@google.com>
11843
11844         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
11845
11846         PR 33738
11847         * tree-vrp.c (vrp_evaluate_conditional): With
11848         -Wtype-limits, emit a warning when comparing against a
11849         constant outside the natural range of OP0's type.
11850         * c.opt (Wtype-limits): Move ...
11851         * common.opt (Wtype-limits): ... here.
11852
11853 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
11854
11855         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
11856         * config/rs6000/e300c2c3.md: New file.
11857         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11858         e300c2 and e300c3.
11859         (rs6000_override_options): Add e300c2 and e300c3 cases to
11860         processor_target_table. Do not allow usage of Altivec or Spe
11861         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
11862         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
11863         * config/rs6000/rs6000.h (processor_type): Add
11864         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
11865         (ASM_CPU_SPEC): Add e300c2 and e300c3.
11866         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
11867         and ppce300c3. Include e300c2c3.md.
11868
11869 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
11870
11871         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
11872         instead of TARGET_STRICT_ALIGN.
11873
11874 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
11875
11876         * explow.c (memory_address): Assert that the generated address is
11877         valid.
11878
11879 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11880
11881         PR target/25477
11882         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
11883         * config/darwin-ppc-ldouble-patch.def: New file.
11884         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
11885         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
11886         SUBTARGET_INIT_BUILTINS if defined.
11887         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
11888         New functions.
11889
11890 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11891
11892         PR rtl-opt/33512
11893         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
11894         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
11895
11896 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11897
11898         PR pch/35027
11899         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
11900         file" warning condtional on -Winvalid-PCH.
11901
11902 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11903
11904         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
11905
11906 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
11907
11908         PR target/22076
11909         PR target/34256 
11910         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
11911         prevent reload from using MMX registers.
11912         (*mov<mode>_internal): Ditto.
11913         (*movv2sf_internal_rex64): Ditto.
11914         (*movv2sf_internal): Ditto.
11915
11916 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11917
11918         PR documentation/31569
11919         * doc/install.texi2html: Use makeinfo --no-number-sections.
11920
11921 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11922
11923         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11924         ensure that we can address an entire entity > 8 bytes.  Don't
11925         generate reg+reg addressing for such data.
11926
11927 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11928
11929         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11930         strings when optimizing for size, unless the target cares about
11931         alignment.
11932
11933 2008-02-22  Tom Tromey  <tromey@redhat.com>
11934
11935         * regclass.c (current_pass): Remove declaration.
11936
11937 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11938
11939         * config/avr/libgcc.S (__RAMPZ__): Define.
11940         (__do_copy_data): Add for devices with 128KB code memory.
11941
11942 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11943
11944         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11945         Use spe_abi.
11946         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11947
11948 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11949
11950         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11951         GENNONACR_REGS.
11952
11953 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11954
11955         PR c/19999
11956         * c-typeck.c (build_binary_op): Warn about floating point
11957         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11958
11959 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11960
11961         PR target/34526
11962         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11963         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11964         add vrsave.
11965         (rs6000_override_options): Set altivec_abi as default, not override,
11966         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11967         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11968         is used; use new member spe_abi.
11969         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11970         spe_abi and altivec_abi.
11971
11972 2008-02-22  Tomas Bily  <tbily@suse.cz>
11973
11974         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11975
11976 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11977
11978         PR bootstrap/35273
11979         * config.build (build_file_translate): Set to `CMD //c' only if
11980         it works.
11981         * Makefile.in (build_file_translate): Improve comment.
11982
11983 2008-02-21  Jan Hubicka  <jh@suse.cz>
11984
11985         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11986         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11987         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11988
11989 2008-02-21  Michael Matz  <matz@suse.de>
11990
11991         PR target/35264
11992         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11993
11994 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11995
11996         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11997         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11998         as insn constraint.
11999         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
12000         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
12001         SSE_VEC_FLOAT_MODE_P as insn constraint.
12002         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
12003         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
12004         sse4a_movntdf using MODEF mode iterator.
12005         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
12006         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
12007         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
12008         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
12009         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
12010         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
12011         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
12012
12013 2008-02-21  Richard Guenther  <rguenther@suse.de>
12014
12015         * tree.def (PAREN_EXPR): New tree code.
12016         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
12017         and PAREN_EXPR.
12018         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
12019         * expr.c (expand_expr_real_1): Likewise.
12020         * tree-inline.c (estimate_num_insns_1): Likewise.
12021         * tree-complex.c (expand_complex_move): Likewise.
12022         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
12023         as plain x.
12024
12025 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12026
12027         PR target/35225
12028         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
12029
12030 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12031
12032         PR target/35190
12033         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
12034
12035         * config/sh/sh.c (find_barrier): Don't go past
12036         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
12037
12038 2008-02-20  DJ Delorie  <dj@redhat.com>
12039
12040         * config/h8300/h8300.md (insv): Force source operand to be a register.
12041
12042         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
12043         as a jump, not as a plain insn.
12044         
12045 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
12046
12047         * doc/invoke.texi (Warning Options): Add new option
12048         -Wframe-larger-than=.
12049         (-Wframe-larger-than): Document.
12050
12051         * flags.h (warn_frame_larger_than, frame_larger_than_size):
12052         Add declarations for new option variables.
12053
12054         * final.c (final_start_function): Check the frame size
12055         before emission and issue a Wframe-larger-than warning.
12056
12057         * opts.c (warn_frame_larger_than, frame_larger_than_size):
12058         Add definitions for new option variables.
12059         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
12060
12061         * common.opt (Wframe-larger-than=): New option.
12062
12063 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
12064
12065         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
12066         (<sse>_div<mode>3): Ditto.
12067         (<sse>_vmdiv<mode>3): Ditto.
12068         (<sse>_vmsqrt<mode>2): Ditto.
12069         (*smax<mode>3): Ditto.
12070         (sse5_frcz<mode>2): Ditto.
12071         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
12072         as insn constraint.
12073
12074 2008-02-20  Richard Guenther  <rguenther@suse.de>
12075
12076         PR middle-end/35265
12077         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
12078         be happy with INTEGRAL_TYPE_P.
12079
12080 2008-02-20  Richard Guenther  <rguenther@suse.de>
12081
12082         * fold-const.c (split_tree): Associate floatig-point expressions
12083         if flag_associative_math is set.
12084
12085 2008-02-20  Richard Guenther  <rguenther@suse.de>
12086
12087         * tree.h (fold_real_zero_addition_p): Declare.
12088         * fold-const.c (fold_real_zero_addition_p): Export.
12089         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
12090         floating-point operations with zero and one.
12091
12092 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
12093
12094         * doc/install.texi: Correct references to CFLAGS, replacing them
12095         with BOOT_CFLAGS.  Document flags used during bootstrap for
12096         target libraries.
12097                                 
12098 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
12099
12100         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
12101         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
12102         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
12103         insn constraint.
12104         (smin<mode>3): Ditto from similar patterns.
12105         (smax<mode>3): Ditto.
12106         (*ieee_smin<mode>3): Ditto.
12107         (*ieee_smax<mode>3): Ditto.
12108         * config/i386/sse.md (sse): New mode attribute.
12109         (mov<mode>): Macroize expander from movv4sf and movv2df using
12110         SSEMODEF2P mode iterator.
12111         (<sse>_movnt<mode>): Ditto from similar patterns. Use
12112         SSE_VEC_FLOAT_MODE_P as insn constraint.
12113         (storent<mode>): Ditto.
12114         (storent<mode>): Macroize expander from storentsf and storentdf using
12115         MODEF mode iterator.
12116         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
12117         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
12118         (abs<mode>2): Ditto from similar patterns.
12119         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
12120         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
12121         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
12122         (<sse>_vmsqrt<mode>2): Ditto.
12123         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
12124         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
12125         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
12126         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
12127         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
12128         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
12129         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
12130         insn constraint.
12131         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
12132         iterator and SSE_FLOAT_MODE_P as insn constraint.
12133         (<sse>_ucomi): Ditto from similar patterns.
12134         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
12135         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
12136         SSE_VEC_FLOAT_MODE_P as insn constraint.
12137         (vcond<mode>): Ditto from similar patterns.
12138         (and<mode>3, *and<mode>3): Ditto.
12139         (<sse>_nand<mode>3): Ditto.
12140         (ior<mode>3, *ior<mode>3): Ditto.
12141         (xor<mode>3, *xor<mode>3): Ditto.
12142         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
12143         iterator and SSE_FLOAT_MODE_P as insn constraint.
12144         (*nand<mode>3): Ditto from similar patterns.
12145         (*ior<mode>3): Ditto.
12146         (*xor<mode>3): Ditto.
12147
12148 2008-02-20  Ira Rosen  <irar@il.ibm.com>
12149
12150         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
12151         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
12152         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
12153
12154 2008-02-19  Jan Hubicka  <jh@suse.cz>
12155
12156         * predict.c (tree_bb_level_predictions): Remove variable next
12157         mistakely introduced by previous commit.
12158
12159 2008-02-19  Jan Hubicka  <jh@suse.cz>
12160
12161         * predict.c (predict_paths_leading_to): Rewrite.
12162         (predict_paths_for_bb): New.
12163         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
12164
12165 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12166
12167         PR bootstrap/35218
12168         * Makefile.in (build_file_translate): New.
12169         (gcc-vers.texi): Use it for translating $(abs_srcdir).
12170         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
12171         * configure.ac (build_file_translate): Substitute it.
12172         * configure: Regenerate.
12173
12174 2008-02-19  Jan Hubicka  <jh@suse.cz>
12175
12176         PR rtl-optimization/34408
12177         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
12178         invalid sharing.
12179
12180 2008-02-19  Jan Hubicka  <jh@suse.cz>
12181
12182         PR middle-end/28779
12183         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
12184         call_expr.
12185
12186 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
12187
12188         PR Ada/35186
12189         * config/i386/i386-modes.def: Revert the last DI alignment
12190         change until Ada people can look into it.
12191
12192 2008-02-19  Nick Clifton  <nickc@redhat.com>
12193
12194         * opts.c (print_specific_help): Fix typo in --help text.
12195
12196 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
12197
12198         PR target/35239
12199         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
12200         32-bit inline asm without asm alternatives for host GCC < 3.0.
12201
12202 2008-02-19  Richard Guenther  <rguenther@suse.de>
12203
12204         PR tree-optimization/34989
12205         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
12206         Allow propagation to INDIRECT_REF if we can simplify only.
12207
12208 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12209
12210         * c-common.c (warn_for_collisions_1): Use appropriate option when
12211         warning.
12212
12213 2008-02-19  Nick Clifton  <nickc@redhat.com>
12214
12215         PR other/31349
12216         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
12217         (handle_options): Fix indentation.
12218         (print_filtered_help): If no language-specific options were
12219         displayed tell the user how to list all the options supported by
12220         the language's front-end.
12221         (print_specific_help): Fix indentation and remove duplicate line.
12222         (common_handle_option): Handle the -v option.
12223         For --help enable the display of undocumented options if the -v
12224         switch has been included on the command line.
12225         For --help= check for overlaps in the arguments between the option
12226         classes and the language names and issue a warning when they
12227         cannot be disambiguated.
12228         * c.opt (v): Pass on to the common option handler.
12229
12230 2008-02-19  Revital Eres  <eres@il.ibm.com> 
12231
12232         * modulo-sched.c (sms_schedule): Change dump message when
12233         create_ddg function fails.
12234         (try_scheduling_node_in_cycle): Rename row to cycle.
12235         (print_partial_schedule): Rename CYCLE to ROW.
12236
12237 2008-02-19  Christian Bruel  <christian.bruel@st.com>
12238             Zdenek Dvorak  <ook@ucw.cz>
12239
12240         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
12241
12242 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
12243
12244         PR target/33555
12245         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
12246         (*x86_movdicc_0_m1_se): Ditto.
12247
12248 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
12249
12250         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
12251         (CMPtype): Define as __gcc_CMPtype.
12252         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
12253         (CMPtype): Define as __gcc_CMPtype.
12254
12255 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
12256
12257         Support valgrind 3.3 for --enable-checking=valgrind.
12258         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
12259         here.
12260         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
12261         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
12262         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
12263         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
12264         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
12265         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
12266         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
12267         respectively.
12268         * ggc-zone.c: Similar.
12269         * ggc-page.c: Similar.
12270
12271 2008-02-19  Paul Brook  <paul@codesourcery.com>
12272
12273         PR target/35071
12274         * config/arm/ieee754-df.S: Fix do_it typo.
12275         * config/arm/ieee754-sf.S: Fix do_it typo.
12276
12277 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
12278
12279         PR target/35189
12280         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
12281         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
12282         (OPTION_MASK_ISA_SSE_SET): Likewise.
12283         (OPTION_MASK_ISA_SSE2_SET): Likewise.
12284         (OPTION_MASK_ISA_SSE3_SET): Likewise.
12285         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
12286         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
12287         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
12288         (OPTION_MASK_ISA_SSE4_SET): Likewise.
12289         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
12290         (OPTION_MASK_ISA_SSE5_SET): Likewise.
12291         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
12292         (OPTION_MASK_ISA_MMX_UNSET): Updated.
12293         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
12294         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
12295         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
12296         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
12297         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
12298         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
12299         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
12300         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
12301         (OPTION_MASK_ISA_SSE4): Removed.
12302         (ix86_handle_option): Turn on bits in ix86_isa_flags and
12303         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
12304         (override_options): Don't turn on implied SSE/MMX bits in
12305         ix86_isa_flags.
12306
12307 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
12308
12309         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12310         32bit host.
12311
12312 2008-02-18  Joey Ye  <joey.ye@intel.com>
12313
12314         PR middle-end/34921
12315         * tree-nested.c (insert_field_into_struct): Set type alignment
12316         to field alignment if the former is less than the latter.
12317
12318 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
12319
12320         * BASE-VER: Set to 4.4.0.
12321
12322 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12323
12324         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
12325         * doc/cfg.texi: Likewise.
12326         * doc/extend.texi: Likewise.
12327         * doc/gty.texi: Likewise.
12328         * doc/invoke.texi: Likewise.
12329         * doc/loop.texi: Likewise.
12330         * doc/md.texi: Likewise.
12331         * doc/passes.texi: Likewise.
12332         * doc/rtl.texi: Likewise.
12333         * doc/sourcebuild.texi: Likewise.
12334         * doc/tm.texi: Likewise.
12335         * doc/tree-ssa.texi: Likewise.
12336
12337 2008-02-17  Richard Guenther  <rguenther@suse.de>
12338
12339         PR middle-end/35227
12340         * tree-complex.c (init_parameter_lattice_values): Handle parameters
12341         without default definition.
12342
12343 2008-02-17  Richard Guenther  <rguenther@suse.de>
12344
12345         PR tree-optimization/35231
12346         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
12347         if A | B != 1.
12348
12349 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
12350
12351         Revert:
12352         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
12353         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
12354         libgcc_cmp_return mode.
12355
12356 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12357
12358         PR c/28368
12359         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
12360
12361 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
12362
12363         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
12364         multilibs.
12365
12366 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12367
12368         * doc/c-tree.texi: Use `@.' where appropriate.
12369         * doc/extend.texi: Likewise.
12370         * doc/install.texi: Likewise.
12371         * doc/invoke.texi: Likewise.
12372         * doc/loop.texi: Likewise.
12373         * doc/makefile.texi: Likewise.
12374         * doc/md.texi: Likewise.
12375         * doc/passes.texi: Likewise.
12376         * doc/standards.texi: Likewise.
12377         * doc/tm.texi: Likewise.
12378
12379 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
12380
12381         PR middle-end/35196
12382         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
12383         in entry_bb.
12384         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
12385         rather than in entry_bb.
12386
12387 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
12388
12389         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
12390         libgcc_cmp_return mode.
12391
12392 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
12393
12394         PR middle-end/35130
12395         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
12396         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
12397
12398 2008-02-15  Richard Guenther  <rguenther@suse.de>
12399             Zdenek Dvorak  <ook@ucw.cz>
12400
12401         PR tree-optimization/35164
12402         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
12403         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
12404         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12405         Only propagate addresses which do not have abnormal SSA_NAMEs
12406         in their operands.
12407
12408 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
12409
12410         PR target/35088
12411         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
12412
12413 2008-02-15  Jan Hubicka  <jh@suse.cz>
12414
12415         PR middle-end/35149
12416         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
12417
12418 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
12419
12420         PR middle-end/34621
12421         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
12422         when calculating alignment_pad.
12423
12424 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
12425
12426         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
12427         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
12428         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
12429         and STACK_BOUNDARY define.
12430
12431 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
12432
12433         PR preprocessor/35061
12434         * c-pragma.c (handle_pragma_pop_macro): Check that
12435         pushed_macro_table has been allocated.
12436
12437 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
12438
12439         PR middle-end/35136
12440         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
12441         (force_gimple_operand): Likewise.
12442         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
12443         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
12444         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
12445         (find_interesting_uses_address): Check addressability and alignment
12446         of the base expression only after substituting bases of IVs into it.
12447
12448 2008-02-14  Michael Matz  <matz@suse.de>
12449
12450         PR target/34930
12451         * function.c (instantiate_virtual_regs_in_insn): Reload address
12452         before falling back to reloading the whole operand.
12453
12454 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
12455
12456         * config/s390/s390.c (s390_mainpool_start): Emit the pool
12457         before the first section switch note.
12458
12459 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12460
12461         * doc/bugreport.texi: Update copyright years.
12462         * doc/c-tree.texi: Likewise.
12463         * doc/cfg.texi: Likewise.
12464         * doc/cpp.texi: Likewise.
12465         * doc/cppinternals.texi: Likewise.
12466         * doc/fragments.texi: Likewise.
12467         * doc/frontends.texi: Likewise.
12468         * doc/gcc.texi: Likewise.
12469         * doc/gty.texi: Likewise.
12470         * doc/hostconfig.texi: Likewise.
12471         * doc/implement-c.texi: Likewise.
12472         * doc/libgcc.texi: Likewise.
12473         * doc/loop.texi: Likewise.
12474         * doc/makefile.texi: Likewise.
12475         * doc/options.texi: Likewise.
12476         * doc/passes.texi: Likewise.
12477         * doc/rtl.texi: Likewise.
12478         * doc/sourcebuild.texi: Likewise.
12479         * doc/standards.texi: Likewise.
12480         * doc/tree-ssa.texi: Likewise.
12481         * doc/trouble.texi: Likewise.
12482
12483         * doc/extend.texi: Use @: or add comma where appropriate.
12484         * doc/invoke.texi: Likewise.
12485         * doc/tm.texi: Likewise.
12486
12487 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
12488
12489         PR target/34393
12490         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
12491         to a reg.
12492
12493 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
12494
12495         * doc/md.texi (clz, ctz): Add reference.
12496         * doc/rtl.texi (clz, ctz): Likewise.
12497
12498 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12499
12500         PR other/35148
12501         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
12502         srcdir.
12503
12504 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
12505
12506         * config/s390/s390.c (struct constant_pool): New field
12507         emit_pool_after added.
12508         (s390_mainpool_start): Set the emit_pool_after flag according
12509         to the section switch notes.
12510         (s390_mainpool_finish): Consider emit_pool_after when emitting
12511         the literal pool at the end of the function.
12512         (s390_chunkify_start): Force literal pool splits at section
12513         switch notes.
12514
12515 2008-02-13  Michael Matz  <matz@suse.de>
12516
12517         PR debug/35065
12518         * var-tracking.c (clobber_variable_part): Correctly traverse the
12519         list.
12520
12521 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12522
12523         PR 29673
12524         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
12525         Add -fdump-ipa-inline.
12526         * tree-dump.c (dump_files): Remove tree-inlined dump.
12527         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
12528         
12529 2008-02-12  Richard Guenther  <rguenther@suse.de>
12530
12531         PR tree-optimization/35171
12532         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
12533         default defs.
12534
12535 2008-02-12  Richard Guenther  <rguenther@suse.de>
12536
12537         PR middle-end/35163
12538         * fold-const.c (fold_widened_comparison): Use get_unwidened in
12539         value-preserving mode.  Disallow final truncation.
12540
12541 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
12542
12543         PR middle-end/35136
12544         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
12545         code from here to...
12546         (force_gimple_operand): ...here.
12547
12548 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
12549
12550         PR c++/35144
12551         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
12552         non-compatible pointers.
12553         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
12554         different FIELD_DECLs, try harder by comparing field offsets, sizes
12555         and types.
12556
12557         PR inline-asm/35160
12558         * function.c (match_asm_constraints_1): Don't replace the same input
12559         multiple times.
12560
12561 2008-02-12  Anatoly Sokolov <aesok@post.ru>
12562
12563         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
12564         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
12565         (expand_epilogue): Restore RAMPZ register.
12566         * config/avr/avr.md (RAMPZ_ADDR): New constant.
12567
12568 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
12569
12570         * config/i386/cygwin.asm: (__alloca): Correct calling
12571         convention and alignment.
12572         (__chkstk): Force 8 byte stack alignment.
12573
12574 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
12575             Richard Guenther  <rguenther@suse.de>
12576
12577         PR tree-optimization/33992
12578         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
12579         the zero we compare against.
12580
12581 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12582
12583         PR libfortran/35063
12584         * gthr-win32.h (__gthread_mutex_destroy_function): New function
12585         to CloseHandle after unlocking to prevent accumulation of handle
12586         count.
12587
12588 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12589
12590         PR middle_end/34150
12591         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
12592         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
12593         and update LABEL_NUSES during and after reload.
12594
12595 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
12596
12597         PR middle-end/34627
12598         * combine.c (simplify_if_then_else): Make sure the comparison is
12599         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
12600
12601 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
12602
12603         PR bootstrap/35051
12604         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
12605         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
12606         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
12607         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
12608         * tree.h (get_type_static_bounds): Likewise.
12609
12610 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12611
12612         * doc/invoke.texi (Option Summary, C++ Dialect Options)
12613         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12614         Make -Wfoo language annotations match what the compiler outputs.
12615
12616 2008-02-08  Sa Liu  <saliu@de.ibm.com>
12617
12618         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
12619         intrinsics spu_convts, spu_convtu, spu_convtf.
12620
12621 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
12622
12623         * doc/extend.texi (Function Attributes) <noinline>: Mention
12624         asm ("") as method to keep calls.
12625
12626 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12627
12628         PR other/32754
12629         * doc/options.texi (Options): Replace references to opts.sh with
12630         optc-gen.awk.
12631         * opts-common.c: Likewise.
12632         * optc-gen.awk: Likewise.
12633         
12634 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
12635
12636         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
12637
12638 2008-02-07  Richard Henderson  <rth@redhat.com>
12639
12640         PR rtl-opt/33410
12641         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
12642         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
12643         funny mode.
12644
12645 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
12646
12647         PR tree-optimization/35085
12648         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
12649         for operand entry oe2 in addition to operand entry oe3 in order to
12650         expose more opportunities for vectorizer sum reduction.
12651
12652 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12653
12654         PR other/35107
12655         * Makefile.in (LIBS): Remove $(GMPLIBS).
12656         (cc1-dummy, cc1): Add $(GMPLIBS).
12657
12658 2008-02-06  Jan Hubicka  <jh@suse.cz>
12659
12660         PR target/23322
12661         * i386.md (moddf_integer): Do not produce partial memory stalls for
12662         targets where it hurts.
12663
12664 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
12665
12666         PR target/35083
12667         * optabs.c (expand_float): Do not check for decimal modes when
12668         expanding unsigned integer through signed conversion.
12669
12670 2008-02-06  Nick Clifton  <nickc@redhat.com>
12671
12672         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
12673         inside the clobber with a match_operand and duplicated operand
12674         number in the constraint.
12675         (ineqbranchsi): Delete redundant comment.
12676
12677 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12678
12679         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
12680         builtin_define ("__USE_INIT_FINI__").
12681         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
12682         -msx multilibs.
12683         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
12684
12685 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12686
12687         PR documentation/30330
12688         * doc/invoke.texi (C++ Dialect Options)
12689         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12690         For each warning option -Wfoo that allows -Wno-foo, ensure both
12691         -Wfoo and -Wno-foo are listed in the option index.  Fix index
12692         entry of -Wswitch-default, index -Wnormalized= including the
12693         `=', and -Wlarger-than-@var{len} including @var{len}.
12694
12695 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12696
12697         * config/i386/i386.md (floatunssisf2): Use
12698         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
12699         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
12700         Macroize expander using MODEF mode iterator.
12701
12702 2008-02-05  Diego Novillo  <dnovillo@google.com>
12703
12704         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
12705
12706         PR 33738
12707         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
12708
12709 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12710
12711         PR other/35070
12712         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
12713
12714 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
12715
12716         PR target/35084
12717         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
12718         to indicate if a message should be generated.
12719         (init_cumulative_args): Updated.
12720         (function_value_32): Likewise.
12721
12722 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
12723
12724         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
12725
12726 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12727
12728         PR target/35083
12729         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
12730         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
12731
12732 2008-02-04  Diego Novillo  <dnovillo@google.com>
12733
12734         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
12735
12736         PR 33738
12737         * tree-vrp.c (vrp_evaluate_conditional): With
12738         -Wtype-limits, emit a warning when comparing against a
12739         constant outside the natural range of OP0's type.
12740
12741 2008-02-04  Richard Guenther  <rguenther@suse.de>
12742
12743         PR middle-end/33631
12744         * expr.c (count_type_elements): Give for unions instead of
12745         guessing.
12746
12747 2008-02-04  Richard Guenther  <rguenther@suse.de>
12748
12749         PR middle-end/35043
12750         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
12751         to TYPE_DOMAINs base type instead of using bitsizetype here.
12752
12753 2008-02-03  Jason Merrill  <jason@redhat.com>
12754
12755         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
12756
12757 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12758
12759         PR other/29972
12760         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
12761         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
12762         (RS/6000 and PowerPC Options): Fix typos and markup.
12763         * doc/passes.texi (Tree-SSA passes): Likewise.
12764
12765 2008-02-02  Michael Matz  <matz@suse.de>
12766
12767         PR target/35045
12768         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
12769         from record_last_reg_set_info.
12770         (record_last_reg_set_info): Take an RTX argument, iterate over all
12771         constituent hardregs.
12772         (record_last_set_info, record_opr_changes): Change calls to
12773         new signature or to record_last_reg_set_info_regno.
12774
12775 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12776
12777         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
12778
12779 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
12780
12781         PR rtl-optimization/34773
12782         * reg-notes.def (EQUAL): Mention significance of combination of
12783         REG_EQUAL and REG_RETVAL.
12784         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
12785         insn that has a REG_RETVAL.
12786
12787 2008-02-01  Roger Sayle  <roger@eyesopen.com>
12788
12789         PR bootstrap/33781
12790         * configure.ac (--enable-fixed-point): Disable unless explicitly
12791         requested on IRIX.
12792         * configure: Regenerate.
12793
12794 2008-02-01  Richard Guenther  <rguenther@suse.de>
12795
12796         PR other/35042
12797         * invoke.texi (-finline-limit): Remove no longer true parts
12798         of the documentation.  Note that there is no default value.
12799
12800 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
12801             Mark Mitchell  <mark@codesourcery.com>
12802             Ben Elliston  <bje@au.ibm.com>
12803
12804         PR c/29326
12805         * doc/extend.texi (Other Builtins): Document.
12806
12807 2008-01-31  Tom Browder <tom.browder@gmail.com>
12808
12809         * doc/c-tree.texi (Types): Fix grammar.
12810         (Expression trees): Ditto.
12811         * doc/passes.texi (Tree-SSA passes): Ditto.
12812         
12813         * doc/configterms.texi (Configure Terms): Fix typo.
12814         * doc/cpp.texi (Common Predefined Macros): Ditto.
12815         * doc/md.texi (Machine Constraints): Ditto.
12816         
12817         * doc/makefile.texi (Makefile): Add comma.
12818
12819 2008-01-31  Tom Browder  <tom.browder@gmail.com>
12820             Gerald Pfeifer  <gerald@pfeifer.com>
12821         
12822         * doc/sourcebuild.texi (Front End): Remove references to CVS
12823         and CVSROOT/modules.
12824         (Texinfo Manuals): Replace reference to CVS by one to SVN.
12825         (Back End): Remove reference to CVS.
12826
12827 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12828
12829         PR target/34900
12830         * config/mips/mips.c (gen_load_const_gp): New function, taking a
12831         comment from...
12832         (mips16_gp_pseudo_reg): ...here.
12833         * config/mips/mips.md (load_const_gp): Replace with...
12834         (load_const_gp_<mode>): ...this :P-based insn.
12835
12836 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12837
12838         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
12839         options. Minor fixes.
12840         (-std): Move reference to standards closer to where language
12841         standards are first mentioned.
12842         
12843 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12844
12845         PR rtl-optimization/34995
12846         * reload.c (alternative_allows_const_pool_ref): Take an rtx
12847         parameter and return a bool.  If the rtx parameter is nonnull,
12848         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
12849         (find_reloads): Update call accordingly.  Pass the new operand
12850         if it needed no address reloads, otherwise pass null.
12851
12852 2008-01-30  Richard Henderson  <rth@redhat.com>
12853
12854         PR c/34993
12855         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
12856         for unbounded arrays.
12857
12858 2008-01-30  Silvius Rus  <rus@google.com>
12859
12860         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
12861
12862 2008-01-30  Jan Hubicka  <jh@suse.cz>
12863
12864         PR target/34982
12865         * i386.c (init_cumulative_args): Use real function declaration when
12866         calling locally.
12867
12868 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12869
12870         PR rtl-optimization/34998
12871         * global.c (build_insn_chain): Treat non-subreg_lowpart
12872         SUBREGs of pseudos as clobbering all the words covered by the
12873         SUBREG, not just all the bytes.
12874         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
12875         original df_ref rather than an extract parameter.
12876         (global_conflicts): Update call accordingly.
12877
12878 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
12879
12880         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
12881         the overflow check to make it easier to read.
12882         (__fixtfdi): Change the type of the ll member in union
12883         long_double to UDItype_x.
12884
12885 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
12886
12887         PR middle-end/34969
12888         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
12889         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
12890         * tree-inline.c (fold_marked_statements): Call
12891         cgraph_update_edges_for_call_stmt if folding a call statement.
12892         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
12893         debug_generic_stmt calls, reset it back afterwards.
12894
12895         PR c/35017
12896         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
12897         static decls.
12898         * c-typeck.c (build_external_ref): Don't pedwarn about
12899         static vars in current function's scope.
12900
12901 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
12902
12903         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
12904
12905 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
12906
12907         PR c/35002
12908         * ipa-struct-reorg.c: Fix spelling.
12909         * params.def: Ditto.
12910
12911 2008-01-29  Richard Guenther  <rguenther@suse.de>
12912
12913         PR middle-end/35006
12914         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12915         field.
12916         * tree-inline.c (remap_type): Increment remapping_type_depth
12917         around remapping types.
12918         (copy_body_r): Only add referenced variables if they are referenced
12919         from code, not types.
12920
12921 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12922
12923         PR c++/34055
12924         PR c++/34103
12925         PR c++/34219
12926         PR c++/34606
12927         PR c++/34753
12928         PR c++/34754
12929         PR c++/34755
12930         PR c++/34919
12931         PR c++/34961
12932         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12933         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12934
12935 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12936
12937         PR target/34412
12938         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12939         pointer for tiny stack.
12940
12941 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12942
12943         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12944
12945 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12946
12947         * config/vx-common.h: Fix typo in comment.
12948
12949 2008-01-28  Ian Lance Taylor  <iant@google.com>
12950
12951         PR c++/34862
12952         PR c++/33407
12953         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12954         coalesce pointers if they have different DECL_NO_TBAA_P values.
12955         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12956         between variables with different DECL_NO_TBAA_P values.
12957
12958 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12959
12960         PR 31535
12961         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12962         are not legitimate small data references on SPE targets.
12963
12964 2008-01-28  David Daney  <ddaney@avtrex.com>
12965
12966         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12967
12968 2008-01-28  David Daney  <ddaney@avtrex.com>
12969
12970         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12971
12972 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12973
12974         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12975         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12976         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12977         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12978         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12979         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12980         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12981         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12982
12983 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12984
12985         * basic-block.h (condjump_equiv_p): Fix comment.
12986
12987 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12988
12989         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12990         print_generic_stmt_indented): Fix comment.
12991
12992 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12993
12994         * configure.ac (__stack_chk_fail): Add detecion for availability
12995         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12996         * configure: Regenerate.
12997
12998 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12999
13000         PR middle-end/34688
13001         * final.c (output_addr_const): Handle TRUNCATE.
13002
13003 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
13004
13005         PR target/34711
13006         * tree-ssa-loop-ivopts.c (comp_cost): New type.
13007         (zero_cost, infinite_cost): New constants.
13008         (struct cost_pair): Change type of cost to comp_cost.
13009         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
13010         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
13011         New functions.
13012         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
13013         split_address_cost, ptr_difference_cost, difference_cost,
13014         get_computation_cost_at, get_computation_cost,
13015         determine_use_iv_cost_generic, determine_use_iv_cost_address,
13016         determine_use_iv_cost_condition, determine_use_iv_costs,
13017         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
13018         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
13019         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
13020         Change type of cost to comp_cost.
13021         (determine_iv_cost): Increase cost of non-original ivs, instead
13022         of decreasing the cost of original ones.
13023         (get_address_cost): Indicate the complexity of the addressing mode 
13024         in comp_cost.
13025         (try_add_cand_for): Prefer using ivs not specific to some object.
13026         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
13027
13028 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
13029             Janis Johnson  <janis187@us.ibm.com>
13030
13031         PR target/34814
13032         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
13033         (TARGET_INSTANTIATE_DECLS): Likewise.
13034         * target.h (expand_to_rtl_hook): New target hook.
13035         (instantiate_decls): Likewise.
13036         * function.c (instantiate_decl): Make non-static.  Rename to...
13037         (instantiate_decl_rtl): ... this.
13038         (instantiate_expr): Use instantiate_decl_rtl.
13039         (instantiate_decls_1): Likewise.
13040         (instantiate_decls): Likewise.
13041         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
13042         * function.h (instantiate_decl_rtl): Add prototype.
13043         * cfgexpand.c (target.h): New include.
13044         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
13045         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
13046         (TARGET_INSTANTIATE_DECLS): Likewise.
13047         (TARGET_INITIALIZER): New target hooks added.
13048         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
13049         New prototype.
13050         * config/rs6000/rs6000.c (tree-flow.h): New include.
13051         (machine_function): Add sdmode_stack_slot field.
13052         (rs6000_alloc_sdmode_stack_slot): New function.
13053         (rs6000_instantiate_decls): Likewise.
13054         (rs6000_secondary_memory_needed_rtx): Likewise.
13055         (rs6000_check_sdmode): Likewise.
13056         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
13057         (TARGET_INSTANTIATE_DECLS): Likewise.
13058         (rs6000_hard_regno_mode_ok): Allow SDmode.
13059         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
13060         (rs6000_emit_move): Handle SDmode.
13061         (function_arg_advance): Likewise.
13062         (function_arg): Likewise.
13063         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
13064         SDmode var args for 32-bit compiles.
13065         (rs6000_secondary_reload_class): Handle SDmode.
13066         (rs6000_output_function_epilogue): Likewise.
13067         (rs6000_function_value): Simplify if statement.
13068         (rs6000_libcall_value): Likewise.
13069         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
13070         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
13071         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
13072         (movsd_hardfloat): New define_insn.
13073         (movsd_softfloat): Likewise.
13074         (movsd_store): Likewise.
13075         (movsd_load): Likewise.
13076         (extendsddd2): Likewise.
13077         (extendsdtd2): Likewise.
13078         (truncddsd2): Likewise.
13079         (movdd_hardfloat64): Fixup comment.
13080         (UNSPEC_MOVSD_LOAD): New constant.
13081         (UNSPEC_MOVSD_STORE): Likewise.
13082
13083 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
13084
13085         PR c++/34965
13086         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
13087         TRUTH_XOR_EXPR.
13088         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
13089         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
13090         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
13091         and TRUTH_XOR_EXPR.
13092
13093 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
13094
13095         PR target/34794
13096         * config.gcc: Separate AIX 5.3 from AIX 6.1.
13097         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
13098         __LONGDOUBLE128 too.
13099         * config/rs6000/aix61.h: New file.
13100
13101 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
13102
13103         PR rtl-optimization/34959
13104         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
13105         popcount and parity rtxes the same mode as their operand.
13106         Truncate or extend the result to the return value's mode
13107         if necessary.
13108
13109 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
13110
13111         PR target/34981
13112         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
13113         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
13114         to GOT_VERSION_REGNUM.
13115         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
13116         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
13117         * config/mips/mips.c (mips_emit_call_insn): New function.
13118         (mips_call_tls_get_addr): Call mips_expand_call directly.
13119         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
13120         emit_call_insn.
13121         (mips16_build_call_stub): Likewise.  Return the call insn or null.
13122         (mips_expand_call): Update the call to mips16_build_call_stub
13123         accordingly and a remove redundant condition.  Assert that MIPS16
13124         stubs do not use lazy binding.  Use mips_emit_call_insn and return
13125         the call insn.
13126         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
13127         TARGET_USE_GOT.
13128         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
13129         (mips_avoid_hazard): Remove hazard_set handling.
13130         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
13131         (UNSPEC_RESTORE_GP): ...this.
13132         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
13133         (FAKE_CALL_REGNO): Rename to...
13134         (GOT_VERSION_REGNUM): ...this.
13135         (type): Add "ghost" value.  Add an associated insn reservation.
13136         (hazard_set): Remove.
13137         (exception_receiver): Rename to...
13138         (restore_gp): ...this and update the unspec identifier accordingly.
13139         (exception_receiver, nonlocal_got_receiver): New expanders.
13140         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
13141         FAKE_CALL_REGNO.  Remove hazard_set attribute.
13142         (set_got_version, update_got_version): New patterns.
13143
13144 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
13145
13146         PR target/34970
13147         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
13148
13149 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
13150
13151         PR other/31955
13152         * doc/install.texi2html: Generate gcc-vers.texi.
13153
13154 2008-01-25  DJ Delorie  <dj@redhat.com>
13155
13156         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
13157
13158 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
13159
13160         * config/c4x: Remove directory.
13161         * config.gcc (crx-*, mt-*): Mark obsolete.
13162         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
13163         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
13164         sh-*-rtemscoff*): Remove cases.
13165         * defaults.h (C4X_FLOAT_FORMAT): Remove.
13166         * real.c (encode_c4x_single, decode_c4x_single,
13167         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
13168         c4x_extended_format): Remove.
13169         * real.h (c4x_single_format, c4x_extended_format): Remove.
13170         * doc/extend.texi (interrupt, naked): Remove mention of attributes
13171         on C4x.
13172         (Pragmas): Remove comment about c4x pragmas.
13173         * doc/install.texi (c4x): Remove target-specific instructions.
13174         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
13175         * doc/md.texi (Machine Constraints): Remove C4x documentation.
13176         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
13177         refer to C4x source files as examples.
13178         (C4X_FLOAT_FORMAT): Remove documentation.
13179
13180 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
13181
13182         * config/bfin/bfin.c (override_options): Reorder tests so that
13183         flag_pic gets enabled for -msep-data.
13184
13185 2008-01-25  Richard Guenther  <rguenther@suse.de>
13186
13187         PR middle-end/32244
13188         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
13189         to its bitfield precision if required.
13190
13191 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
13192
13193         PR middle-end/33880
13194         * tree-nested.c (walk_omp_for): New function.
13195         (convert_nonlocal_reference, convert_local_reference): Call
13196         walk_omp_for on OMP_FOR.
13197         (convert_call_expr): Call walk_body on OMP_FOR's
13198         OMP_FOR_PRE_INIT_BODY.
13199
13200 2008-01-25  Richard Guenther  <rguenther@suse.de>
13201
13202         PR tree-optimization/34966
13203         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
13204         default defs and PHI_NODEs we have to insert after the
13205         defining statement.
13206
13207 2008-01-24  Nick Clifton  <nickc@redhat.com>
13208
13209         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
13210         Provide a default definition.
13211         (LIBGCC2_UNITS_PER_WORD): Likewise.
13212
13213         * config/stormy16/stormy16.c: Include df.h for the prototype
13214         for df_regs_ever_live_p.
13215         (xstormy16_expand_builtin_va_start): Convert the stack offset
13216         into a component_ref and then use POINTER_PLUS_EXPR to add it
13217         to the incoming_virtual_args_rtx.
13218         (xstormy16_gimplify_va_arg_expr): Rename to
13219         xstormy16_gimplify_va_arg_expr.
13220         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
13221         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
13222         xstormy16_gimplify_va_arg_expr.
13223         Fix up some formatting issues.
13224
13225         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
13226         Move to predicates.md.
13227         (xs_hi_general_operand): Likewise.
13228         (xs_hi_nonmemory_operand): Likewise.
13229         * config/stormy16/predicates.md:
13230         (xstormy16_carry_plus_operand): New predicate.
13231         (xs_hi_general_operand): New predicate.
13232         (xs_hi_nonmemory_operand): New predicate.
13233         * config/stormy16/stormy16-protos.h:
13234         (xstormy16_carry_plus_operand): Delete prototype.
13235         (xs_hi_general_operand): Likewise.
13236         (xs_hi_nonmemory_operand): Likewise.
13237
13238         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
13239         modifiers as they are no longer needed and they can trigger
13240         reload spill failures.
13241
13242         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
13243         with a match_operand in order to help reload.
13244
13245         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
13246         constraint with 'e' for the 8th alternative as this version of
13247         the mov.w instruction only accepts the lower 8 registers.
13248
13249 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
13250
13251         PR target/34856
13252         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
13253         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
13254         vector elements.
13255
13256 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
13257
13258         PR middle-end/33333
13259         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
13260
13261 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
13262
13263         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
13264         New functions.
13265         (remove_structure): Update allocations list before removing structure.
13266         
13267 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
13268
13269         * ipa-struct-reorg.c (is_safe_cond_expr, 
13270         create_new_stmts_for_cond_expr): Use integer_zerop function,
13271         that recognize not only zero-pointer, but zero-integer too.
13272
13273 2008-01-25  Ben Elliston  <bje@au.ibm.com>
13274
13275         PR other/22232
13276         * fixproto: Escape "." in sed expression that strips leading "./".
13277
13278 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13279
13280         PR driver/34904
13281         * gcc.c (SWITCH_OK): Removed.
13282         (SWITCH_LIVE): Changed to bit.
13283         (SWITCH_FALSE): Likewise.
13284         (SWITCH_IGNORE): Likewise.
13285         (switchstr): Change live_cond to unsigned int.
13286         (process_command): Replace SWITCH_OK with 0.
13287         (do_self_spec): Likewise.
13288         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
13289         (give_switch): Likewise.
13290         (used_arg): Likewise.
13291         (do_spec_1): Set the SWITCH_IGNORE bit.
13292         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
13293         bits.  Set the SWITCH_LIVE bit.
13294
13295 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
13296
13297         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
13298
13299 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
13300
13301         PR tree-optimization/34472
13302         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
13303         parameter to a "bool *" and set *DATA to false if there is
13304         an unsafe access.  Do not delete the structure here.
13305         (check_cond_exprs): Delete it here instead.
13306         (check_cond_exprs, exclude_cold_structs): Do not increase
13307         I when removing a structure.
13308
13309 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
13310
13311         PR target/34856
13312         * config/i386/i386.c (ix86_expand_vector_init): Consider only
13313         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
13314
13315 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
13316
13317         PR middle-end/34934
13318         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
13319         a fixed vector for stack.
13320
13321 2008-01-24  Ben Elliston  <bje@au.ibm.com>
13322
13323         PR c++/25701
13324         * doc/gcc.texi (Software development): Add a direntry for g++.
13325         
13326 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
13327
13328         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
13329         stale and straggling -fforce-addr comments above.
13330
13331         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
13332         define.
13333         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
13334         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
13335
13336 2008-01-23  Michael Matz  <matz@suse.de>
13337
13338         PR debug/34895
13339         * dwarf2out.c (force_type_die): Use modified_type_die instead of
13340         gen_type_die.
13341
13342 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
13343
13344         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
13345         malloc result type.
13346
13347 2008-01-23 Anatoly Sokolov <aesok@post.ru>
13348
13349         * config/avr/avr.c (avr_current_arch): New variable.
13350         (avr_arch_types): Add 'avr31' and 'avr51' entries.
13351         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
13352         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
13353         (avr_override_options): Init 'avr_current_arch'. 
13354         (base_arch_s): Move from here...
13355         * config/avr/avr.h (base_arch_s): ... here. Add new members 
13356         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
13357         'mega' to 'have_jmp_call'.
13358         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
13359         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
13360         macros.
13361         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
13362         architectures.
13363         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
13364         MULTILIB_MATCHES): (Ditto.).
13365
13366 2008-01-23  Richard Guenther  <rguenther@suse.de>
13367
13368         PR middle-end/31529
13369         * cgraphunit.c (cgraph_reset_node): Always mark the node
13370         not reachable if it is not queued already.
13371
13372 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
13373
13374         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
13375         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
13376         (cputype_selected): New static variable.
13377         (bfin_handle_option): Set it if -mcpu is used.
13378         (override_option): Select default set of workarounds if no cpu type
13379         selected on the command line.
13380         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
13381
13382         From  Michael Frysinger  <michael.frysinger@analog.com>
13383         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
13384         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
13385
13386         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
13387         for bf547, bf523, bf524, and bf526.
13388         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
13389         bf526.
13390         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
13391         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
13392         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
13393         __ADSPBF547__ and __ADSPBF54x__ for bf547.
13394         * doc/invoke.texi (Blackfin Options): Document that
13395         -mcpu now accept bf547, bf523, bf524, and bf526.
13396
13397 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
13398
13399         PR rtl-optimization/34628
13400         * combine.c (try_combine): Stop and undo after the first combination
13401         if an autoincrement side-effect on the first insn has effectively
13402         been lost.
13403
13404 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
13405
13406         PR target/34529
13407         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
13408         Offset addresses are not valid for Altivec or paired float modes.
13409
13410 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
13411
13412         PR c++/34607
13413         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
13414         if DECL_INITIAL (decl) is error_mark_node.
13415
13416         PR c++/34914
13417         * c-common.c (handle_vector_size_attribute): Only allow
13418         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
13419         the same way as pointer, array etc. types.
13420         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
13421
13422         PR c++/34917
13423         * tree.c (build_type_attribute_qual_variant): Call
13424         build_qualified_type if attributes are equal, but quals are not.
13425
13426 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13427
13428         PR 32102
13429         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
13430         * flags.h (warn_strict_aliasing): Remove.
13431         (warn_strict_overflow): Remove.
13432         * opts.c (warn_strict_aliasing): Remove.
13433         (warn_strict_overflow): Remove.
13434         * c-opts.c (c_common_handle_option): -Wall only sets
13435         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
13436         (c_common_post_options): Give default values to -Wstrict-aliasing
13437         and -Wstrict-overflow if they are uninitialized.
13438         * common.opt (Wstrict-aliasing): Specify Var and Init.
13439         (Wstrict-overflow): Likewise.
13440
13441 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
13442
13443         PR rtl-optimization/26854
13444         PR rtl-optimization/34400
13445         PR rtl-optimization/34884
13446         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
13447         DF_RD->gen.
13448         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
13449         (df_rd_bb_info.expanded_lr_out): Deleted
13450         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
13451         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
13452         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
13453         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
13454         Removed code to allocate, initialize or free expanded_lr_out.
13455         (df_rd_bb_local_compute_process_def): Restructured to make more
13456         understandable.
13457         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
13458         sets if the sets are being trimmed.
13459
13460 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
13461
13462         PR bootstrap/32287
13463         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
13464         (as_vers): Likewise.
13465         * configure: Regenerated.
13466
13467 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13468
13469         PR middle-end/33092
13470         * tree-pass.h (pass_build_alias): New pass.
13471         * tree-ssa-alias.c (gate_build_alias): New.
13472         (pass_build_alias): New.
13473         * passes.c (init_optimization_passes): Add pass_build_alias after
13474         pass_create_structure_vars.
13475
13476 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
13477
13478         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
13479         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
13480         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
13481         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
13482         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
13483         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
13484         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
13485         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
13486         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
13487         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
13488         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
13489         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
13490         * config/s390/s390.md (FP_ALL): New mode iterator.
13491         (_d): New mode attribute.
13492         ("*signbit<mode>2>"): Changed mode of first operand.
13493         ("isinf<mode>2"): Changed mode of first operand.
13494         ("*TDC_insn"): Adaptation for DFP modes.
13495
13496 2008-01-22  Ben Elliston  <bje@au.ibm.com>
13497
13498         * tree.c (check_qualified_type): Improve function description.
13499
13500 2008-01-21  Jason Merrill  <jason@redhat.com>
13501
13502         PR c++/34196
13503         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
13504         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
13505         if it is set.
13506
13507 2008-01-21  DJ Delorie  <dj@redhat.com>
13508
13509         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
13510         return zero.
13511
13512 2008-01-21  Richard Guenther  <rguenther@suse.de>
13513
13514         PR middle-end/34856
13515         * tree-cfg.c (verify_expr): Allow all invariant expressions
13516         instead of just constant class ones as reference argument.
13517         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
13518         like any other constant.
13519         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13520
13521 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
13522
13523         * regmove.c (fixup_match_1): Update call crossed frequencies.
13524
13525 2008-01-21  Richard Guenther  <rguenther@suse.de>
13526
13527         PR c/34885
13528         * tree-inline.c (setup_one_parameter): Deal with mismatched
13529         types using a VIEW_CONVERT_EXPR.
13530
13531 2008-01-21  Alon Dayan  <alond@il.ibm.com>
13532             Olga Golovanevsky  <olga@il.ibm.com>
13533         
13534         PR tree-optimization/34701
13535         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
13536         when the structure size is not a power of 2.
13537
13538 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
13539
13540         * doc/install.texi: Add doc for --enable-checking=df.
13541         
13542 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13543
13544         PR rtl-optimization/34808
13545         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
13546
13547 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
13548
13549         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
13550         input.
13551
13552 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
13553
13554         PR rtl-optimization/26854
13555         PR rtl-optimization/34400
13556         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
13557         DF_RD->gen.
13558         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
13559         (df_rd_bb_info.expanded_lr_out): New.
13560         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
13561         * loop_iv.c (iv_analysis_loop_init): Ditto.
13562         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
13563         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
13564         Added code to allocate, initialize or free expanded_lr_out.
13565         (df_rd_bb_local_compute_process_def): Restructured to make
13566         more understandable.
13567         (df_rd_confluence_n): Add code to do nothing with fake edges and
13568         code to no apply invalidate_by_call sets if the sets are being trimmed.
13569         (df_lr_local_finalize): Renamed to df_lr_finalize.
13570         (df_live_local_finalize): Renamed to df_live_finalize.
13571
13572 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
13573
13574         PR target/34831
13575         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
13576         deciding whether to use reciprocal instructions.
13577
13578 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
13579
13580         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
13581         dwarf2out_note_section_used if cold_text_section is NULL.
13582
13583 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
13584
13585         PR gcov-profile/34610
13586         * tree-cfg.c (make_edges): Mark both outgoing edges from
13587         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
13588         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
13589         from OMP_FOR and OMP_CONTINUE outgoing edges.
13590
13591         * tree-profile.c (tree_profiling): Return early if
13592         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
13593         at the end.
13594         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
13595         from cfun to child_cfun.
13596         * function.h (struct function): Add after_tree_profile bit.
13597
13598 2008-01-19 Anatoly Sokolov <aesok@post.ru>
13599
13600         * config/avr/avr.S (_exit): Disable interrupt.
13601
13602 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
13603             Steven Bosscher  <stevenb.gcc@gmail.com>
13604
13605         PR rtl-optimization/26854
13606         PR rtl-optimization/34400
13607         * df-problems.c (df_live_scratch): New scratch bitmap.
13608         (df_live_alloc): Allocate df_live_scratch when doing df_live.
13609         (df_live_reset): Clear the proper bitmaps.
13610         (df_live_bb_local_compute): Only process the artificial defs once
13611         since the order is not important.
13612         (df_live_init): Init the df_live sets only with the variables
13613         found live by df_lr.
13614         (df_live_transfer_function): Use the df_lr sets to prune the
13615         df_live sets as they are being computed.  
13616         (df_live_free): Free df_live_scratch.
13617
13618 2008-01-18  Ian Lance Taylor  <iant@google.com>
13619
13620         * common.opt: Add fmerge-debug-strings.
13621         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
13622         flag_merge_debug_strings rather than flag_merge_constants.
13623         * doc/invoke.texi (Option Summary): Mention
13624         -fmerge-debug-strings.
13625         (Debugging Options): Document -fmerge-debug-strings.
13626
13627 2008-01-18  Ian Lance Taylor  <iant@google.com>
13628
13629         PR c++/33407
13630         * tree.h (DECL_IS_OPERATOR_NEW): Define.
13631         (struct tree_function_decl): Add new field operator_new_flag.
13632         * tree-inline.c (expand_call_inline): When inlining a call to
13633         operator new, force the return value to go into a variable, and
13634         set DECL_NO_TBAA_P on that variable.
13635         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
13636
13637 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
13638
13639         PR debug/34484
13640         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
13641         DWARF2_DEBUGGING_INFO.
13642         (dwarf2out_note_section_used): Ditto.  Add prototype.
13643         (have_multiple_function_sections, text_section_used,
13644         cold_text_section_used, *cold_text_sections): Move declarations
13645         before their uses.
13646
13647 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
13648
13649         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
13650         field and add signal_ra.
13651         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
13652         assignments to frame state pc.  Move end of stack check after
13653         MD_FALLBACK_FRAME_STATE_FOR.
13654         (uw_update_context_1): Use frame state signal_regs if set, instead
13655         of checking signal_frame flag.
13656         (uw_update_context): Use frame state signal_ra if set.
13657         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
13658         * config/xtensa/linux-unwind.h: New file.
13659
13660 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
13661
13662         * modulo-sched.c (get_sched_window): Fix comment typo.
13663
13664 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
13665
13666         PR tree-optimization/34648
13667         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
13668
13669 2008-01-17  Anatoly Sokolov <aesok@post.ru>
13670
13671         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
13672         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
13673
13674 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
13675
13676         PR rtl-optimization/34400
13677         * df-core.c (df_worklist_dataflow_overeager,
13678         df_worklist_dataflow_doublequeue): New functions.
13679         (df_worklist_dataflow): Two different worklist solvers.
13680         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
13681         New param.
13682
13683 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13684
13685         PR testsuite/34821
13686         * doc/invoke.texi: Document the dependence on pthread for fopenmp
13687         and ftree-parallelize-loops.
13688
13689 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
13690
13691         PR rtl-optimization/34826
13692         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
13693
13694 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13695
13696         * global.c (find_reg): Mark the eh regs as used if necessary.
13697         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
13698         * ra.h (struct allocno): no_eh_reg field added.  Changed
13699         no_stack_reg type to bitfield.
13700
13701 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
13702
13703         * tree.c (substitute_in_expr): Add missing 'break'.
13704
13705 2008-01-17  Richard Guenther  <rguenther@suse.de>
13706
13707         PR tree-optimization/34825
13708         * tree-ssa-math-opts.c (is_division_by): Do not recognize
13709         x / x as division to handle.
13710
13711 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13712
13713         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
13714         "-pthread" is specified.
13715         * pa-hpux11.h (LIB_SPEC): Likewise.
13716
13717 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
13718             Peter Bergner  <bergner@vnet.ibm.com>
13719
13720         PR rtl-optimization/33796
13721         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
13722
13723 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13724
13725         PR libgfortran/34699
13726         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
13727         static links.
13728         * pa-hpux10.h (LINK_SPEC): Likewise.
13729         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
13730
13731 2008-01-16  Richard Guenther  <rguenther@suse.de>
13732
13733         PR middle-end/32628
13734         * fold-const.c (fold_convert_const_int_from_int): Do not
13735         set overflow if that occured only because of a sign extension
13736         change when converting from/to a sizetype with the same
13737         precision and signedness.
13738
13739 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13740
13741         PR debug/34249
13742         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
13743         location address to the correct place.  Update copyright year.
13744
13745 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13746
13747         * lambda-code.c (lambda_transform_legal_p): Handle the case of
13748         no dependences in the dependence_relations vector.
13749
13750 2008-01-16  Jan Hubicka  <jh@suse.cz>
13751
13752         PR rtl-optimization/31396
13753         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
13754         * cfg.c (dump_reg_info): Print it.
13755         * regs.h (struct reg_info_t): add freq_calls_crossed.
13756         (REG_FREQ_CALLS_CROSSED): New macro.
13757         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
13758         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
13759         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
13760         regmove_optimize): Update call crossed frequencies.
13761         * local-alloc.c (struct qty): Add freq_calls_crossed.
13762         (alloc_qty): Copute freq_calls_crossed.
13763         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
13764         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
13765         * ra.h (struct allocno): Add freq_calls_crossed.
13766
13767 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13768
13769         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
13770         libgomp when compiling with ftree-parallelize-loops.
13771         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
13772
13773 2008-01-16  Richard Guenther  <rguenther@suse.de>
13774
13775         PR tree-optimization/34769
13776         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
13777         * tree.c (int_cst_value): Instead make this function more
13778         permissive in what it accepts as valid input.  Document this
13779         function always sign-extends the value.
13780
13781 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
13782             Richard Guenther  <rguenther@suse.de>
13783
13784         PR c/34668
13785         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
13786         (gimple_fold_indirect_ref_rhs): ... this.
13787         (gimple_fold_indirect_ref): New function with foldings
13788         that preserve lvalueness.
13789         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
13790         * tree-flow.h (gimple_fold_indirect_ref): Declare.
13791         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
13792         to fold an INDIRECT_REF, fall back to the old use of
13793         fold_indirect_ref_1.
13794
13795 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13796
13797         * tree-data-ref.c (subscript_dependence_tester_1): Call 
13798         free_conflict_function.
13799         (compute_self_dependence): Same.
13800
13801 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13802
13803         PR debug/34249
13804         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
13805         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
13806         function global.
13807         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
13808         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
13809         for DWARF2_UNWIND_INFO targets.
13810
13811 2008-01-16  Richard Guenther  <rguenther@suse.de>
13812
13813         PR c/34768
13814         * c-typeck.c (common_pointer_type): Do not merge inconsistent
13815         type qualifiers for function types.
13816
13817 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
13818
13819         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
13820         loop_iterator li from previous commit.
13821
13822 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13823
13824         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
13825
13826 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13827
13828         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
13829         (parallelize_loops): Don't parallelize irreducible components.
13830
13831 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13832
13833         PR c++/24924
13834         * c-opts (c_common_post_options): Do not enable CPP
13835         flag_pedantic_errors by default.
13836         
13837 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
13838
13839         PR rtl-optimization/31944
13840         * cse.c (remove_pseudo_from_table): New function.
13841         (merge_equiv_classes): Use above function to remove pseudo-registers.
13842         (invalidate): Likewise.
13843
13844 2008-01-13  Richard Guenther  <rguenther@suse.de>
13845
13846         PR middle-end/34601
13847         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
13848         instead of TYPE_MODE to deal with calls from expand_one_error_var.
13849
13850 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
13851
13852         * gcse.c (cprop_jump): Call validate_unshare_change instead of
13853         validate_change to unshare the source of the PC set.
13854
13855 2008-01-12  Jan Hubicka  <jh@suse.cz>
13856
13857         PR middle-end/32135
13858         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
13859         references above array bounds.  This might trigger bounds checks for
13860         pointers to arrays.
13861
13862 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13863
13864         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
13865         new_replaceable_dependencies.
13866
13867 2008-01-12  Doug Kwan  <dougkwan@google.com>
13868
13869         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
13870         instead of OPT_Wreturn_type in warning due to ignored return type
13871         qualifiers.
13872         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
13873         options included in -Wextra.
13874         * c.opt: New option -Wignored_qualifiers.
13875         * doc/invoke.texi (Warning Options, -Wextra): Add new option
13876         -Wignore_qualifiers.
13877         (-Wignored-qualifiers): Document.
13878         (-Wreturn-type): Remove description of functionality now handled
13879         by -Wignored-qualifiers.
13880
13881 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
13882
13883         PR ada/33788
13884         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
13885         NOP_EXPR if it is between integral types with the same precision.
13886
13887 2008-01-12  Jan Hubicka  <jh@suse.cz>
13888
13889         PR other/28023
13890         * invoke.texi (max-inline-recursive-depth): Fix default value.
13891
13892 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
13893
13894         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
13895         correct type.
13896
13897 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
13898         
13899         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
13900         
13901 2008-01-11  James E. Wilson  <wilson@specifix.com>
13902
13903         PR target/26015
13904         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
13905
13906 2008-01-11  Anatoly Sokolov <aesok@post.ru>
13907
13908         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
13909         save/restore frame pointer register and don't use 'call-prologues' 
13910         optimization in function with "OS_task" attribute.
13911
13912 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13913
13914         PR middle-end/31309
13915         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13916         when copying to memory.
13917
13918 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13919
13920         PR rtl-optimization/30905
13921         * cfgcleanup.c: Include dce.h
13922         (crossjumps_occured): New global variable.
13923         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13924         If something changed, set crossjumps_occured to true.
13925         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13926         Don't add/remove fake edges to exit here...
13927         (cleanup_cfg): ...but do it here, when crossjumping.
13928         Run a fast DCE when successful crossjumps occured in the latest
13929         iteration of try_optimize_cfg.
13930
13931 2008-01-11  Richard Guenther  <rguenther@suse.de>
13932
13933         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13934         (struct vn_unary_op_s): Likewise.
13935         (vn_reference_insert): Free old reference on hash collision.
13936
13937 2008-01-10  Raksit Ashok  <raksit@google.com>
13938
13939         PR rtl-optimization/27971
13940         * combine.c (find_split_point): Split PLUS expressions which are
13941         inside a MEM rtx, and whose first operand is complex.
13942
13943 2008-01-10  DJ Delorie  <dj@redhat.com>
13944
13945         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13946         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13947         (m32c_hard_regno_ok): Call the underlying function.
13948
13949 2008-01-10  Richard Guenther  <rguenther@suse.de>
13950
13951         PR middle-end/34683
13952         * tree-cfg.c (tree_merge_blocks): Do not go through the
13953         full-blown folding and stmt updating path if we just deal
13954         with virtual operands.
13955         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13956         test for abnormal SSA_NAMEs.
13957
13958 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13959
13960         PR middle-end/34641
13961         * reload.c (push_reload): Add assertions.  All constants from
13962         reg_equiv_constant should have been used for replacing the respective
13963         pseudo earlier.
13964         (find_reloads_address): Invoke find_reloads_address_part for
13965         constant taken from the reg_equiv_constant array.
13966
13967 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13968
13969         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13970         field (valnum) the first in the struct.  Replace bools with
13971         unit bit fields.
13972
13973 2008-01-10  Richard Guenther  <rguenther@suse.de>
13974
13975         PR tree-optimization/34651
13976         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13977         types and ordering for masking and converting.
13978
13979 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13980
13981         PR tree-optimization/34017
13982         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13983         also for PHI_NODE expressions.
13984
13985 2008-01-09  Jan Hubicka  <jh@suse.cz>
13986
13987         PR tree-optimization/34708
13988         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13989         based on number of case labels.
13990         (init_inline_once): Remove switch_cost.
13991         * tree-inline.h (eni_weights_d): Remove switch_cost.
13992
13993 2008-01-09  Richard Guenther  <rguenther@suse.de>
13994         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13995
13996         PR middle-end/30132
13997         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13998         temporary if an rvalue is ok or an lvalue is not required.
13999
14000 2008-01-09  Richard Guenther  <rguenther@suse.de>
14001
14002         PR middle-end/34458
14003         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
14004         adjust return type.
14005
14006 2008-01-09  Richard Guenther  <rguenther@suse.de>
14007
14008         PR middle-end/34679
14009         * tree.c (host_integerp): Check for sizetype only if the
14010         type is an integer type.
14011
14012 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
14013
14014         PR debug/26364
14015         * opts.c (decode_options): Disable inlining of functions called
14016         once if not in unit-at-a-time mode.
14017
14018 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
14019
14020         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
14021
14022 2008-01-08  Richard Guenther  <rguenther@suse.de>
14023
14024         PR middle-end/31863
14025         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
14026         out early if the result will be unused.
14027
14028 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
14029
14030         PR target/34709
14031         Revert:
14032
14033         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
14034         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
14035         for TARGET_RECIP.       
14036         
14037 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
14038         
14039         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
14040         for vectorization tuned.
14041         
14042 2008-01-08  Richard Guenther  <rguenther@suse.de>
14043
14044         PR tree-optimization/34683
14045         * tree-ssa-operands.c (operand_build_cmp): Export.
14046         * tree-ssa-operands.h (operand_build_cmp): Declare.
14047         * tree-vn.c (vuses_compare): Remove.
14048         (sort_vuses): Use operand_build_cmp.
14049         (sort_vuses_heap): Likewise.
14050         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
14051         to re-use old VEC if available.  Do not sort already sorted VUSEs.
14052         (vdefs_to_vec): Do not sort already sorted VDEFs.
14053
14054 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
14055
14056         PR middle-end/34694
14057         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
14058
14059 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
14060
14061         PR target/34702
14062         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
14063         limitations of reciprocal sequences on x86 targets.
14064
14065 2008-01-08  Richard Guenther  <rguenther@suse.de>
14066
14067         PR tree-optimization/34683
14068         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
14069
14070 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
14071
14072         PR target/34622
14073         * config/darwin.c (darwin_mergeable_string_section): Don't use
14074         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
14075
14076 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
14077
14078         PR target/34682
14079         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
14080         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
14081         predicates of op0 and op1 to register_operand.
14082         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
14083         expander using X87MODEF mode iterator.  Change predicates of
14084         op0 and op1 to register_operand.
14085         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
14086         corresponding patterns and macroize using MODEF macro.  Change
14087         predicates of op0 and op1 to register_operand and remove
14088         "m" constraint. Disparage "r" alternative with "!".
14089         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
14090         macroize using X87MODEF macro.  Change predicates of op0 and op1
14091         to register_operand and remove "m" constraint.  Disparage "r"
14092         alternative with "!".
14093         (absneg splitter with memory operands): Remove.
14094         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
14095         patterns and macroize using X87MODEF mode iterator.
14096         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
14097         Change predicate of op1 to register_operand.
14098         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
14099         for memory operands.
14100
14101 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
14102
14103         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
14104
14105 2008-01-07  Richard Guenther  <rguenther@suse.de>
14106
14107         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
14108         fields.
14109
14110 2008-01-07  Richard Guenther  <rguenther@suse.de>
14111
14112         PR tree-optimization/34683
14113         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
14114         VOPs of the needed size to save memory.  Use VEC_quick_push
14115         to save compile-time.
14116         (vdefs_to_vec): Likewise.
14117
14118 2008-01-07  Sa Liu  <saliu@de.ibm.com>
14119
14120         * config/spu/spu.md (divdf3): Genetate inline code for double
14121         division.  The implementation doesn't handle INF or NAN, therefore it
14122         only applies when -ffinite-math-only is given.
14123
14124 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
14125
14126         PR libstdc++/34680
14127         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
14128         * doc/cpp.texi ([Common Predefined Macros]): Document.
14129
14130 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
14131
14132         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
14133         order to use commutative addition instead of subtraction.
14134
14135 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14136             Mircea Namolaru  <namolaru@il.ibm.com>
14137             Vladimir Yanovsky  <yanov@il.ibm.com>
14138             Revital Eres  <eres@il.ibm.com>
14139
14140         PR tree-optimization/34263
14141         * tree-outof-ssa.c (process_single_block_loop_latch,
14142         contains_tree_r): New functions.
14143         (analyze_edges_for_bb): Call process_single_block_loop_latch
14144         function to empty single-basic-block latch block if possible.
14145
14146 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
14147
14148         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
14149         for TARGET_RECIP.
14150         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
14151
14152 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
14153
14154         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
14155
14156 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
14157
14158         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
14159
14160 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
14161
14162         PR tree-optimization/34618
14163         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
14164         flag from T.
14165
14166 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
14167
14168         PR target/34673
14169         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
14170         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
14171         Update copyright year.
14172
14173         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
14174         Update copyright year.
14175         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
14176         using NR fixup.
14177
14178 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
14179
14180         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
14181         edge does not point to current bb before changing need_assert.
14182
14183 2008-01-04  Richard Guenther  <rguenther@suse.de>
14184
14185         PR middle-end/34029
14186         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
14187         for verifying purposes if they are is_gimple_min_invariant.
14188
14189 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
14190
14191         PR tree-optimization/34448
14192         PR tree-optimization/34465
14193         * gimplify.c (gimplify_init_constructor): Add new parameter
14194         notify_temp_creation.  Use it.
14195         (gimplify_modify_expr_rhs): Take volatiles into account when
14196         optimizing constructors.
14197         Do not optimize constructors if gimplify_init_constructor will dump to
14198         memory.
14199         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
14200         * gcc.c-torture/compile/pr34448.c: New.
14201
14202 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
14203
14204         PR gcov-profile/34609
14205         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
14206         return_slot if result is TREE_ADDRESSABLE.
14207
14208 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
14209
14210         * config/mips/mips.md (sqrt_condition): Tweak comment.
14211         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
14212
14213 2008-01-03  Tom Tromey  <tromey@redhat.com>
14214
14215         PR c/34457
14216         * c-common.c (c_type_hash): Handle VLAs.
14217
14218 2008-01-03  Jan Hubicka  <jh@suse.cz>
14219
14220         PR tree-optimization/31081
14221         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
14222         0 when inlining and not inlining to first basic block.
14223         (remap_decl): When var is initialized to 0, don't set default_def.
14224         (expand_call_inline): Set entry_bb.
14225         * tree-inline.h (copy_body_data): Add entry_bb.
14226
14227 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
14228
14229         PR c++/34619
14230         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
14231         before returning.
14232
14233         PR tree-optimization/29484
14234         * tree-inline.c (inline_forbidden_p_2): New function.
14235         (inline_forbidden_p): Disallow inlining if some static var
14236         has an address of a local LABEL_DECL in its initializer.
14237         * doc/extend.texi (Labels as Values): Document &&foo behaviour
14238         vs. inlining.
14239
14240 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14241
14242         PR tree-optimization/34635
14243         * tree-data-ref.c (add_other_self_distances): Make sure that the
14244         evolution step is constant.
14245
14246 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
14247
14248         PR middle-end/34608
14249         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
14250
14251 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
14252
14253         * tree-sra.c (scalarize_init): Insert the generate_element_init
14254         statements after the generate_element_zero statements.
14255
14256 2008-01-02  Richard Guenther  <rguenther@suse.de>
14257
14258         PR middle-end/34093
14259         PR middle-end/31976
14260         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
14261         for very large number of operands instead of ICEing.
14262
14263 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
14264
14265         PR target/34013
14266         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
14267         while stack probing.
14268
14269 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
14270
14271         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
14272         in C++0x mode.
14273
14274 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
14275
14276         PR libmudflap/26442
14277         * tree-mudflap.c (mx_register_decls): Guard warning by
14278         !DECL_ARTIFICIAL check.
14279
14280 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
14281
14282         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
14283         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
14284         sse5_perm<mode>): Fix constraints.