OSDN Git Service

* passes.c (execute_ipa_pass_list): Do not regenerate summaries.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-06  Jan Hubicka  <jh@suse.cz>
2
3         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
4
5 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6
7         * cgraph.c: Fix typos in comments.
8         (cgraph_availability_names): Fix string typo.
9         * fold-const.c: Fix typos in comments.
10         (fold_binary): Fix typo in warning.
11         * genautomata.c: Fix typos in comments.
12         (check_presence_pattern_sets): Fix typo in local variable.
13         (output_description): Fix typo in output.
14         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
15         * hwint.h: Likewise.
16         * matrix-reorg.c (check_allocation_function): Likewise.
17         * omega.c (smooth_weird_equations): Likewise.
18         * auto-inc-dec.c: Fix typos in comments.
19         * bb-reorder.c: Likewise.
20         * builtins.c: Likewise.
21         * c-common.c: Likewise.
22         * c-cppbuiltin.c: Likewise.
23         * c-parser.c: Likewise.
24         * c-pretty-print.c: Likewise.
25         * cfgcleanup.c: Likewise.
26         * cfgexpand.c: Likewise.
27         * cfghooks.c: Likewise.
28         * cfglayout.c: Likewise.
29         * cfgloopmanip.c: Likewise.
30         * cgraphunit.c: Likewise.
31         * coverage.c: Likewise.
32         * dbxout.c: Likewise.
33         * df-byte-scan.c: Likewise.
34         * df-core.c: Likewise.
35         * df-problems.c: Likewise.
36         * df-scan.c: Likewise.
37         * dfp.c: Likewise.
38         * dominance.c: Likewise.
39         * domwalk.c: Likewise.
40         * dse.c: Likewise.
41         * dwarf2out.c: Likewise.
42         * emit-rtl.c: Likewise.
43         * et-forest.c: Likewise.
44         * function.c: Likewise.
45         * function.h: Likewise.
46         * gcc.c: Likewise.
47         * gcov-io.c: Likewise.
48         * gcov.c: Likewise.
49         * gcse.c: Likewise.
50         * genattrtab.c: Likewise.
51         * ggc-page.c: Likewise.
52         * gimplify.c: Likewise.
53         * gthr-lynx.h: Likewise.
54         * haifa-sched.c: Likewise.
55         * ipa-cp.c: Likewise.
56         * ipa-inline.c: Likewise.
57         * ipa-prop.h: Likewise.
58         * ipa-pure-const.c: Likewise.
59         * ipa-struct-reorg.c: Likewise.
60         * ipa-struct-reorg.h: Likewise.
61         * ipa-type-escape.c: Likewise.
62         * ipa.c: Likewise.
63         * loop-doloop.c: Likewise.
64         * mips-tfile.c: Likewise.
65         * mkmap-flat.awk: Likewise.
66         * mkmap-symver.awk: Likewise.
67         * modulo-sched.c: Likewise.
68         * omp-low.c: Likewise.
69         * optabs.c: Likewise.
70         * optabs.h: Likewise.
71         * opts.c: Likewise.
72         * passes.c: Likewise.
73         * postreload-gcse.c: Likewise.
74         * postreload.c: Likewise.
75         * predict.c: Likewise.
76         * pretty-print.h: Likewise.
77         * profile.c: Likewise.
78         * protoize.c: Likewise.
79         * ra-conflict.c: Likewise.
80         * real.c: Likewise.
81         * recog.c: Likewise.
82         * regclass.c: Likewise.
83         * regs.h: Likewise.
84         * reload.c: Likewise.
85         * rtl-error.c: Likewise.
86         * rtlanal.c: Likewise.
87         * scan.h: Likewise.
88         * sched-rgn.c: Likewise.
89         * see.c: Likewise.
90         * stmt.c: Likewise.
91         * target.h: Likewise.
92         * tree-dfa.c: Likewise.
93         * tree-eh.c: Likewise.
94         * tree-flow-inline.h: Likewise.
95         * tree-inline.c: Likewise.
96         * tree-into-ssa.c: Likewise.
97         * tree-loop-distribution.c: Likewise.
98         * tree-nested.c: Likewise.
99         * tree-parloops.c: Likewise.
100         * tree-pass.h: Likewise.
101         * tree-pretty-print.c: Likewise.
102         * tree-profile.c: Likewise.
103         * tree-scalar-evolution.c: Likewise.
104         * tree-sra.c: Likewise.
105         * tree-ssa-alias-warnings.c: Likewise.
106         * tree-ssa-ccp.c: Likewise.
107         * tree-ssa-coalesce.c: Likewise.
108         * tree-ssa-dom.c: Likewise.
109         * tree-ssa-dse.c: Likewise.
110         * tree-ssa-forwprop.c: Likewise.
111         * tree-ssa-live.c: Likewise.
112         * tree-ssa-live.h: Likewise.
113         * tree-ssa-loop-im.c: Likewise.
114         * tree-ssa-loop-ivopts.c: Likewise.
115         * tree-ssa-loop-niter.c: Likewise.
116         * tree-ssa-loop-prefetch.c: Likewise.
117         * tree-ssa-phiopt.c: Likewise.
118         * tree-ssa-phiprop.c: Likewise.
119         * tree-ssa-sccvn.c: Likewise.
120         * tree-ssa-ter.c: Likewise.
121         * tree-ssa-threadupdate.c: Likewise.
122         * tree-ssa.c: Likewise.
123         * tree-vect-analyze.c: Likewise.
124         * tree-vect-transform.c: Likewise.
125         * tree-vectorizer.c: Likewise.
126         * tree-vn.c: Likewise.
127         * tree-vrp.c: Likewise.
128         * tree.c: Likewise.
129         * tree.def: Likewise.
130         * tree.h: Likewise.
131         * unwind-dw2-fde.c: Likewise.
132         * unwind.inc: Likewise.
133         * value-prof.c: Likewise.
134         * vmsdbgout.c: Likewise.
135
136 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
137
138         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
139         always place FP constants in the TOC for TARGET_POWERPC64.
140         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
141
142 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
143
144         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
145         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
146         enable for TARGET_E500_DOUBLE.
147         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
148         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
149         floating-point modes like integer modes for E500 double.
150         (rs6000_legitimate_offset_address_p): Likewise.
151         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
152         addressing for DDmode for E500 double.
153         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
154         modes as using 64-bits of registers for E500 double.
155         (spe_build_register_parallel): Do not handle DDmode or TDmode.
156         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
157         specially for E500 double.
158         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
159         TDmode for E500 double.
160         (rs6000_gimplify_va_arg): Only handle SDmode in registers
161         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
162         (rs6000_split_multireg_move): Do not handle TDmode specially for
163         E500 double.
164         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
165         using 64-bit registers for E500 double.
166         (emit_frame_save): Do not handle DDmode specially for E500 double.
167         (gen_frame_mem_offset): Likewise.
168         (rs6000_function_value): Do not call spe_build_register_parallel
169         for DDmode or TDmode.
170         (rs6000_libcall_value): Likewise.
171         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
172         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
173         for E500 double.
174
175 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
176
177         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
178         in comments.
179
180 2008-06-04  Junjie Gu <jgu@tensilica.com>
181
182         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
183         comparison for frame pointers.
184
185 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
186
187         PR target/27386
188         * config/avr/avr.h: (PUSH_ROUNDING): Remove.
189
190 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
191
192         PR target/30243
193         * builtins.c (expand_builtin_signbit): Don't take lowpart when
194         register is already smaller or equal to required mode. 
195
196 2008-06-04  Xinliang David Li  <davidxl@google.com>
197
198         * tree-call-cdce.c: New file. 
199         (cond_dead_built_in_calls): New static variable.
200         (input_domain): New struct.
201         (check_pow): New function.
202         (check_builtin_call): Ditto.
203         (check_target_format): Ditto.
204         (is_call_dce_candidate): Ditto.
205         (gen_one_condition): Ditto.
206         (gen_conditions_for_domain): Ditto.
207         (get_domain): Ditto.
208         (gen_conditions_for_pow_cst_base): Ditto.
209         (gen_conditions_for_pow_int_base): Ditto.
210         (gen_conditions_for_pow): Ditto.
211         (get_no_error_domain): Ditto.
212         (gen_shrink_wrap_conditions): Ditto.
213         (shrink_wrap_one_built_in_call): Ditto.
214         (shink_wrap_conditional_dead_built_in_calls): Ditto.
215         (tree_call_cdce): Ditto.
216         (gate_call_cdce): Ditto.
217         (pass_call_cdce): New gimple pass.
218         * passes.c: (init_optimization_passes): New pass.
219         * tree-pass.h: New pass declaration.
220         * opts.c (decode_options): New flag setting.
221         * common.opt: Add -ftree-builtin-call-dce flag.
222         * Makefile.in: Add new source file.
223         * tempvar.def: New tv_id.
224         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
225
226 2008-06-04  Richard Guenther  <rguenther@suse.de>
227
228         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC
229         on MTAGs.
230         (is_call_clobbered): Always check var_ann->call_clobbered.
231         (mark_call_clobbered): Always set var_ann->call_clobbered.
232         (clear_call_clobbered): Always clear var_ann->call_clobbered.
233         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
234         (reset_alias_info): Clear call clobbering info on MTAGs and
235         globals as well.
236         (set_pt_anything): Set pt_global_mem.
237         (create_tag_raw): Adjust comment.
238         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
239
240 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
241             Maxim Kuvyrkov  <maxim@codesourcery.com>
242
243         * config/m68k/m68k.opt (mxgot): New option.
244         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
245         (m68k_output_addr_const_extra): New.
246         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
247         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
248         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
249         * doc/invoke.texi (M680x0 Options): Document -mxgot.
250
251 2008-06-04  Richard Guenther  <rguenther@suse.de>
252
253         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
254         negative or non-representable offsets.
255
256 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
257
258         *  config/i386/i386.c (ix86_gen_leave): New.
259         (ix86_gen_pop1): Likewise.
260         (ix86_gen_add3): Likewise.
261         (ix86_gen_sub3): Likewise.
262         (ix86_gen_sub3_carry): Likewise.
263         (ix86_gen_one_cmpl2): Likewise.
264         (ix86_gen_monitor): Likewise.
265         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
266         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
267         ix86_gen_one_cmpl2 and ix86_gen_monitor.
268         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
269         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
270         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
271         (ix86_expand_epilogue): Updated.
272         (print_operand): Handle integer register operand for 'z'.
273         (ix86_expand_strlensi_unroll_1): Likewise.
274         (ix86_expand_strlen): Likewise.
275         (ix86_expand_builtin): Likewise.
276         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
277         mov{q}/mov{l} and add{q}/add{l}.
278
279 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
280
281         * config/i386/i386.md (P): New mode iterator.
282         (SFmode push_operand splitter): Macroize DImode and SImode pushes
283         using P mode iterator.
284         (DFmode push_operand splitter): Ditto.
285         (XFmode push_operand splitter): Ditto.
286         (DFmode float_extend SFmode push_operand splitter): Ditto.
287         (XFmode float_extend SFmode push_operand splitter): Do not generate
288         SImode pushes for 64bit target.  Macroize Dimode and SImode
289         pushes using P mode iterator.
290         (XFmode float_extend DFmode push_operand splitter): Ditto.
291
292 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
293
294         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
295         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
296         prototype.
297         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
298         return type to int.
299         (ix86_call_abi_override): Remove check for call_used_regs.
300
301 2008-06-03  Richard Guenther  <rguenther@suse.de>
302
303         * tree-ssa-structalias.c (find_func_aliases): Add constraints
304         for the lhs of calls if the return type contains pointers.
305
306 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
307
308         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
309         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
310         * function.c (allocate_struct_function): Use of
311         OVERRIDE_ABI_FORMAT.
312         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
313         of cfun and DEFAULT_ABI to deceide abi mode.
314         (DEFAULT_ABI): New.
315         (REG_PARM_STACK_SPACE): Removed.
316         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
317         (STACK_BOUNDARY): Use default target to deceide stack boundary.
318         * config/i386/i386-protos.h (ix86_cfun_abi): New.
319         (ix86_function_abi): Likewise.
320         (ix86_function_type_abi): Likewise.
321         (ix86_call_abi_override): Likewise.
322         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
323         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
324         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
325         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
326         specific defines.
327         (X86_64_REGPARM_MAX): New.
328         (X86_64_SSE_REGPARM_MAX): New.
329         (X64_REGPARM_MAX): New.
330         (X64_SSE_REGPARM_MAX): New.
331         (X86_32_REGPARM_MAX): New.
332         (X86_32_SSE_REGPARM_MAX): New.
333         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
334         (ix86_function_regparm): Handle user calling abi.
335         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
336         by DEFAULT_ABI versus SYSV_ABI check.
337         (ix86_reg_parm_stack_space): New.
338         (ix86_function_type_abi): New.
339         (ix86_call_abi_override): New.
340         (ix86_function_abi): New.
341         (ix86_cfun_abi): New.
342         (init_cumulative_args): Call abi specific initialization.
343         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
344         (function_arg_64): Extend SSE_REGPARM_MAX check.
345         (function_arg (): Remove TARGET_64BIT_MS_ABI.
346         (ix86_pass_by_reference): Likewise.
347         (ix86_function_value_regno_p): Likewise.
348         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
349         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
350         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
351         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
352         (setup_incoming_varargs_64): Adjust regparm for call abi.
353         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
354         (ix86_va_start): Likewise.
355         (ix86_gimplify_va_arg): Likewise.
356         (ix86_expand_prologue): Likewise.
357         (output_pic_addr_const): Likewise.
358         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
359         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
360         (x86_output_mi_thunk): Likewise.
361         (x86_function_profiler): Likewise.
362         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
363         (SYSV_ABI, MS_ABI): New constants.
364         (DEFAULT_ABI): New.
365         (init_regs): Add prototype of function in regclass.c file.
366         (OVERRIDE_ABI_FORMAT): New.
367         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
368         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
369         (OUTGOING_REG_PARM_STACK_SPACE): New.
370         (ix86_reg_parm_stack_space): New prototype.
371         (CUMULATIVE_ARGS): Add call_abi member.
372         (machine_function): Add call_abi member.
373         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
374         by DEFAULT_ABI compare to MS_ABI.
375
376 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
377
378         PR target/34879
379         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
380         (avr_builtin_setjmp_frame_value): New function.
381         * config/avr/avr.md (nonlocal_goto_receiver): Define.
382         (nonlocal_goto): Define.
383
384 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
385
386         * config/mips/mips.c (mips_emit_loadgp): Return early if
387         there is nothing do to, otherwise emit a blockage if
388         !TARGET_EXPLICIT_RELOCS || crtl->profile.
389         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
390
391 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
392
393         * configure.ac: Drop unneeded backslash ending up in config.in.
394         * acinclude.m4: Likewise.
395         * config.in: Regenerate.
396
397 2008-05-26  Jan Hubicka  <jh@suse.cz>
398
399         * predict.c (maybe_hot_frequency_p): Break out of...
400         (maybe_hot_bb_p): ... here.
401         (maybe_hot_edge_p): New.
402         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
403         * basic-block.h (maybe_hot_edge_p): Declare.
404
405 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
406
407         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
408         (*cmpfp_<mode>_cc): Ditto.
409         (*fp_jcc_8<mode>_387): Ditto.
410         (*fop_<MODEF:mode>_2_i387): Ditto.
411         (*fop_<MODEF:mode>_3_i387): Ditto.
412         (*fop_xf_2_i387): Ditto.
413         (*fop_xf_3_i387): Ditto.
414
415 2008-06-02  Tomas Bily  <tbily@suse.cz>
416
417         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
418
419 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
420
421         * config/mips/mips.c (mips_valid_offset_p): New function.
422         (mips_valid_lo_sum_p): Likewise.
423         (mips_classify_address): Use them.
424         (mips_force_address): New function.
425         (mips_legitimize_address): Use it.
426         * config/mips/mips.md (MOVE128): New mode iterator.
427         (movtf): Require TARGET_64BIT.  Remove empty strings.
428         (*movtf_internal): Rename to...
429         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
430         of "R" and use {,fp}{load,store} attributes instead of "multi".
431         Use a separate define_split.
432         (*movtf_mips16): New pattern.
433
434 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
435
436         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
437         * config/mips/mips.c (mips_expand_before_return): New function.
438         (mips_expand_epilogue): Call it.
439         * config/mips/mips.md (return): Turn into a define_expand.
440         (*return): New insn.
441
442 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
443
444         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
445         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
446         functions.  Do not emit uses and clobbers of CONCATs; individually
447         use and clobber their operands.
448         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
449         gen_clobber, emit_use and gen_use.
450         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
451         (expand_builtin_return): Likewise.
452         * cfgbuild.c (count_basic_blocks): Likewise.
453         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
454         * explow.c (emit_stack_restore): Likewise.
455         * expmed.c (extract_bit_field_1): Likewise.
456         * expr.c (convert_move, emit_move_complex_parts): Likewise.
457         (emit_move_multi_word, store_constructor): Likewise.
458         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
459         (thread_prologue_and_epilogue_insns): Likewise.
460         * lower-subreg.c (resolve_simple_move): Likewise.
461         * optabs.c (widen_operand, expand_binop): Likewise.
462         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
463         * reload.c (find_reloads): Likewise.
464         * reload1.c (eliminate_regs_in_insn): Likewise.
465         * stmt.c (expand_nl_goto_receiver): Likewise.
466         * config/alpha/alpha.md (builtin_longjmp): Likewise.
467         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
468         * config/arm/arm.c (arm_load_pic_register): Likewise.
469         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
470         * config/arm/arm.md (untyped_return): Likewise.
471         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
472         * config/avr/avr.c (expand_prologue): Likewise.
473         * config/bfin/bfin.c (do_unlink): Likewise.
474         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
475         * config/cris/cris.c (cris_expand_prologue): Likewise.
476         * config/darwin.c (machopic_indirect_data_reference): Likewise.
477         (machopic_legitimize_pic_address): Likewise.
478         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
479         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
480         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
481         (ix86_expand_convert_uns_didf_sse): Likewise.
482         (ix86_expand_vector_init_general): Likewise.
483         * config/ia64/ia64.md (eh_epilogue): Likewise.
484         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
485         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
486         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
487         (config/iq2000/iq2000.c): Likewise.
488         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
489         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
490         (builtin_longjmp): Likewise.
491         * config/mn10300/mn10300.md (call, call_value): Likewise.
492         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
493         * config/pdp11/pdp11.md (abshi2): Likewise.
494         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
495         * config/s390/s390.c (s390_emit_prologue): Likewise.
496         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
497         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
498         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
499         * config/sh/sh.c (prepare_move_operands): Likewise.
500         (output_stack_adjust, sh_expand_epilogue): Likewise.
501         (sh_set_return_address, sh_expand_t_scc): Likewise.
502         * config/sparc/sparc.c (load_pic_register): Likewise.
503         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
504         * config/spu/spu.c (spu_expand_epilogue): Likewise.
505         * config/v850/v850.c (expand_epilogue): Likewise.
506
507 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
508
509         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
510         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
511         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
512         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
513         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
514         stack pointer register.
515         (output_movhi): Remove code for interrupt specific writing to the 
516         stack pointer register.
517
518 2008-05-31  Richard Guenther  <rguenther@suse.de>
519
520         PR tree-optimization/34244
521         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
522         (tree_expr_nonzero_warnv_p): Likewise.
523         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
524         ssa_name_nonnegative_p.
525         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
526         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
527         not tree_expr_nonzero_warnv_p.
528
529         PR tree-optimization/36262
530         Revert
531         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
532
533         PR tree-optimization/34244
534         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
535         (record_numbers_of_iterations): New function.
536         (execute_vrp): Cache the numbers of iterations of loops.
537         * tree-scalar-evolution.c (scev_reset_except_niters):
538         New function.
539         (scev_reset): Use scev_reset_except_niters.
540         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
541
542 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
543
544         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
545         __WORKAROUND_RETS when appropriate.
546
547 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
548
549         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
550         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
551         mode iterator.
552         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
553         *fop_df_comm_sse insn patterns using MODEF mode iterator.
554         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
555         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
556         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
557         *fop_df_1_mixed insn patterns using MODEF mode iterator.
558         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
559         *fop_df_1_sse insn patterns using MODEF mode iterator.
560         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
561         *fop_df_1_i387 insn patterns using MODEF mode iterator.
562         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
563         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
564         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
565         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
566         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
567         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
568         (*fop_xf_4_i387): Use <MODE> for mode attribute.
569         (*fop_xf_5_i387): Ditto.
570         (*fop_xf_6_i387): Ditto.
571
572 2008-05-30  Richard Guenther  <rguenther@suse.de>
573
574         * builtins.c (build_string_literal): Avoid generating
575         a non-gimple_val result.
576
577 2008-05-30  DJ Delorie  <dj@redhat.com>
578
579         * exec-tool.in: Use an environment variable (private) instead of a
580         file (shared) as a semaphore, so as to not break parallel builds.
581
582 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
583
584         * optabs.c (maybe_encapsulate_block): Remove.
585         (emit_libcall_block): Adjust accordingly.
586         * optabs.h (maybe_encapsulate_block): Remove prototype.
587
588         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
589         Don't use maybe_encapsulate_block.
590
591 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
592
593         * config/rs6000/rs6000.c (rs6000_legitimize_address,
594         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
595         rtx is a SYMBOL_REF before calling get_pool_constant.
596
597 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
598
599         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
600
601 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
602
603         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
604         rather than OS names to choose INO_T_EQ definition.
605         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
606         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
607
608 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
609
610         PR target/36348
611         * config/darwin-f.c: New.
612         * config/t-darwin: Added rule to build darwin-f.o.
613         * config.gcc: Defined new variable, fortran_target_objs.
614         (*-*-darwin*): Set fortran_target_objs.
615         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
616         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
617         * configure: Regenerated.
618
619 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
620
621         PR target/35771
622         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
623         canonical type if needed.
624
625 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
626
627         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
628
629 2008-05-29  Richard Guenther  <rguenther@suse.de>
630
631         PR tree-optimization/36343
632         PR tree-optimization/36346
633         PR tree-optimization/36347
634         * tree-flow.h (clobber_what_p_points_to): Declare.
635         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
636         pointed-to variable is dereferenced is irrelevant to whether
637         the pointer can access the pointed-to variable.
638         (clobber_what_p_points_to): New function.
639         * tree-ssa-alias.c (set_initial_properties): Use it.
640         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
641         call clobber check for NMTs.
642
643 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
644         
645         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
646         for printing gcov_type.
647
648 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
649
650         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
651         and the eh region information.
652         * value-prof.c (gimple_move_stmt_histograms): New function.
653         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
654
655 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
656
657         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
658
659 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
660
661         * value-prof.c (tree_ic_transform): Print counts.
662         * tree-profile.c (tree_gen_ic_func_profiler):
663         Clear __gcov_indreict_call_callee variable to avoid misattribution
664         of the profile.
665
666 2008-05-28  Rafael Espindola  <espindola@google.com>
667
668         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
669         invalid sharing.
670
671 2008-05-28  Richard Guenther  <rguenther@suse.de>
672
673         PR tree-optimization/36339
674         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
675         and clobbering code out of the loop.
676
677 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
678
679         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
680         letters defined.
681
682         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
683         s390_contiguous_bitmask_p, s390_symref_operand_p,
684         s390_check_symref_alignment, s390_reload_larl_operand,
685         s390_reload_symref_address): New functions.
686         (s390_branch_condition_mnemonic): Support compare and branch
687         instructions.
688         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
689         and 'W' constraints.
690         (s390_secondary_reload): Add secondary reloads for unaligned
691         symbol refs or symbol refs to floating point or QI/TI mode
692         integer values.
693         (legitimate_address_p): Accept symbol references as addresses.
694         (s390_expand_insv): Use rotate and insert selected bits
695         instruction for insv when building for z10.
696         (print_operand_address): Handle symbol ref addresses.
697         (print_operand): Output modifier 'c' added for signed byte values.
698         (s390_encode_section_info): Mark symbol refs with
699         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
700
701         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
702         (length attribute): RRF, RRR have 4 byte length.
703         (FPALL, INTALL): New mode iterators added.
704         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
705         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
706         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
707         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
708         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
709         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
710         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
711         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
712         instructions.
713         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
714         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
715         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
716         reload<INTALL:mode><P:mode>_toreg_z10,
717         reload<FPALL:mode><P:mode>_tomem_z10,
718         reload<FPALL:mode><P:mode>_toreg_z10,
719         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
720         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
721         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
722         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
723         definition.
724         (movmem, clrmem, cmpmem): New splitters added.
725
726         * config/s390/predicates.md (larl_operand): Use
727         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
728         SYMBOL_REF_ALIGN1_P.
729         (s390_signed_integer_comparison,
730         s390_unsigned_integer_comparison): New predicates.
731
732         * config/s390/s390-protos.h (s390_check_symref_alignment,
733         s390_contiguous_bitmask_p, s390_reload_larl_operand,
734         s390_reload_symref_address,
735         s390_compare_and_branch_condition_mask): Prototypes added.
736
737         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
738         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
739         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
740
741 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
742
743         * config/s390/s390.c (z10_cost): New cost function for z10.
744         (s390_handle_arch_option, override_options): Support -march=z10 switch.
745         (s390_issue_rate): Adjust issue rate for z10.
746         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
747         (processor_flags): Add PF_Z10.
748         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
749         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
750         * gcc/config.gcc: Add z10.
751
752 2008-05-28  Richard Guenther  <rguenther@suse.de>
753
754         PR tree-optimization/36291
755         * tree-flow. h (struct gimple_df): Remove var_anns member.
756         * tree-flow-inline.h (gimple_var_anns): Remove.
757         (var_ann): Simplify.
758         * tree-dfa.c (create_var_ann): Simplify.
759         (remove_referenced_var): Clear alias info from var_anns of globals.
760         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
761         (delete_tree_ssa): Clear alias info from var_anns of globals.
762         Do not free var_anns.
763         (var_ann_eq): Remove.
764         (var_ann_hash): Likewise.
765
766 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
767
768         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
769         and loongson2f entries.
770         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
771         * config/mips/mips.h (processor_type): Add Loongson-2E
772         and Loongson-2F entries.
773         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
774         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
775         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
776         * doc/invoke.texi (MIPS Options): Document loongson2e
777         and loongson2f processor names.
778
779 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
780
781         PR target/35767
782         PR target/35771
783         * config/i386/i386.c (ix86_function_arg_boundary): Use
784         alignment of canonical type.
785         (ix86_expand_vector_move): Check unaligned memory access for
786         all SSE modes.
787
788 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
789
790         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
791         Moved to the front of file.
792
793 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
794             H.J. Lu  <hongjiu.lu@intel.com>
795
796         * dwarf2out.c (current_fde): New.
797         (add_cfi): Use it.
798         (lookup_cfa:): Likewise.
799         (dwarf2out_end_epilogue): Likewise.
800         (dwarf2out_note_section_used): Likewise.
801
802 2008-05-27  Michael Matz  <matz@suse.de>
803
804         PR c++/27975
805         * c.opt (Wenum-compare): New warning option.
806         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
807
808 2008-05-27  Michael Matz  <matz@suse.de>
809
810         PR middle-end/36326
811         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
812         non-BLKmode types.
813         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
814         into memory as tail calls.
815
816 2008-05-27  Richard Guenther  <rguenther@suse.de>
817
818         PR tree-optimization/36339
819         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
820         pointers cause all addressable variables to be call clobbered.
821
822 2008-05-27  Richard Guenther  <rguenther@suse.de>
823
824         PR tree-optimization/36245
825         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
826
827 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
828
829         * config/s390/s390.md: Replace all occurences of the 'm'
830         constraint with 'RT'.
831
832 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
833
834         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
835         definitions added.
836         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
837         "*movdi_64".
838         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
839         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
840         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
841
842 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
843
844         * reload.c: (find_reloads): Skip alternatives according to the
845         "enabled" attribute. Constify the constraint variable.
846         * recog.c (get_attr_enabled): Add default implementation.
847         (extract_insn): Set the alternative_enabled_p array
848         in the recog_data struct.
849         (preprocess_constraints, constrain_operands): Skip
850         alternatives according to the "enabled" attribute
851         * recog.h (struct recog_data): New field alternative_enabled_p.
852         (skip_alternative): New inline function.
853         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
854         (record_reg_classes): Skip alternative according to the
855         "enabled" attribute.
856
857         * doc/md.texi: Add documention for the "enabled" attribute.
858
859 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
860
861         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
862         * postreload.c (reload_cse_simplify_operands): Replace 'm'
863         constraint with TARGET_MEM_CONSTRAINT.
864         * recog.c (asm_operand_ok, preprocess_constraints,
865         constrain_operands): Likewise.
866         * regclass.c (record_reg_classes): Likewise.
867         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
868         * reload1.c (maybe_fix_stack_asms): Likewise.
869         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
870         * recog.h: Adjust comment.
871         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
872         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
873         * doc/md.texi: Add a note to description of 'm' constraint.
874         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
875
876 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
877
878         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
879         that the bitfield is of integral type before testing its precision.
880
881 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
882             Sa Liu  <saliu@de.ibm.com> 
883
884         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
885         __modti3, __udivti3, __umodti3 and __udivmodti4.
886         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
887         that implement TImode mul and div functions.
888         * config/spu/multi3.c: New. Implement __multi3.
889         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
890         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
891         functions on SPU.
892
893 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
894
895         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
896         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
897         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
898         tls_sysv_suffix): New mode and mode attribute iterators.
899         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
900         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
901         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
902         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
903         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
904         iterators.
905
906 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
907
908         PR tree-optimization/36329
909         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
910         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
911         * cgraphbuild.c (initialize_inline_failed): Use the latter
912         macro in lieu of the former.
913         * ipa-inline.c (cgraph_mark_inline): Likewise.
914         (cgraph_decide_inlining_of_small_function): Likewise.
915         (cgraph_decide_inlining): Likewise.
916         (cgraph_decide_inlining_incrementally): Likewise.
917
918 2008-05-26  Tristan Gingold  <gingold@adacore.com>
919             Anatoly Sokolov  <aesok@post.ru>
920
921         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
922         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
923         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
924         optimization for 'avr6' architecture.
925
926 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
927
928         PR target/34932
929         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
930
931 2008-05-26  Richard Guenther  <rguenther@suse.de>
932
933         * tree-ssa-sccvn.c (expr_has_constants): Declare.
934         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
935
936 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
937
938         PR middle-end/36253
939         * caller-save.c (insert_restore): Verify alignment of spill space.
940         (insert_save): Likewise.
941         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
942         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
943         (STACK_SLOT_ALIGNMENT): Likewise.
944         * function.c (LOCAL_ALIGNMENT): Removed.
945         (get_stack_local_alignment): New.
946         (assign_stack_local): Use it.  Set alignment on stack slot.
947         (assign_stack_temp_for_type): Use get_stack_local_alignment.
948         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
949         (STACK_SLOT_ALIGNMENT): New.
950         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
951         stack slot in XFmode.
952
953         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
954
955 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
956
957         PR/36321
958         * config/i386/i386.md (allocate_stack_worker_64): Make sure
959         argument operand in rax isn't removed.
960
961 2008-05-26  Richard Guenther  <rguenther@suse.de>
962
963         PR middle-end/36300
964         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
965         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
966
967 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
968
969         PR bootstrap/36331
970         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
971
972 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
973
974         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
975         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
976
977 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
978
979         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
980         build a trampoline if we don't want one.
981         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
982         return zero for nested functions if we don't want a trampoline.
983
984 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
985
986         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
987
988 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
989
990         PR fortran/18428
991         * c.opt: Removed undocumented option '-lang-fortran'.
992         * c-common.h: Removed global variable 'lang_fortran'.
993         * c-opts.c (c_common_handle_option): Removed code to handle
994         option '-lang-fortran'. Updated includes.
995         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
996         definition of '__GFORTRAN__'.
997         (define__GNUC__): Reimplemented to use BASEVER and
998         cpp_define_formatted.
999         (builtin_define_with_value_n): Removed.
1000         * c-incpath.h: Renamed to ...
1001         * incpath.h: ... this.
1002         * c-incpath.c: Renamed to ...
1003         * incpath.c: ... this. Updated includes.
1004         * fix-header.c: Updated includes.
1005         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1006         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1007         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1008
1009 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1010
1011         * tree.h: Update the table of flags used on tree nodes.
1012         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1013         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1014         (FORCED_LABEL): Add access check.
1015         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1016         (ASM_INPUT_P): Likewise.
1017         (ASM_VOLATILE_P): Likewise.
1018         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1019         (OMP_SECTION_LAST): Access private_flag directly.
1020         (OMP_RETURN_NOWAIT): Likewise.
1021         (OMP_PARALLEL_COMBINED): Likewise.
1022         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1023         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1024         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1025         deprecated_flag directly.
1026
1027 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1028
1029         * final.c (frame_pointer_needed): Removed.
1030         * flags.h (frame_pointer_needed): Likewise.
1031
1032         * function.h (rtl_data): Add frame_pointer_needed.
1033         (frame_pointer_needed): New.
1034
1035 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1036
1037         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1038
1039 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1040
1041         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1042         SRC is a REG.
1043
1044 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1045
1046         * c-common.c (strip_array_types): Move function to..
1047         * tree.c: ..here.
1048         (get_inner_array_type): Delete.
1049         * c-common.h (strip_array_types): Move declaration to..
1050         * tree.h: ..here.
1051         (get_inner_array_type): Delete.
1052         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1053         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1054         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1055         * config/pa/pa.c (emit_move_sequence): Likewise.
1056
1057 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1058
1059         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1060         attribute to 34.
1061
1062 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1063
1064         * function.c: Include target hook for nonlocal_goto frame value.
1065
1066 2008-05-24  Richard Guenther  <rguenther@suse.de>
1067
1068         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1069         variable can be only accessed through a pointer or a union.
1070
1071 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1072
1073         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1074         * doc/extend.texi: Likewise.
1075
1076 2008-05-23  DJ Delorie  <dj@redhat.com>
1077
1078         * config/m32c/jump.md (untyped_call): Add.
1079
1080         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1081         for A24 to PSImode.
1082         (m32c_address_cost): Detail costs for indirect offsets.
1083
1084 2008-05-23  Rafael Espindola  <espindola@google.com>
1085
1086         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1087         if a node is a SUBREG.
1088         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1089         is a SUBREG.
1090
1091 2008-05-23  Paul Brook  <paul@codesourcery.com>
1092             Carlos O'Donell  <carlos@codesourcery.com>
1093
1094         * doc/extend.texi: Clarify use of __attribute__((naked)).
1095         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1096         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1097         * function.c (use_register_for_decl): Use
1098         targetm.calls.allocate_stack_slots_for_args.
1099         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1100         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1101         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1102
1103 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1104
1105         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1106
1107 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1108
1109         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1110         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1111         is only rounded once.
1112
1113 2008-05-23  Richard Guenther  <rguenther@suse.de>
1114
1115         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1116
1117 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1118             Jakub Jelinek  <jakub@redhat.com>
1119
1120         PR target/36079
1121         * configure.ac: Handle --enable-cld.
1122         * configure: Regenerated.
1123         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1124         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1125         (ix86_current_function_needs_cld): New define.
1126         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1127         (cld): New isns pattern.
1128         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1129         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1130         * config/i386/i386.opt (mcld): New option.
1131         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1132         TARGET_CLD and ix86_current_function_needs_cld.
1133         (override_options): Use -mcld by default for 32-bit code if
1134         USE_IX86_CLD.
1135
1136         * doc/install.texi (Options specification): Document --enable-cld.
1137         * doc/invoke.texi (Machine Dependent Options)
1138         [i386 and x86-64 Options]: Add -mcld option.
1139         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1140
1141 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1142         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1143         (return_in_memory_64): Likewise.
1144         (return_in_memory_ms_64): Likewise.
1145
1146 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1147
1148         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1149         * builtins.c (fold_builtin_fpclassify): New.
1150         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1151         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1152         * c-common.c (handle_type_generic_attribute): Adjust to accept
1153         fixed arguments before an elipsis.
1154         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1155         * doc/extend.texi: Document __builtin_fpclassify.
1156
1157 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1158
1159         * omp-low.c (gate_expand_omp_ssa): Remove.
1160         (pass_expand_omp_ssa): Remove.
1161         (gate_expand_omp): Do not check for flag_openmp_ssa.
1162         * common.opt (-fopenmp-ssa): Remove.
1163         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1164
1165 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1166
1167         * config/sh/sh.opt (mfixed-range): New option.
1168         * config/sh/sh-protos.h (sh_fix_range): Declare.
1169         * config/sh/sh.c (sh_fix_range): New function.
1170         * config/sh/sh.h (sh_fixed_range_str): Declare.
1171         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1172         is not empty.
1173         * doc/invoke.texi (SH Options): Document -mfixed-range.
1174
1175 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1176
1177         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1178         it before the redeclaration.
1179
1180 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1181
1182         * config/avr/avr.c (get_sequence_length): Add new function.
1183         (expand_prologue, expand_epilogue): Remove duplicate code.
1184
1185 2008-05-22  Rafael Espindola  <espindola@google.com>
1186
1187         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1188         sharing.
1189
1190 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1191
1192         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1193         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1194
1195         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1196         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1197         (vect_update_misalignment_for_peel): Likewise.
1198         (vector_alignment_reachable_p): Likewise.
1199         * tree-vect-transform.c (vectorizable_load): Likewise.
1200         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1201         (get_vectype_for_scalar_type): Pass mode of scalar_type
1202         to UNITS_PER_SIMD_WORD.
1203
1204         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1205         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1206         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1207         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1208         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1209
1210 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1211
1212         PR tree-optimization/36293
1213         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1214         if the first load must be skipped because of a gap.
1215
1216 2008-05-22  Richard Guenther  <rguenther@suse.de>
1217
1218         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1219         more cases of offset disambiguation that is possible if
1220         strict-aliasing rules apply.
1221         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1222         for basic offset and type-based disambiguation.
1223
1224 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1225
1226         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1227         ix86_expand_vector_set on V16QImode for SSE4.1.
1228
1229 2008-05-21  Tom Tromey  <tromey@redhat.com>
1230
1231         * c.opt (Wimport): Mark as undocumented.
1232         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1233         -Wno-import.
1234         (Warning Options): Likewise.
1235         * doc/cppopts.texi: Don't mention -Wimport.
1236
1237 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1238
1239         PR tree-optimization/36287
1240         PR tree-optimization/36286
1241         * lambda-code.c (build_access_matrix): Do not use the loop->num
1242         for computing the number of induction variables: use the loop depth
1243         instead.
1244
1245 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1246
1247         PR/36280
1248         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1249         option -f(no-)leading-underscore.
1250
1251 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1252
1253         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1254         GET_MODE_NUNITS (mode).
1255
1256 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1257
1258         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1259         (-mmulhw): Add 464 to description.
1260         (-mdlmzb): Likewise.
1261         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1262         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1263         464fp entries.
1264         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1265         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1266         * config/rs6000/rs6000.md: Update comments for 464.
1267
1268 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1269
1270         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1271
1272 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1273
1274         * config/i386/sse.md (vec_extractv4sf): Removed.
1275         (vec_extractv2df): Likewise.
1276         (vec_extractv2di): Likewise.
1277         (vec_extractv4si): Likewise.
1278         (vec_extractv8hi): Likewise.
1279         (vec_extractv16qi): Likewise.
1280         (vec_extract<mode>): New.
1281
1282 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1283
1284         * config/i386/sse.md (vec_setv4sf): Removed.
1285         (vec_setv2df): Likewise.
1286         (vec_setv2di): Likewise.
1287         (vec_setv4si): Likewise.
1288         (vec_setv8hi): Likewise.
1289         (vec_setv16qi): Likewise.
1290         (vec_set<mode>): New.
1291
1292 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1293
1294         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1295         goto for vec_concat and vec_interleave.
1296
1297 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1298
1299         * config/i386/sse.md (vec_initv4sf): Removed.
1300         (vec_initv2df): Likewise.
1301         (vec_initv2di): Likewise.
1302         (vec_initv4si): Likewise.
1303         (vec_initv8hi): Likewise.
1304         (vec_initv16qi): Likewise.
1305         (vec_init<mode>): New.
1306
1307 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1308
1309         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1310
1311 2008-05-21  Tom Tromey  <tromey@redhat.com>
1312
1313         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1314         (zone_find_object_offset): Likewise.
1315         (gt_ggc_m_S): Likewise.
1316         (highest_bit): Likewise.
1317         * ggc-page.c (gt_ggc_m_S): New function.
1318         * stringpool.c (string_stack): Remove.
1319         (init_stringpool): Update.
1320         (ggc_alloc_string): Use ggc_alloc.
1321         (maybe_delete_ident): New function.
1322         (ggc_purge_stringpool): Likewise.
1323         (gt_ggc_m_S): Remove.
1324         * ggc-common.c (ggc_protect_identifiers): New global.
1325         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1326         ggc_protect_identifiers.
1327         * ggc.h (ggc_protect_identifiers): Declare.
1328         (gt_ggc_m_S): Update.
1329         (ggc_purge_stringpool): Declare.
1330         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1331         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1332         special case.
1333         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1334
1335 2008-05-21  David S. Miller  <davem@davemloft.net>
1336
1337         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1338         tmake_file.
1339
1340 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1341
1342         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1343         once finished.
1344
1345 2008-05-20  David Daney  <ddaney@avtrex.com>
1346
1347         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1348         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1349         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1350         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1351         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1352         (atomic_hiqi_op): New define_code_iterator.
1353         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1354         mips_expand_compare_and_swap_12.
1355         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1356         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1357         (sync_<optab><mode>, sync_old_<optab><mode>,
1358         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1359         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1360         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1361         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1362         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1363         (test_and_set_12): New insn.
1364         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1365         sync_new_<optab><mode>, sync_old_nand<mode>,
1366         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1367         clobber to operand 0 for SI and DI mode insns.
1368         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1369         mips_gen_fn_4): New typedefs.
1370         (mips_gen_fn_ptrs): Define new union type.
1371         (mips_expand_compare_and_swap_12): Remove declaration.
1372         (mips_expand_atomic_qihi): Declare function.
1373         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1374         (mips_expand_atomic_qihi): ... this.  Use new generator function
1375         parameter.
1376         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1377         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1378         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1379         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1380         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1381         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1382         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1383         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1384         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1385         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1386         New macros.
1387
1388 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1389
1390         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1391         the missing break.
1392
1393 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1394
1395         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1396         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1397         (avr_attribute_table): Add 'OS_main' function attribute.
1398         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1399         functions with 'OS_main' attribute.
1400
1401 2008-05-20  Richard Guenther  <rguenther@suse.de>
1402
1403         PR tree-optimization/35204
1404         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1405         helper, split out from ...
1406         (DFS): ... here.  Make the DFS walk non-recursive.
1407
1408 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1409             Jan Sjodin  <jan.sjodin@amd.com>
1410
1411         PR tree-optimization/36181
1412         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1413         (parallelize_loops): Don't parallelize when the loop has vector
1414         phi nodes.
1415
1416 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1417             Sebastian Pop  <sebastian.pop@amd.com>
1418
1419         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1420         matrix, and never look at the tree representation of the memory
1421         accesses.
1422         (linear_transform_loops): Computes parameters and access matrices.
1423         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1424         when fails.
1425         (access_matrix_get_index_for_parameter): New.
1426         * tree-data-ref.h (struct access_matrix): New.
1427         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1428         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1429         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1430         am_vector_index_for_loop): New.
1431         (struct data_reference): Add field access_matrix.
1432         (DR_ACCESS_MATRIX): New.
1433         (compute_data_dependences_for_loop): Update declaration.
1434         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1435         * lambda.h (lambda_vector_vec_p): Declared.
1436         * lambda-code.c: Depend on pointer-set.h.
1437         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1438         av_for_af_base, av_for_af, build_access_matrix,
1439         lambda_compute_access_matrices): New.
1440         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1441
1442 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1443
1444         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1445         $SOURCEDIR/include.
1446
1447 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1448             Sebastian Pop  <sebastian.pop@amd.com>
1449
1450         PR tree-optimization/36206
1451         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1452         FOLD_CONVERSIONS.
1453         (instantiate_scev_1): Rename flags to fold_conversions.
1454         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1455         outeside instantiation_loop.
1456         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1457         (evolution_function_is_affine_or_constant_p): Removed.
1458         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1459         instantiate_scev.
1460         (analyze_siv_subscript): Pass in the loop nest number.
1461         Call evolution_function_is_affine_in_loop instead of 
1462         evolution_function_is_affine_p.
1463         (analyze_overlapping_iterations): Pass in the loop nest number.
1464
1465 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1466             Sebastian Pop  <sebastian.pop@amd.com>
1467
1468         PR tree-optimization/36206
1469         * tree-chrec.h (chrec_fold_op): New.
1470         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1471         and other trees.
1472
1473 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1474
1475         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1476         (DIRS_EQ): New.
1477         (remove_duplicates): Do not set inode on non-inode systems.
1478         Use DIRS_EQ.
1479
1480 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1481
1482         * config.gcc (tm_file): Update comments about relative pathnames.
1483
1484 2008-05-20  Richard Guenther  <rguenther@suse.de>
1485
1486         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1487         * tree-ssa-sccvn.c (process_scc): Likewise.
1488         * tree-ssa-sink.c (execute_sink_code): Likewise.
1489         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1490         * tree-vrp.c (process_assert_insertions): Likewise.
1491         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1492         (perform_tree_ssa_dce): Likewise.
1493         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1494         (dump_dominator_optimization_stats): Likewise.
1495         * tree-vectorizer.c (vectorize_loops): Likewise.
1496
1497 2008-05-20  Richard Guenther  <rguenther@suse.de>
1498
1499         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1500
1501 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1502
1503         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1504         (ix86_i386elf_return_in_memory): Likewise.
1505         (ix86_i386interix_return_in_memory): Likewise.
1506         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1507         (SUBTARGET_RETURN_IN_MEMORY): New.
1508         * config/i386/i386elf.h: Likewise.
1509         * config/i386/ptx4-i.h: Likewise.
1510         * config/i386/sol2-10.h: Likewise.
1511         * config/i386/sysv4.h: Likewise.
1512         * config/i386/vx-common.h: Likewise.
1513         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1514         * config/i386/i386.c (ix86_return_in_memory): Made static and
1515         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1516         (ix86_i386elf_return_in_memory): Removed.
1517         (ix86_i386interix_return_in_memory): Removed.
1518         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1519         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1520
1521 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1522
1523         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1524
1525 2008-05-19  Xinliang David Li  <davidxl@google.com>
1526
1527         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1528         * opts.c: Ditto.
1529         * common.opt: Ditto.
1530         * doc/invoke.texi: Ditto.
1531
1532 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1533
1534         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1535         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1536
1537 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1538
1539         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1540         sizes of operand array from 8/4 to 4/2.
1541         (ix86_expand_vector_init_general): Change size of operand array
1542         from 32 to 16.  Remove op0, op1 and half_mode.
1543
1544 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1545
1546         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1547         (ix86_expand_vector_init_interleave): Likewise.
1548         (ix86_expand_vector_init_general): Use them.  Assert
1549         word_mode == SImode when n_words == 4.
1550
1551 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1552
1553         * config/i386/i386.c (ix86_secondary_reload): New static function.
1554         (TARGET_SECONDARY_RELOAD): New define.
1555         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1556         * config/i386/i386.md (reload_outqi): Remove.
1557
1558 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1559
1560         PR middle-end/35509
1561         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1562         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1563         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1564         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1565         (fold_builtin_1): Likewise.
1566         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1567         c-common.c (check_builtin_function_arguments): Handle
1568         BUILT_IN_ISINF_SIGN.
1569         * doc/extend.texi: Document __builtin_isinf_sign.
1570         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1571
1572 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1573
1574         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1575         EH cleanup at the end of the pass, search for those that have been
1576         turned into forwarder blocks and do the cleanup on their successor.
1577
1578 2008-05-18  Richard Guenther  <rguenther@suse.de>
1579
1580         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1581         pointers to sizetype and vice versa.
1582
1583 2008-05-18 Xinliang David Li   <davidxl@google.com>
1584
1585         * gcc/tree-ssa-dce.c: Coding style fix.
1586         (check_pow): Documentation comment. 
1587         (check_log): Documenation comment. Coding style fix.
1588         (is_unnecessary_except_errno_call): Ditto.
1589         (gen_conditions_for_pow): Ditto.
1590         (gen_conditions_for_log): Ditto.
1591         (gen_shrink_wrap_conditions): Ditto.
1592         (shrink_wrap_one_built_in_calls): Ditto.
1593         * gcc/doc/invoke.texi: Better documentation string.
1594         * ChangeLog: Fix wrong change log entries from 
1595         May 17 checkin on function call DCE.
1596
1597 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1598
1599         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1600
1601 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1602
1603         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1604         * df-problems.c (simulation routines): Fixed block comment to
1605         properly say how to add forwards scanning functions.
1606         
1607 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1608
1609         * tree-inline.c (setup_one_parameter): Remove dead code.
1610
1611 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1612
1613         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1614         a BIT_AND_EXPR only for an INTEGER_TYPE.
1615
1616 2008-05-17 Xinliang David Li   <davidxl@google.com>
1617
1618         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1619         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1620         functions to check for eliminating math functions that are pure 
1621         except for setting errno.
1622         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1623         general condition expressions for shrink-wrapping pow/log calls.
1624         (gen_shrink_wrap_conditions): Ditto.
1625         (shrink_wrap_one_built_in_call): Ditto.
1626         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1627         (mark_operand_necessary): If debugging, output if OP is necessary.
1628         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1629         unnecessary.
1630         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1631         opt level >= 2.
1632         * gcc/common.opt: New user flag -ftree-builtin-dce.
1633         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1634
1635 2008-05-16  David S. Miller  <davem@davemloft.net>
1636
1637         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1638         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1639
1640 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1641
1642         PR target/36246
1643         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1644
1645 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1646
1647         * ifcvt.c (dead_or_predicable): Rename
1648         df_simulate_one_insn_backwards to df_simulate_one_insn.
1649         * recog.c (peephole2_optimize): Ditto.
1650         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1651         Ditto.
1652         * df.h: Rename df_simulate_one_insn_backwards to
1653         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1654         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1655         scanning of defs and uses.
1656         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1657         (df_simulate_one_insn_forwards): Removed.
1658
1659 2008-05-16  Doug Kwan  <dougkwan@google.com>
1660
1661         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1662         QNaN & SNaN.
1663         (real_from_string): Handle NaNs and Inf as approriate.
1664
1665 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1666
1667         * doc/gty.texi (Source Files Containing Type Information): Note
1668         that headers should appear first in the gtfiles list.
1669
1670 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1671
1672         * tree.def (COND_EXEC): Properly documented this code.
1673
1674 2008-05-16  Diego Novillo  <dnovillo@google.com>
1675
1676         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1677         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1678         the new field.
1679
1680 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1681
1682         * tree-ssa-dse (max_stmt_uid): Removed.
1683         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1684         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1685         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1686         * function.h (cfun.last_stmt_uid): New field.
1687         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1688         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1689         New functions.
1690         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1691         (create_stmt_ann): Initialize the ann->uid field.
1692         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1693         with new calls.
1694         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1695
1696 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1697
1698         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1699         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1700         (init_empty_tree_cfg): Call it.
1701
1702 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1703
1704         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1705         Update all users.
1706
1707 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1708
1709         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1710         * tree-dump.c (dump_options): New verbose option.
1711         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1712         Add verbose dump.
1713         * tree-pass.h (TDF_VERBOSE): New dump flag.
1714         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1715         (tree-flow.h): Added include.
1716         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
1717
1718 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1719
1720         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1721
1722         From Jie Zhang  <jie.zhang@analog.com>
1723         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1724         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1725         mcpu=bf561-none and mcpu=bf561-0.2.
1726         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1727         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1728         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1729         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1730         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1731         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1732         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1733         option.
1734         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1735         (cputype_selected): Remove.
1736         (bfin_handle_option): Don't use cputype_selected.
1737         (override_options): When no mcpu option, enable all workarounds.
1738         Don't use bfin_workarounds.
1739         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1740         processor type.
1741         (DEFAULT_CPU_TYPE): Don't define.
1742
1743 2008-05-16  Richard Guenther  <rguenther@suse.de>
1744
1745         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1746         on deletion of the last stmt.
1747
1748 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1749
1750         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1751         V8HImode for SSE2 and V16QImode for SSE4.1.
1752
1753 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1754
1755         * cgraph.h (compute_inline_parameters): Made public.
1756         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1757         variable_generate_summary, function_write_summary,
1758         variable_write_summary, variable_read_summary.  Added generate_summary,
1759         write_summary, read_summary.
1760         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1761         pass_ipa_inline.function_generate_summary, to
1762         compute_inline_parameters. 
1763         * ipa-inline.c (compute_inline_parameters): Made public and added
1764         node parameter.
1765         (compute_inline_parameters_for_current): New function.
1766         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1767         (inline_generate_summary): Removed parameter and made to loop over
1768         all cgraph nodes.
1769         (pass_ipa_inline): Updated for new IPA_PASS structure.
1770         * passes.c (execute_ipa_summary_passes): Now is called once per
1771         pass rather than once per node*pass.
1772         
1773 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1774
1775         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1776         avr_have_mul_p, avr_asm_only_p): Remove variables.
1777         (avr_override_options): Remove initialization of removed variables.
1778         (avr_file_start):  Convert removed variables to fields of 
1779         'struct base_arch_s *avr_current_arch'. 
1780         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1781         (AVR_HAVE_MUL): (Ditto.).
1782         (AVR_HAVE_MOVW): (Ditto.).
1783         (AVR_HAVE_LPMX): (Ditto.). 
1784         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1785         avr_asm_only_p): Remove declaration.
1786
1787 2008-05-15  Diego Novillo  <dnovillo@google.com>
1788
1789         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1790         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1791
1792 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1793
1794         PR middle-end/36194
1795         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1796         Don't call record_truncated_value from here.
1797         (record_truncated_value): Turn it into a for_each_rtx callback.
1798         (record_truncated_values): New function.
1799         (combine_instructions): Call note_uses with record_truncated_values.
1800         Change name of check_conversion to check_promoted_subreg. 
1801
1802 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1803
1804         * doc/sourcebuild.texi: Document support for torture tests.
1805
1806 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1807
1808         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1809         to alternative 4 of operand 2.
1810
1811 2008-05-15  Richard Guenther  <rguenther@suse.de>
1812
1813         * tree-pass.h (current_pass): Declare.
1814         (get_pass_for_id): Likewise.
1815         * passes.c (passes_by_id, passes_by_id_size): New globals.
1816         (set_pass_for_id): New function.
1817         (get_pass_for_id): Likewise.
1818         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1819         (execute_function_todo): Flush per function statistics.
1820         * toplev.c (compile_file): Init statistics.
1821         (general_init): Do early statistics initialization.
1822         (finalize): Finish statistics.
1823         * statistics.h (statistics_early_init): Declare.
1824         (statistics_init): Likewise.
1825         (statistics_fini): Likewise.
1826         (statistics_fini_pass): Likewise.
1827         (statistics_counter_event): Likewise.
1828         (statistics_histogram_event): Likewise.
1829         * statistics.c: New file.
1830         * Makefile.in (OBJS-common): Add statistics.o.
1831         (statistics.o): Add dependencies.
1832         * doc/invoke.texi (-fdump-statistics): Document.
1833
1834         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1835         (insert): Likewise.
1836         (execute_pre): Use statistics_counter_event.
1837         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1838         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1839
1840 2008-05-15  Diego Novillo  <dnovillo@google.com>
1841
1842         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1843
1844         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1845         * tree-ssa-alias.c (new_type_alias): Remove references to
1846         sub-variables from comment.
1847         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1848
1849 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1850
1851         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1852         attribute to 1 only for insertps alternative.
1853
1854 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1855
1856         * config/bfin/bfin.md (loadbytes): New pattern.
1857         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1858         (bfin_init_builtins): Initialize it.
1859         (bdesc_1arg): Add it.
1860
1861 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1862
1863         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1864         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1865         * testsuite/lib/target-supports.exp: Add
1866         check_effective_target_fortran_integer_16.
1867
1868 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1869
1870         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1871         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1872         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1873         (TARGET_RETURN_IN_MEMORY): Define.
1874
1875 2008-05-15  Richard Guenther  <rguenther@suse.de>
1876
1877         PR middle-end/36244
1878         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1879         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1880         represent unmodifiable vars.
1881
1882 2008-05-15  Richard Guenther  <rguenther@suse.de>
1883
1884         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1885         INDIRECT_REF and TARGET_MEM_REF.
1886         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1887         TARGET_MEM_REF.
1888
1889 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1890             H.J. Lu  <hongjiu.lu@intel.com>
1891
1892         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1893         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1894         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1895         insn alternatives.  Add missing alternatives.
1896         (*vec_concatv2di_rex64_sse4_1): Likewise.
1897         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1898         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1899         Require TARGET_SSE.
1900
1901 2008-05-15  Richard Guenther  <rguenther@suse.de>
1902
1903         PR tree-optimization/36009
1904         PR tree-optimization/36204
1905         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1906         (determine_invariantness_stmt): Record the loop a store is
1907         always executed in.
1908         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1909         dependency.
1910
1911 2008-05-15  Richard Guenther  <rguenther@suse.de>
1912
1913         PR tree-optimization/34330
1914         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1915         through the pointer will alias the SMT.
1916
1917 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1918
1919         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1920
1921 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1922
1923         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1924
1925 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1926             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1927
1928         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1929         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1930         (vashl_optab): New optab for vector/vector shifts.
1931         (vashr_optab): Ditto.
1932         (vlshr_optab): Ditto.
1933         (vrotl_optab): Ditto.
1934         (vrotr_optab): Ditto.
1935         (optab_subtype): New enum for optab_for_tree_code call.
1936         (optab_for_tree_code): Add enum optab_subtype argument.
1937
1938         * optabs.c (optab_for_tree_code): Take an additional argument to
1939         distinguish between a vector shift by a scalar and vector shift by
1940         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1941         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1942         vector shift by a vector.
1943         (expand_widen_pattern_expr): Pass additional argument to
1944         optab_for_tree_code.
1945
1946         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1947         vrotl_optab, vrotr_optab.
1948
1949         * expr.c (expand_expr_real_1): Update calls to
1950         optab_for_tree_code to distinguish between vector shifted by a
1951         scalar and vector shifted by a vector.
1952         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1953         (supportable_narrowing_operation): Ditto.
1954         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1955         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1956         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1957         (vect_create_epilog_for_reduction): Ditto.
1958         (vectorizable_reduction): Ditto.
1959         (vectorizable_operation): Ditto.
1960         (vect_strided_store_supported): Ditto.
1961         (vect_strided_load_supported): Ditto.
1962         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1963         * expmed.c (expand_shift): Ditto.
1964
1965         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1966         scalar type.
1967         (ashr@var{m}3): Ditto.
1968         (vashl@var{m}3): Document new vector/vector shift standard name.
1969         (vashr@var{m}3): Ditto.
1970         (vlshr@var{m}3): Ditto.
1971         (vrotl@var{m}3): Ditto.
1972         (vrotr@var{m}3): Ditto.
1973
1974         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1975         (PPERM_INVERT): Ditto.
1976         (PPERM_REVERSE): Ditto.
1977         (PPERM_REV_INV): Ditto.
1978         (PPERM_ZERO): Ditto.
1979         (PPERM_ONES): Ditto.
1980         (PPERM_SIGN): Ditto.
1981         (PPERM_INV_SIGN): Ditto.
1982         (PPERM_SRC1): Ditto.
1983         (PPERM_SRC2): Ditto.
1984
1985         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1986         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1987         allows a memory operand to be the value being added, and split it
1988         to improve vectorization.
1989         (sse5_pmacsdqh_mem): Ditto.
1990         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1991         (sse5_mulv2div2di3_high): Ditto.
1992         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1993         (vec_pack_trunc_v4si): Ditto.
1994         (vec_pack_trunc_v2di): Ditto.
1995         (sse5_pcmov_<mode>): Remove code that tried to use use
1996         andps/andnps instead of pcmov.
1997         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1998         pmacsdqh instructions.
1999         (vec_widen_smult_lo_v4si): Ditto.
2000
2001         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2002         (PPERM_INVERT): Ditto.
2003         (PPERM_REVERSE): Ditto.
2004         (PPERM_REV_INV): Ditto.
2005         (PPERM_ZERO): Ditto.
2006         (PPERM_ONES): Ditto.
2007         (PPERM_SIGN): Ditto.
2008         (PPERM_INV_SIGN): Ditto.
2009         (PPERM_SRC1): Ditto.
2010         (PPERM_SRC2): Ditto.
2011         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2012         true/false tests.
2013         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2014         comparisons.
2015         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2016         says ignore whether the last reference is a memory operand.
2017
2018 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2019             Paolo Bonzini <bonzini at gnu dot org>
2020
2021         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2022         shift patterns.
2023
2024         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2025         (vlshr<mode>3): Rename from vlshr<mode>3.
2026         (vashr<mode>3): Rename from vashr<mode>3.
2027         (mulv4sf3): Change the names of vector shift patterns.
2028         (mulv4si3): Ditto.
2029         (negv4sf2): Ditt.
2030
2031         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2032         shift insns.
2033
2034         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2035         (SI_SHLHI): Ditto.
2036         (SI_SHL): Ditto.
2037         (SI_SHLI): Ditto.
2038         (SI_ROTH): Ditto.
2039         (SI_ROTHI): Ditto.
2040         (SI_ROT): Ditto.
2041         (SI_ROTI): Ditto.
2042         (SPU_RL_0): Ditto.
2043         (SPU_RL_1): Ditto.
2044         (SPU_RL_2): Ditto.
2045         (SPU_RL_3): Ditto.
2046         (SPU_RL_4): Ditto.
2047         (SPU_RL_5): Ditto.
2048         (SPU_RL_6): Ditto.
2049         (SPU_RL_7): Ditto.
2050         (SPU_SL_0): Ditto.
2051         (SPU_SL_1): Ditto.
2052         (SPU_SL_2): Ditto.
2053         (SPU_SL_3): Ditto.
2054         (SPU_SL_4): Ditto.
2055         (SPU_SL_5): Ditto.
2056         (SPU_SL_6): Ditto.
2057         (SPU_SL_7): Ditto.
2058
2059         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2060         (floatunssidf2_internal): Change vector/vector shift names.
2061         (floatunsdidf2_internal): Ditto.
2062         (mulv8hi3): Ditto.
2063         (ashrdi3): Ditto.
2064         (ashrti3): Ditto.
2065         (cgt_df): Ditto.
2066         (cgt_v2df): Ditto.
2067         (dftsv): Ditto.
2068         (vashl<mode>3): Rename from ashl<mode>3.
2069         (vashr<mode>3): Rename from ashr<mode>3.
2070         (vlshr<mode>3): Rename from lshr<mode>3.
2071         (vrotl<mode>3): Rename from rotl<mode>3.
2072
2073 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2074
2075         PR target/36224
2076         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2077         multiply gives the wrong value when doing widening multiplies.
2078         (vec_widen_smult_lo_v4si): Ditto.
2079
2080 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2081
2082         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2083         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2084         emit_library_call_value. 
2085         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2086         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2087         * calls.c (initialize_argument_information, precompute_arguments, 
2088         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2089         (precompute_arguments): Removed flags parameter.
2090         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2091         
2092 2008-05-14  Richard Guenther  <rguenther@suse.de>
2093
2094         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2095         Make sure to register the store if the use is a PHI_NODE.
2096
2097 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2098
2099         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2100         memory if the component is to be referenced in BLKmode according
2101         to get_inner_reference.
2102
2103 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2104
2105         * calls.c (emit_library_call_value_1): Restore code clearing
2106         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2107
2108 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2109             Nicolas Roche  <roche@adacore.com>
2110
2111         * configure.ac: Add support for a "gcc_subdir" variable in
2112         config-lang.in, to denote a subdirectory where the language/GCC
2113         integration files are to be found.
2114         * configure: Regenerate.
2115
2116 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2117
2118         PR tree-optimization/36098
2119         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2120         value for the first load in the group in case of a gap.
2121         (vect_build_slp_tree): Check that there are no gaps in loads.
2122
2123 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2124
2125         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2126         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2127         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2128         emit_insn and remove unneeded code to construct extra args.
2129         (emit_no_conflict_block): Removed.
2130         * optabls.h: (emit_no_conflict_block): Removed.
2131         * cse.c (cse_extended_basic_block): Remove search for
2132         REG_NO_CONFLICT note.
2133         * global.c: Removed incorrect comment added in revision 117.
2134         * expr.c (convert_move): Change call to emit_no_conflict_block to
2135         emit_insn.
2136         * recog.c: Change comments so that they do not mention
2137         REG_NO_CONFLICT.
2138         * local_alloc.c (combine_regs): Removed last parameter.
2139         (no_conflict_p): Removed.
2140         (block_alloc): Removed note, no_conflict_combined_regno and set
2141         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2142         (combine_regs): Removed already_dead and code to look for
2143         REG_NO_CONFLICT notes.
2144         * lower_subreg (remove_retval_note): Removed code to look for
2145         REG_NO_CONFLICT block.
2146         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2147         (resolve_clobber): Remove code to process libcalls that have
2148         REG_NO_CONFLICT notes.
2149         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2150         case.
2151         * combine.c (can_combine_p, distribute_notes):  Removed
2152         REG_NO_CONFLICT case.
2153         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2154         to emit_insns.
2155         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2156         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2157         Ditto.
2158         * reg-notes.def (NO_CONFLICT): Removed.
2159
2160 2008-05-14  David S. Miller  <davem@davemloft.net>
2161
2162         * config/sparc/sparc.c (sparc_profile_hook): If
2163         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2164         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2165         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2166
2167 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2168
2169         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2170
2171 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2172
2173         PR target/36222
2174         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2175         and op1 expansion before vector concat to have less live pseudos.
2176
2177 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2178
2179         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2180         ix86_expand_vector_set if supported.
2181
2182 2008-05-13  Diego Novillo  <dnovillo@google.com>
2183             Kenneth Zadeck  <zadeck@naturalbridge.com>
2184
2185         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2186
2187         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2188         phinodes_print_statistics, init_ssanames, fini_ssanames,
2189         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2190         release_ssa_name, release_defs, replace_ssa_name_symbol,
2191         ssanames_print_statistics): Move ...
2192         * tree-flow.h: ... here.
2193         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2194         Use FN instead of cfun.
2195         (make_ssa_name_fn): Rename from make_ssa_name.
2196         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2197         * tree-flow-inline.h (make_ssa_name): Move from
2198         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2199         * omp-low.c (expand_omp_parallel):
2200         * tree-flow-inline.h (redirect_edge_var_map_result):
2201         * tree-ssa.c (init_tree_ssa): Add argument FN.
2202         Use it instead of cfun.  Update all users.
2203
2204 2008-05-13  Tom Tromey  <tromey@redhat.com>
2205
2206         PR preprocessor/22168:
2207         * doc/cpp.texi (Top): Update menu.
2208         (Alternatives to Wrapper #ifndef): New node.
2209         (Other Directives): Document deprecation.
2210         (Obsolete Features): Remove menu.
2211         (Assertions): Merge node into Obsolete Features.
2212         (Obsolete once-only headers): Move earlier; rename to Alternatives
2213         to Wrapper #ifndef.
2214         * doc/cppopts.texi: Update.
2215         * c.opt (Wdeprecated): Enable for C and ObjC.
2216         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2217         (C++ Dialect Options): Move -Wno-deprecated from here to...
2218         (Warning Options): ... here.
2219
2220 2008-05-13  Richard Guenther  <rguenther@suse.de>
2221
2222         PR middle-end/36227
2223         * fold-const.c (fold_sign_changed_comparison): Do not allow
2224         changes in pointer-ness.
2225
2226 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2227
2228         PR target/24713
2229         * config/sh/sh.c (sh_expand_prologue): Don't clear
2230         RTX_FRAME_RELATED_P for push insns.
2231
2232 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2233
2234         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2235
2236 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2237
2238         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2239         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2240         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2241
2242 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2243
2244         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2245         (*vec_concatv4sf_sse): This.
2246         (*sse2_concatv2si): Renamed to ...
2247         (*vec_concatv2si_sse2): This.
2248         (*sse1_concatv2si): Renamed to ...
2249         (*vec_concatv2si_sse): This.
2250         (*vec_concatv2di_rex): Renamed to ...
2251         (*vec_concatv2di_rex64): This.
2252         (*vec_concatv2si_sse4_1): New.
2253         (*vec_concatv2di_rex64_sse4_1): Likewise.
2254
2255 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2256
2257         PR rtl-optimization/36111
2258         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2259         that was created for swappable operands.
2260
2261 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2262
2263         PR ada/36001
2264         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2265         * configure.ac: Add call to ACX_PROG_GNAT.
2266
2267 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2268
2269         * optc-gen.awk: Fix comment typo.
2270
2271 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2272
2273         * pretty-print.c (pp_integer_with_precision): Use
2274         HOST_LONG_LONG_FORMAT.
2275
2276 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2277
2278         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2279                 
2280 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2281
2282         * config/i386/i386.c (bdesc_ptest): Removed.
2283         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2284         (bdesc_args): Add __builtin_ia32_ptestz128,
2285         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2286         (ix86_init_mmx_sse_builtins): Updated.
2287         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2288         (ix86_expand_builtin): Updated.
2289
2290 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2291
2292         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2293         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2294
2295 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2296
2297         * value-prof.c (interesting_stringop_to_profile): Do not
2298         return early for BUILT_IN_MEMPCPY.
2299
2300 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2301
2302         * calls.c (expand_call): Don't use callgraph to increase
2303         preferred_stack_boundary.
2304
2305         * cgraph.h (cgraph_rtl_info): Use unsigned on
2306         preferred_incoming_stack_boundary.
2307
2308         * final.c (rest_of_clean_state): Use unsigned on
2309         preferred_stack_boundary.
2310
2311 2008-05-09  Tom Tromey  <tromey@redhat.com>
2312
2313         PR preprocessor/22231:
2314         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2315         proceeding.
2316
2317 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2318
2319         PR tree-optimization/36129
2320         * tree-ssa-ccp.c: Include value-prof.h.
2321         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2322         built-in function was folded to a constant.
2323         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2324
2325 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2326             Sebastian Pop  <sebastian.pop@amd.com>
2327
2328         * tree-scalar-evolution.c: Document instantiate_scev.
2329         (instantiate_parameters_1): Renamed instantiate_scev_1.
2330         Don't use the same loop for instantiation_loop and evolution_loop.
2331         (instantiate_scev): New.
2332         (instantiate_parameters): Moved...
2333         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2334         same loop twice.  Maintains the semantics for this function.
2335         * tree-scalar-evolution.h (instantiate_scev): Declare.
2336         (instantiate_parameters): ...here.  Now static inline.
2337         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2338         instead of resolve_mixers.
2339
2340 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2341
2342         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2343
2344 2008-05-09  Tomas Bily  <tbily@suse.cz>
2345
2346         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2347         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2348         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2349         * c-common.c (c_common_truthvalue_conversion): Likewise.
2350         * tree-object-size.c (compute_object_offset): Likewise.
2351         * tree-inline.c (estimate_num_insns_1): Likewise.
2352         * varasm.c (const_hash_1, compare_constant, copy_constant)
2353         (compute_reloc_for_constant, output_addressed_constants)
2354         (initializer_constant_valid_p): Likewise.
2355         * c-omp.c (check_omp_for_incr_expr): Likewise.
2356         * gimplify.c (gimplify_expr): Likewise.
2357         * c-typeck.c (c_finish_return): Likewise.
2358         * tree-vectorizer.c (supportable_widening_operation)
2359         (supportable_narrowing_operation): Likewise.
2360         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2361         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2362         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2363         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2364         (descr_info_loc): Likewise.
2365         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2366         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2367         (fold_unary): Likewise.
2368         * builtins.c (get_pointer_alignment): Likewise.
2369         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2370         (instantiate_parameters_1): Likewise.
2371         * tree.c (expr_align, stabilize_reference): Likewise.
2372         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2373         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2374         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2375         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2376         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2377         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2378         Likewise.
2379         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2380         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2381         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2382         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2383         (forward_propagate_comparison)
2384         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2385         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2386         * emit-rtl.c (component_ref_for_mem_expr)
2387         (set_mem_attributes_minus_bitpos): Likewise.
2388         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2389         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2390         Likewise.
2391         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2392         (build_function_call, pointer_diff, build_compound_expr)
2393         (c_finish_return): Likewise.
2394         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2395         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2396         Likewise.
2397         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2398         * expr.c (is_aligning_offset): Likewise.
2399         * tree-ssa-alias.c (is_escape_site): Likewise.
2400         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2401         (check_all_va_list_escapes): Likewise.
2402         * tree-ssa-loop-ivopts.c (determine_base_object)
2403         (determine_common_wider_type): Likewise.
2404         * dojump.c (do_jump): Likewise.
2405         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2406         * tree-gimple.c (is_gimple_cast): Likewise.
2407         * fold-const.c (decode_field_reference, )
2408         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2409         (fold_binary): Likewise.
2410         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2411         (already_warned_in_frontend_p): Likewise.
2412         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2413         * tree.c (really_constant_p, get_unwidened): Likewise.
2414         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2415         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2416         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2417         Likewise.
2418         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2419         CONVERT_EXPR_P.
2420         (CONVERT_EXPR_P): Define.
2421         (CASE_CONVERT): Define.
2422         
2423 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2424
2425         PR middle-end/36117
2426         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2427         (delete_unmarked_insns): When deleting a call, call
2428         delete_unreachable_blocks.
2429         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2430         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2431
2432 2008-05-08  Richard Guenther  <rguenther@suse.de>
2433
2434         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2435         (-ftree-salias): Likewise.
2436         (salias-max-implicit-fields): Remove param documentation.
2437         (salias-max-array-elements): Likewise.
2438         * tree-pass.h (pass_create_structure_vars): Remove.
2439         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2440         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2441         * tree-ssa-alias.c (create_structure_vars): Remove.
2442         (gate_structure_vars): Likewise.
2443         (pass_create_structure_vars): Likewise.
2444         (gate_build_alias): Likewise.
2445         (pass_build_alias): Adjust to run always and dump the function.
2446         * common.opt (ftree-salias): Hide.
2447         * passes.c (init_optimization_passes): Remove
2448         pass_create_structure_vars, adjust comment.
2449         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2450         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2451         * opts.c (decode_options): Do not set flag_tree_salias.
2452         (common_handle_option): Add OPT_ftree_salias to the backward
2453         compatibility section.
2454
2455 2008-05-08  Richard Guenther  <rguenther@suse.de>
2456
2457         * tree-flow-inline.h (var_can_have_subvars): Move ...
2458         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2459         * tree-flow.h (var_can_have_subvars): Remove.
2460         (push_fields_onto_fieldstack): Remove.
2461         (sort_fieldstack): Likewise.
2462         (struct fieldoff): Move ...
2463         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2464         alias_set and base_for_components fields.
2465         (sort_fieldstack): Make static.
2466         (push_fields_onto_fieldstack): Likewise.  Remove code that
2467         handles anything but RECORD_TYPEs.  Remove alias_set and
2468         base_for_components handling.
2469         (create_variable_info_for): Adjust.
2470
2471 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2472
2473         * common.opt (Wframe-larger-than=): Shorten the help message
2474         to one line.
2475         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2476
2477 2008-05-08  Rafael Espindola  <espindola@google.com>
2478
2479         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2480         trap.
2481         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2482         trap and that both operands are gimple values.
2483         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2484         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2485         is a fp operation.
2486
2487 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2488
2489         * read-rtl.c (join_c_conditions): Return the first string if the
2490         two strings are equal.
2491
2492 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2493
2494         * gensupport.h (pred_data): Add a "num_codes" field.
2495         (add_predicate_code): Declare.
2496         * gensupport.c (add_predicate_code): New function.
2497         (std_pred_table): Add an "allows_const_p" field.
2498         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2499         Remove the (incomplete) list of such codes from the codes field.
2500         (init_predicate_table): Use add_predicate_code.  Add all
2501         RTX_CONST_OBJs if allows_const_p is true.
2502         * genrecog.c (process_define_predicate): Use add_predicate_code.
2503
2504 2008-05-08  David Daney  <ddaney@avtrex.com>
2505             Richard Sandiford  <rsandifo@nildram.co.uk>
2506         
2507         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2508         special case of constant zero operands.
2509         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2510         old and new values.  Special case constant zero values.
2511         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2512         fails.
2513         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2514         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2515
2516 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2517
2518         PR target/36090
2519         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2520         similar RTX_CONST_OBJ before CONST_INT.
2521
2522 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2523
2524         * stmt.c (expand_stack_restore): Change sa mode if needed.
2525
2526 2008-05-08  Richard Guenther  <rguenther@suse.de>
2527
2528         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2529         return type to bool.
2530         (ix86_sol10_return_in_memory): Likewise.
2531         (ix86_i386elf_return_in_memory): Likewise.
2532         (ix86_i386interix_return_in_memory): Likewise.
2533         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2534         (ix86_sol10_return_in_memory): Likewise.
2535         (ix86_i386elf_return_in_memory): Likewise.
2536         (ix86_i386interix_return_in_memory): Likewise.
2537
2538 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2539
2540         PR bootstrap/36180
2541         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2542         fndecl argument.
2543         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2544         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2545         declared in front.
2546
2547 2008-05-08  Richard Guenther  <rguenther@suse.de>
2548
2549         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2550         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2551         (DR_SUBVARS): Remove.
2552         * tree-dfa.c (dump_subvars_for): Remove.
2553         (debug_subvars_for): Likewise.
2554         (dump_variable): Do not dump subvars.
2555         (remove_referenced_var): Do not remove subvars.
2556         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2557         (lookup_subvars_for_var): Remove.
2558         (get_subvars_for_var): Likewise.
2559         (get_subvars_at): Likewise.
2560         (get_first_overlapping_subvar): Likewise.
2561         (overlap_subvar): Likewise.
2562         * tree-flow.h (subvar_t): Remove.
2563         (struct var_ann_d): Remove subvars field.
2564         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2565         argument.  Remove special handling of SFTs.
2566         (compute_tag_properties): Likewise.
2567         (set_initial_properties): Likewise.
2568         (compute_call_clobbered): Likewise.
2569         (count_mem_refs): Likewise.
2570         (compute_memory_partitions): Likewise.
2571         (compute_flow_insensitive_aliasing): Likewise.
2572         (setup_pointers_and_addressables): Likewise.
2573         (new_type_alias): Likewise.
2574         (struct used_part): Remove.
2575         (used_portions): Likewise.
2576         (struct used_part_map): Likewise.
2577         (used_part_map_eq): Likewise.
2578         (used_part_map_hash): Likewise.
2579         (free_used_part_map): Likewise.
2580         (up_lookup): Likewise.
2581         (up_insert): Likewise.
2582         (get_or_create_used_part_for): Likewise.
2583         (create_sft): Likewise.
2584         (create_overlap_variables_for): Likewise.
2585         (find_used_portions): Likewise.
2586         (create_structure_vars): Likewise.
2587         * tree.def (STRUCT_FIELD_TAG): Remove.
2588         * tree.h (MTAG_P): Adjust.
2589         (struct tree_memory_tag): Remove base_for_components and
2590         unpartitionable flags.
2591         (struct tree_struct_field_tag): Remove.
2592         (SFT_PARENT_VAR): Likewise.
2593         (SFT_OFFSET): Likewise.
2594         (SFT_SIZE): Likewise.
2595         (SFT_NONADDRESSABLE_P): Likewise.
2596         (SFT_ALIAS_SET): Likewise.
2597         (SFT_UNPARTITIONABLE_P): Likewise.
2598         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2599         (union tree_node): Remove sft field.
2600         * alias.c (get_alias_set): Remove special handling of SFTs.
2601         * print-tree.c (print_node): Remove handling of SFTs.
2602         * tree-dump.c (dequeue_and_dump): Likewise.
2603         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2604         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2605         * tree-predcom.c (set_alias_info): Do not set subvars.
2606         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2607         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2608         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2609         (add_vars_for_offset): Remove.
2610         (add_virtual_operand): Remove special handling of SFTs.
2611         (add_call_clobber_ops): Likewise.
2612         (add_call_read_ops): Likewise.
2613         (get_asm_expr_operands): Likewise.
2614         (get_modify_stmt_operands): Likewise.
2615         (get_expr_operands): Likewise.
2616         (add_to_addressable_set): Likewise.
2617         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2618         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2619         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2620         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2621         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2622         (tree_node_structure): Likewise.
2623         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2624         handling of SFTs.
2625         (find_what_p_points_to): Likewise.
2626
2627 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2628
2629         * config/spu/spu.md: Fixed subti3 pattern.
2630
2631 2008-05-08  Richard Guenther  <rguenther@suse.de>
2632
2633         PR middle-end/36154
2634         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2635         sure to create a representative for trailing arrays for PTA.
2636
2637 2008-05-08  Richard Guenther  <rguenther@suse.de>
2638
2639         PR middle-end/36172
2640         * fold-const.c (operand_equal_p): Two objects which types
2641         differ in pointerness are not equal.
2642
2643 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2644
2645         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2646         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2647         (emit_library_call_value_1): Add new variable fndecl initialized by
2648         NULL_TREE. It should be the decl type of orgfun, but this information
2649         seems not to be available here, so it uses the default calling abi.
2650         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2651         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2652         by TARGET_RETURN_IN_MEMORY.
2653         * config/i386/i386-interix.h: Likewise.
2654         * config/i386/i386.h: Likewise.
2655         * config/i386/i386elf.h: Likewise.
2656         * config/i386/ptx4-i.h: Likewise.
2657         * config/i386/sol2-10.h: Likewise.
2658         * config/i386/sysv4.h: Likewise.
2659         * config/i386/vx-common.h: Likewise.
2660         * config/cris/cris.h: Removed #if 0 clause.
2661         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2662         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2663         argument.
2664         (ix86_sol10_return_in_memory): Likewise.
2665         (ix86_i386elf_return_in_memory): New.
2666         (ix86_i386interix_return_in_memory): New.
2667         * config/mt/mt-protos.h (mt_return_in_memory): New.
2668         * config/mt/mt.c: Likewise.
2669         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2670         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2671         * config/bfin/bfin.h: Likewise.
2672         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2673         argument.
2674         * config/bfin/bfin.c: Likewise.
2675         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2676         * config/alpha/unicosmk.h: Likewise.
2677         * config/i386/cygming.h: Likewise.
2678         * config/iq2000/iq2000.h: Likewise.
2679         * config/mips/mips.h: Likewise.
2680         * config/mn10300/mn10300.h: Likewise.
2681         * config/rs6000/rs6000.h: Likewise.
2682         * config/score/score.h: Likewise.
2683         * config/spu/spu.h: Likewise.
2684         * config/v850/v850.h: Likewise.
2685         * defaults.h: Likewise.
2686         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2687         * expr.c (emit_block_move): Adjust use of
2688         OUTGOING_REG_PARM_STACK_SPACE.
2689         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2690         OUTGOING_REG_PARM_STACK_SPACE.
2691         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2692
2693 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2694
2695         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2696         on OMP_RETURN for OMP_FOR.
2697
2698         PR debug/35896
2699         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2700         (fortran_common): New function.
2701         (gen_variable_die): Call fortran_common instead of common_check,
2702         adjust for it returning tree instead of rtx.  Formatting.
2703
2704 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2705
2706         PR rtl/7335
2707         PR rtl/33826
2708         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2709         * c-decl.c (merge_decls): Ditto.
2710         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2711         to RTL_CONST_OR_PURE_CALL_P.
2712         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2713         Initialized DECL_LOOPING_CONST_PURE.
2714         (process_call_operands): Set tree_side_effects properly.
2715         * tree.h (TREE_READONLY_DECL_P): Removed.
2716         (DECL_IS_PURE): Renamed to DECL_PURE_P.
2717         (DECL_LOOPING_OR_CONST_P): New macro.
2718         (struct tree_function_decl): Added looping_const_or_pure_p.
2719         (ECF_*) Renumbered.
2720         (ECF_LOOPING_OR_CONST_P): New macro.
2721         * rtlanal.c (pure_const_p): Removed.
2722         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2723         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2724         to RTL_CONST_CALL_P.
2725         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2726         (check_decl, check_tree, check_call, scan_function): Initialize
2727         looping.
2728         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2729         (static_execute): Set looping true for recursive functions.
2730         Undo setting state to IPA_NEITHER for recursive functions.
2731         * cse.c (cse_insn): 
2732         * ifcvt.c (noce_can_store_speculate_p): Changed
2733         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2734         RTL_CONST_OR_PURE_CALL_P.
2735         * dse.c (scan_insn): Ditto.
2736         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2737         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2738         RTL_CONST_OR_PURE_CALL_P.
2739         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2740         pure_call_p to RTL_CONST_CALL_P.
2741         * gimplify.c (gimplify_call_expr): Clear side effects for
2742         non-looping pure and constant calls.
2743         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2744         (flags_from_decl_or_type): Set ecf flags from decl flags.
2745         (initialize_argument_information): Turn off
2746         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2747         Change const to pure if callee_copies is true rather than just
2748         turning off const.
2749         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2750         way of marking pure calls.
2751         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2752         Remove hack that was supposed to fix pr7335 and remove old
2753         way of marking pure calls.
2754         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2755         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2756         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2757         RTL_CONST_OR_PURE_CALL_P.
2758         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2759         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2760         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2761         * sched-deps.c (schedule_analyze): Ditto.
2762         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2763         return_val field of calls to represent pure and const function info.
2764         (CONST_OR_PURE_CALL_P): Deleted macro.
2765         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2766         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2767         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2768         TREE_READONLY.
2769         * tree-optimize.c (execute_fixup_cfg): Added test for
2770         ECF_LOOPING_CONST_OR_PURE.
2771         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2772         DECL_PURE_P.
2773         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2774         effects for looping pure or const calls.
2775         (verify_gimple_expr): Added verification code. 
2776         * config/alpha/alpha.c (alpha_legitimize_address,
2777         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2778         RTL_CONST_CALL_P.
2779         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2780         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2781         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2782         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2783         RTL_CONST_OR_PURE_CALL_P.
2784         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2785         and const calls to be deleted.
2786
2787 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2788
2789         PR target/35714
2790         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2791         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2792         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2793         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2794         to handle nonimmediate operands.
2795         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2796         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2797         to handle nonimmediate operands.
2798         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2799         (mmx_pmulhrwv4hi3): New expander.  Use
2800         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2801         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2802         (sse2_umulv1siv1di3): New expander.  Use
2803         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2804         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2805         (mmx_eq<mode>3): New expander.  Use
2806         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2807         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2808         (mmx_uavgv8qi3): New expander.  Use
2809         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2810         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2811         (mmx_uavgv4hi3): New expander.  Use
2812         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2813
2814         * config/i386/sse.md
2815         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2816         to handle nonimmediate operands.
2817         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2818         to handle nonimmediate operands.
2819         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2820         to handle nonimmediate operands.
2821         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2822         to handle nonimmediate operands.
2823         (sse2_unpckhpd_exp): New expander.  Use
2824         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2825         (sse2_unpcklpd_exp): New expander.  Use
2826         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2827         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2828         to handle nonimmediate operands.
2829         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2830         to handle nonimmediate operands.
2831         (*sse2_<plusminus_insn><mode>3): Rename from
2832         sse2_<plusminus_insn><mode>3 insn pattern.
2833         (sse2_<plusminus_insn><mode>3): New expander.  Use
2834         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2835         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2836         (sse2_umulv2siv2di3): New expander.  Use
2837         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2838         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2839         (sse4_1_mulv2siv2di3): New expander.  Use
2840         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2841         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2842         (sse2_pmaddwd): New expander.  Use
2843         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2844         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2845         (sse2_eq<mode>3): New expander.  Use
2846         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2847         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2848         (sse4_1_eqv2di3): New expander.  Use
2849         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2850         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2851         (sse2_uavgv16qi3): New expander.  Use
2852         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2853         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2854         (sse2_uavgv16qi3): New expander.  Use
2855         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2856         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2857         (sse2_uavgv8hi3): New expander.  Use
2858         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2859         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2860         (ssse3_pmulhrswv8hi3): New expander.  Use
2861         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2862         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2863         (ssse3_pmulhrswv4hi3): New expander.  Use
2864         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2865
2866         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2867         (<sse>_vmmul<mode>3): Ditto.
2868         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2869         (divv2df3): Ditto.
2870         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2871         (ssse3_pmaddubsw): Ditto.
2872
2873         * config/i386/i386.c (struct_builtin_description)
2874         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2875         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2876         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2877         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2878         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2879         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2880         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2881         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2882         (ix86_fixup_binary_operands): Assert that src1
2883         and src2 must have the same mode when swapped.
2884         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2885         and ix86_binary_operator_ok.  Do not force operands in registers
2886         when optimizing.
2887
2888 2008-05-07  Jan Hubicka  <jh@suse.cz>
2889
2890         * cgraph.c (dump_cgraph_node): Update.
2891         * cgraph.h (cgraph_local_info): Break out inline summary.
2892         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2893         hook.
2894         * ipa-inline (inline_summary): New accestor function.
2895         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2896         cgraph_decide_inlining, compute_inline_parameters): Update.
2897         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2898
2899 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2900
2901         Cleanup ColdFire scheduling support and add V4 pipeline model.
2902
2903         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2904         (define_attr cpu): Add cfv4 value.
2905         (define_attr type, define_attr type1): Merge into a single 'type'
2906         attribute.  Update all uses.
2907         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2908         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2909         Update all uses.
2910         (define_attr opx_mem, define_attr opy_mem): Remove.
2911         (define_attr op_mem): Clean up, update comment.
2912         (define_attr size): Use specific values instead of general int.
2913         (define_attr guess, define_attr split): Remove.  Update all uses.
2914         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2915         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2916         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2917         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2918         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2919         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2920         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2921         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2922         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2923         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2924         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2925         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2926         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2927         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2928         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2929         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2930         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2931         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2932         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2933         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2934         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2935         Update or set attributes.
2936         (stack_tie): New fake instruction.
2937
2938         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2939         (m68k_sched_attr_size): Update declaration.
2940         (m68k_sched_attr_type2): Remove.
2941         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2942         Declare new bypass predicates.
2943
2944         * config/m68k/m68k.c (m68k_sched_issue_rate,
2945         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2946         implementations.
2947         (TARGET_SCHED_ISSUE_RATE,
2948         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2949         (override_options): Handle scheduling for ColdFire V4 core.
2950         (m68k_expand_prologue): Emit stack_tie.
2951         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2952         'OP_TYPE_FPN'.  Update all uses.
2953         (sched_guess_p): Remove.
2954         (sched_address_type): Handle symbolic addresses.
2955         (sched_get_operand): New static function.
2956         (sched_operand_type): Merge into sched_attr_op_type.
2957         (sched_attr_op_type): Handle FP registers, handle quick constants,
2958         update.
2959         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2960         (m68k_sched_attr_size): Update.  Move logic to ...
2961         (sched_get_attr_size_int): New static function.
2962         (sched_get_opxy_mem_type): New static function.
2963         (m68k_sched_attr_op_mem): Update.
2964         (m68k_sched_attr_type2): Remove.
2965         (sched_cfv4_bypass_data): New static variable.
2966         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2967         (m68k_sched_issue_rate): Implement scheduler hook.
2968         (struct _sched_ib: enabled_p): New field.
2969         (m68k_sched_variable_issue): Update.  Handle V4.
2970         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2971         sched_dump_class_func_t, sched_dump_split_class,
2972         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2973         sched_dump_dfa_class, m68k_sched_dump): Remove.
2974         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2975         hook.
2976         (m68k_sched_init_global): Remove statisctics dumping, introduce
2977         sanity check that all instructions have pipeline reservations.  Handle
2978         ColdFire V4 core.
2979         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2980         Handle ColdFire V4 core.
2981         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2982         New static functions.
2983         (m68k_sched_address_bypass_p): New bypass predicate.
2984         (sched_get_indexed_address_scale): New static function.
2985         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2986
2987         * cf.md: Update comments.
2988         (define_attr type2): Remove.  Use 'type' attribute instead.
2989         Update all uses.
2990         (cf_ib): Rename to cfv123_ib.  Update all uses.
2991         (cf_oep): Rename to cfv123_oep.  Update all uses.
2992         (cf_chr): Rename to cfv123_chr.  Update all uses.
2993         (cf_mem): Rename to cfv123_mem.  Update all uses.
2994         (cf_mac): Move to more appropriate place.
2995         (cfv123_guess): New automaton and cpu_unit.
2996         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2997         Update uses of 'size' attribute.  Handle before reload scheduling.
2998         (cfv123_guess): New dummy reservation for unhandled instructions.
2999         (cfv4_*): Pipeline description of ColdFire V4 core.
3000         (ignore): New reservation to handle 'ignore' type.
3001
3002 2008-05-07  Ian Lance Taylor  <iant@google.com>
3003
3004         PR middle-end/36013
3005         * gimplify.c (find_single_pointer_decl_1): Don't look through
3006         indirections.
3007         (find_single_pointer_decl): Adjust comments.
3008
3009 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3010
3011         PR middle-end/36137
3012         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3013         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3014
3015         PR middle-end/36106
3016         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3017         integral type rather than floating point, then VIEW_CONVERT_EXPR
3018         to the floating point type.
3019
3020 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3021
3022         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3023         TFmode op0 to register.
3024
3025 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3026
3027         * c-decl.c (grokdeclarator): Comment typo.
3028
3029 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3030
3031         * tree-flow.h: Remove prototype for computed_goto_p.
3032         * tree-cfg.c (computed_goto_p): Make static.
3033
3034 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3035
3036         PR target/35657
3037         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3038         (contains_aligned_value_p): This.  Handle _Decimal128.
3039         (ix86_function_arg_boundary): Only align _Decimal128 to its
3040         natural boundary and handle it properly.
3041
3042 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3043
3044         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3045         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3046         (ipcp_method_set_orig_node): Removed.
3047         (ipcp_cval_get_cvalue_type): Removed.
3048         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3049         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3050         (ipcp_cval_set_cvalue_type): Removed.
3051         (ipcp_cval_get_cvalue): Removed.
3052         (ipcp_cval_set_cvalue): Removed.
3053         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3054         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3055         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3056         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3057         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3058         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3059         (ipcp_get_ith_lattice): Changed parameters.
3060         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3061         (ipcp_lattice_from_jfunc): Changed parameters.
3062         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3063         (ipcp_method_cval_print): Added temporary variable info.
3064         (ipcp_redirect): Removed already unused local variable caller.
3065         (ipcp_redirect): New temporary variable orig_callee_info
3066         (ipcp_redirect): Removed newly unused local variable callee.
3067         (ipcp_redirect): Removed (a bit confusing) local variable type.
3068         (ipcp_insert_stage): Added local variable info.
3069         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3070         renamed too
3071         (ipcp_formal_create): Removed.
3072         (ipcp_method_cval_set): Removed.
3073         (ipcp_propagate_stage): Renamed lattice variables.
3074         (ipcp_method_cval_set_cvalue_type): Removed.
3075         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3076         (ipcp_print_all_lattices): Changed printed strings to refer to 
3077         lattices rather than cvals.
3078         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3079         (ipcp_propagate_const): Changed formal parameters.
3080         (build_const_val): Changed formal parameters.
3081         (ipcp_insert_stage): Removed useless variable cvalue
3082         (build_const_val): Changed formal parameters.
3083         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3084         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3085         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3086         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3087         (ipcp_print_func_profile_counts): Changed string from "method" to 
3088         "function"
3089         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3090         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3091         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3092         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3093         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3094         (ipcp_lat_is_const): Changed parameters and made inline.
3095         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3096         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3097         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3098         the predicate condition directly
3099         (ipcp_propagate_stage): Added local variable args. Removed local
3100         variable callee.  (Both are mere code simplifications.)
3101         (ipcp_method_dont_insert_const): Renamed to
3102         ipcp_node_not_modifiable_p.
3103         (ipcp_node_not_modifiable_p): Made inline.
3104         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3105         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3106         (ipcp_print_all_lattices): Removed variable cvalue
3107         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3108         Updated comments.
3109
3110 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3111
3112         * tree-sra.c (try_instantiate_multiple_fields): Early return
3113         if field has POINTER_TYPE.
3114
3115 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3116
3117         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3118         by using 'q' specifier for instruction.
3119         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3120
3121 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3122
3123         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3124         Change mode of zero_extract from QImode to HImode.
3125         (sign bit tests peepholes): (Ditto.).
3126
3127 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3128
3129         * config/i386/mmx.md: Remove double backslashes from asm templates.
3130         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3131         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3132         to handle nonimmediate operands.
3133         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3134         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3135         to handle nonimmediate operands.
3136         (*mmx_<code>v2sf3_finite): New insn pattern.
3137         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3138         (mmx_<code>v2sf3): New expander.  Use
3139         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3140         (mmx_<plusminus_insn><mode>3): New expander.  Use
3141         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3142         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3143         (mmx_add<mode>3): Removed.
3144         (mmx_ssadd<mode>3): Ditto.
3145         (mmx_usadd<mode>3): Ditto.
3146         (mmx_sub<mode>3): Ditto.
3147         (mmx_sssub<mode>3): Ditto.
3148         (mmx_ussub<mode>3): Ditto.
3149         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3150         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3151         to handle nonimmediate operands.
3152         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3153         insn pattern.
3154         (mmx_smulv4hi3_highpart): New expander.  Use
3155         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3156         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3157         insn pattern.
3158         (mmx_umulv4hi3_highpart): New expander.  Use
3159         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3160         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3161         (mmx_<code>v4hi3): New expander.  Use
3162         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3163         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3164         (mmx_<code>v8qi3): New expander.  Use
3165         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3166         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3167         (mmx_<code><mode>3): New expander.  Use
3168         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3169
3170 2008-05-05  Jan Hubicka  <jh@suse.cz>
3171
3172         PR tree-optimization/36118
3173         * passes.c (pass_init_dump_file): Fix dump header.
3174
3175 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3176
3177         PR middle-end/36141
3178         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3179         VCE for function decls.
3180
3181 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3182
3183         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3184
3185 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3186
3187         * config/i386/i386.md (sat_plusminus): New.
3188         (plusminus_insn): Likewise.
3189         (plusminus_mnemonic): Likewise.
3190         (addsub): Removed.
3191         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3192         (*<addsub><mode>3_cc_overflow): Renamed to ...
3193         (*<plusminus_insn><mode>3_cc_overflow): This.
3194         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3195         (*<plusminus_insn>si3_zext_cc_overflow): This.
3196
3197         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3198         (<plusminus_insn><mode>3): This.
3199         (*<addsub><mode>3): Renamed to ...
3200         (*<plusminus_insn><mode>3): This.
3201         (<sse>_vm<addsub><mode>3): Renamed to ...
3202         (<sse>_vm<plusminus_insn><mode>3): This.
3203         (sse3_h<addsub>v4sf3): Renamed to ...
3204         (sse3_h<plusminus_insn>v4sf3): This.
3205         (sse3_h<addsub>v2df3): Renamed to ...
3206         (sse3_h<plusminus_insn>v2df3): This.
3207         (<plusminus_insn><mode>3): New.
3208         (*<plusminus_insn><mode>3): Likewise.
3209         (sse2_<plusminus_insn><mode>3): Likewise.
3210         (add<mode>): Removed.
3211         (*add<mode>3): Likewise.
3212         (sse2_ssadd<mode>3): Likewise.
3213         (sse2_usadd<mode>3): Likewise.
3214         (sub<mode>3): Likewise.
3215         (*sub<mode>3): Likewise.
3216         (sse2_sssub<mode>3): Likewise.
3217         (sse2_ussub<mode>3): Likewise.
3218
3219 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3220
3221         * gthr-single.h: Add in required interface elements as per gthr.h.
3222         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3223         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3224         Generalize UNUSED macro. 
3225         (__gthread_once): Add.
3226         (__gthread_key_create): Add.
3227         (__gthread_key_delete): Add.
3228         (__gthread_getspecific): Add.
3229         (__gthread_setspecific): Add.
3230         
3231 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3232
3233         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3234         the same size types for the indirect reference on the rhs, then
3235         create a VCE.
3236
3237 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3238
3239         * config/i386/i386.md
3240         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3241         one insn template instead of template series.
3242         (*xordi_1_rex64): Ditto.
3243         (*xordi_2_rex64): Ditto.
3244
3245 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3246
3247         PR tree-optimization/36119
3248         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3249         in case of SLP.
3250
3251 2008-06-04  Jan Hubicka  <jh@suse.cz>
3252
3253         tree-optimization/36100
3254         * tree-pass.h (pass_O0_always_inline): Declare.
3255         * ipa-inline.c (inline_transform): Remove dead code.
3256         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3257         pass_O0_always_inline): New.
3258         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3259
3260 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3261
3262         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3263         mnemonic in this_param move for TARGET_64BIT.
3264
3265 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3266
3267         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3268         (*strmovsi_rex_1): Ditto.
3269         (*strsetsi_1): Ditto.
3270         (*strsetsi_rex_1): Ditto.
3271
3272         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3273         adddicc expanders using SWI mode iterator.
3274
3275 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3276
3277         PR target/36121
3278         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3279         argument handling.
3280
3281 2008-05-04  David S. Miller  <davem@davemloft.net>
3282
3283         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3284         (sparc*-*-linux*): Use linux.h in tm_file.
3285         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3286         compiler defaulting to 32-bit.
3287         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3288         no longer needed.
3289         * config/sparc/linux.h: Remove definitions now obtained
3290         properly from linux.h
3291         * config/sparc/linux64.h: Likewise.
3292         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3293         don't want this setting for 32-bit builds in a biarch compiler.
3294         * doc/install.texi: Add sparc-linux to list of targets
3295         supporting --enable-targets=all.
3296
3297 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3298
3299         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3300
3301 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3302
3303         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3304         after V4SI_FTYPE_V8HI.
3305         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3306         case V4SI_FTYPE_V2DF.
3307
3308 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3309
3310         * doc/invoke.texi (max-flow-memory-locations): Removed.
3311         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3312         
3313 2008-05-03  Richard Guenther  <rguenther@suse.de>
3314
3315         PR middle-end/34973
3316         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3317
3318 2008-05-02  David S. Miller  <davem@davemloft.net>
3319
3320         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3321
3322 2008-05-02  Simon Baldwin <simonb@google.com>
3323
3324         PR bootstrap/36108
3325         * c-common.h (warn_array_subscript_range): Removed.
3326         * c-common.c (warn_array_subscript_range): Ditto.
3327         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3328         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3329
3330 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3331
3332         * config/i386/i386.c (ix86_special_builtin_type): New.
3333         (bdesc_special_args): Likewise.
3334         (ix86_expand_special_args_builtin): Likewise.
3335         (ix86_init_mmx_sse_builtins): Updated.
3336         (ix86_expand_builtin): Updated.
3337         (ix86_expand_store_builtin): Removed.
3338         (ix86_expand_unop_builtin): Likewise.
3339
3340         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3341         * config/i386/mmintrin.h (__v2sf): Here.
3342
3343         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3344         const __v2sf.
3345         (_mm_loadl_pi): Likewise.
3346         (_mm_storeh_pi): Replace __v2si with __v2sf.
3347         (_mm_storel_pi): Likewise.
3348
3349         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3350         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3351         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3352         __builtin_ia32_loadlpd.
3353
3354 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3355
3356         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3357         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3358         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3359         (ix86_init_mmx_sse_builtins): Updated.
3360         (ix86_expand_args_builtin): Likewise.
3361         (ix86_expand_builtin): Likewise.
3362         (ix86_expand_unop1_builtin): Renamed to ...
3363         (ix86_expand_unop_vec_merge_builtin): This.
3364
3365 2008-05-01  Jan Hubicka  <jh@suse.cz>
3366
3367         PR bootstrap/36100
3368         * ipa-inline.c (inline_generate_summary): Make static.
3369         (inline_transform): Do not call inlining at -O0; make static.
3370         * passes.c (execute_todo): Add sanity check.
3371         (execute_one_ipa_transform_pass): Execute proper flags.
3372
3373 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3374
3375         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3376         (DECL_NONADDRESSABLE_P): Likewise.
3377         * alias.c (record_component_aliases): Fix comment.
3378
3379 2008-05-01  Simon Baldwin <simonb@google.com>
3380
3381         * c-common.h (warn_array_subscript_range): New function.
3382         * c-common.c (warn_array_subscript_range): Ditto.
3383         * tree-vrp.c (check_array_ref): Corrected code to agree with
3384         comment, ignoring only arrays of size 0 or size 1.
3385         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3386
3387 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3388
3389         * config/i386/i386.c (ix86_builtin_type): Replace
3390         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3391         (bdesc_args): Updated.
3392         (ix86_init_mmx_sse_builtins): Likewise.
3393         (ix86_expand_args_builtin): Likewise.
3394
3395         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3396         with __v1di.
3397
3398         * doc/extend.texi: Correct __builtin_ia32_palignr.
3399
3400 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3401
3402         PR target/36095
3403         * config/i386/i386.c (bdesc_crc32): Removed.
3404         (ix86_expand_crc32): Likewise.
3405         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3406         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3407         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3408         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3409         UINT_FTYPE_UINT_UCHAR.
3410         (bdesc_args): Updated. Add crc32 builtins.
3411         (ix86_init_mmx_sse_builtins): Updated.
3412         (ix86_expand_args_builtin): Updated to support subreg.
3413
3414         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3415
3416 2008-05-01  Jan Hubicka  <jh@suse.cz>
3417
3418         * tree-pass.h (opt_pass): Add IPA_PASS.
3419         (varpool_node, cgraph_node): Forward declare.
3420         (ipa_opt_pass): Define.
3421         (pass_ipa_inline): Turn into ipa_opt_pass.
3422         (pass_apply_inline): Remove.
3423         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3424         (apply_inline): Turn into ....
3425         (inline_transform): ... this one.
3426         (inline_generate_summary): New function.
3427         (pass_apply_inline): Remove.
3428         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3429         vector.
3430         (struct function): Add ipa_transforms_to_apply.
3431         * passes.c (register_one_dump_file): Work on IPA_PASS.
3432         (init_optimization_passes): Remove pass_inline_parameters and
3433         pass_apply_inline.
3434         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3435         (execute_one_pass) ... here; apply transforms when possible.
3436         (add_ipa_transform_pass, execute_ipa_summary_asses,
3437         execute_one_ipa_transform_pass): New.
3438         (execute_ipa_pass_list): Update for IPA_PASS type.
3439
3440 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3441
3442         * config/i386/i386.c (ix86_builtin_type): Add
3443         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3444         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3445         (bdesc_args): Add SSE4a builtins.
3446         (ix86_init_mmx_sse_builtins): Updated.
3447         (ix86_expand_args_builtin): Likewise.
3448         (ix86_expand_builtin): Likewise.
3449
3450 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3451
3452         * config/i386/i386.c (ix86_builtin_type): Add
3453         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3454         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3455         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3456         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3457         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3458         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3459         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3460         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3461         and DI_FTYPE_DI_DI_INT.
3462         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3463         (ix86_init_mmx_sse_builtins): Updated.
3464         (ix86_expand_args_builtin): Likewise.
3465         (ix86_expand_builtin): Likewise.
3466         (ix86_expand_binop_imm_builtin): Removed.
3467
3468         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3469
3470 2008-04-30  Richard Guenther  <rguenther@suse.de>
3471
3472         PR tree-optimization/32921
3473         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3474
3475 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3476
3477         * config/arm/arm.c (arm_unwind_emit): Use
3478         crtl->all_throwers_are_sibcalls instead of
3479         cfun->all_throwers_are_sibcalls.
3480         (arm_output_fn_unwind): Likewise.
3481         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3482         instead of cfun->uses_pic_offset_table.
3483         (frv_expand_prologue): Likewise.
3484         (frv_frame_pointer_required): Likewise.
3485         (frv_expand_fdpic_call): Likewise.
3486         (frv_emit_movsi): Likewise.
3487         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3488         cfun->returns_pcc_struct instead of
3489         current_function_returns_pcc_struct.
3490         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3491         instead of cfun->calls_eh_return.
3492         (m32c_pushm_popm): Likewise.
3493         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3494         "extern" declaration.
3495
3496 2008-04-30  Richard Guenther  <rguenther@suse.de>
3497
3498         PR tree-optimization/21636
3499         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3500         constant address.
3501         (evaluate_stmt): Print the likely value.
3502         (ccp_visit_stmt): Avoid excessive vertical spacing.
3503
3504 2008-04-30  Rafael Espindola  <espindola@google.com>
3505
3506         * builtins.c (fold_call_expr): Return realret.
3507         * tree-ssa-threadedge.c
3508         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3509         __builtin_object_size.
3510
3511 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3512
3513         * gcc.c (wrapper_string): New variable.
3514         (insert_wrapper): New function.
3515         (execute): New option -wrapper.
3516         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3517
3518 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3519
3520         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3521         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3522         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3523         from...
3524         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3525         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3526         config/rs6000/e500crtres64gprctr.asm,
3527         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3528         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3529         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3530         config/rs6000/e500crtsav64gprctr.asm,
3531         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3532         config/rs6000/e500crtsavg64gprctr.asm: New files.
3533         * config/rs6000/t-ppccomm: Add build rules for new files.
3534         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3535         * config/rs6000/t-netbsd: Add build rules for new files.
3536         (LIB2FUNCS_STATIC_EXTRA): New variable.
3537         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3538         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3539         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3540
3541 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3542
3543         * config/i386/i386.c (ix86_builtin_type): Add
3544         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3545         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3546         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3547         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3548         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3549         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3550         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3551         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3552         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3553         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3554         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3555         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3556         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3557         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3558         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3559         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3560         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3561         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3562         V1DI_FTYPE_V2SI_V2SI.
3563         (bdesc_2arg): Moved to ...
3564         (bdesc_args): Here.
3565         (ix86_init_mmx_sse_builtins): Updated.
3566         (ix86_expand_args_builtin): Updated.  Take a pointer
3567         to const struct builtin_description.  Handle comparison
3568         builtin functions.
3569         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3570         (ix86_expand_builtin): Updated.
3571
3572         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3573         (ssse3_pmaddubsw128): This.
3574         (ssse3_pmaddubswv4hi3): Renamed to ...
3575         (ssse3_pmaddubsw): This.
3576
3577         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3578         (__builtin_ia32_packssdw128): Likewise.
3579         (__builtin_ia32_packuswb128): Likewise.
3580         (__builtin_ia32_pmaddubsw): Likewise.
3581         (__builtin_ia32_pmaddubsw128): Likewise.
3582
3583 2008-04-30  Richard Guenther  <rguenther@suse.de>
3584
3585         PR tree-optimization/14847
3586         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3587         (recognize_bits_test): Use it.
3588         (recognize_single_bit_test): Likewise.
3589
3590 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3591
3592         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3593         instead of setting number of formal parameters to zero.
3594         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3595         either.
3596         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3597         which are called with variable number of arguments.
3598         (ipcp_insert_stage): Explicitely skipping all nodes which are
3599         called with variable number of arguments.
3600         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3601         number of parameters.
3602
3603         * ipa-prop.h (struct ipa_node_params): Added flag
3604         called_with_var_arguments
3605         (ipa_set_param_count): Added.  Changed sole setter to use it.
3606         (ipa_get_param_count): Added.  All readers of param_count
3607         converted to use it instead.
3608         (ipa_set_called_with_variable_arg): Added.
3609         (ipa_is_called_with_var_arguments): Added.
3610         (ipa_get_ith_param): Added.  All readers of param_decls converted
3611         to use it instead.
3612         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3613         changed to use it. 
3614         (ipa_get_cs_argument_count): Added, all readers of argument_count
3615         changed to cal it.
3616         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3617         to use it.
3618         
3619         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3620         (struct ipcp_lattice): Renamed cval_type to type
3621         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3622
3623         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3624         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3625         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3626         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3627         (build_const_val): Changed the type of parameter cvalue to tree
3628         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3629         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3630         
3631         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3632         constant 
3633
3634         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3635         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3636         (ipa_add_method): Renamed to ipa_push_func_to_list
3637         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3638         (ipa_callsite_param_count): Removed.
3639         (ipa_callsite_param_count_set): Removed.
3640         (ipa_callsite_param): Removed.
3641         (ipa_callsite_callee): Removed.
3642         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3643         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3644         (ipa_method_formal_count): Removed.
3645         (ipa_method_formal_count_set): Removed.
3646         (ipa_method_get_tree): Removed.
3647         (ipa_method_tree_map_create): Removed.
3648         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3649         (ipa_create_param_decls_array): Creates the array itself
3650         (ipa_create_param_decls_array): Temporary variable info instead of 
3651         a few dereferences.
3652         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3653         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3654         (get_type): Removed.
3655         (ipa_jf_get_info_type): Removed.
3656         (ipa_node_create): Renamed to ipa_create_node_params
3657         (ipa_free): Renamed to ipa_free_all_node_params
3658         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3659         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3660         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3661         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3662         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3663         ipa_free_all_edge_args
3664         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3665         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3666         (ipa_create_methodlist_node): Removed.
3667         (ipa_methodlist_method): Removed.
3668         (ipa_methodlist_method_set): Removed.
3669         (ipa_methodlist_next_method): Removed.
3670         (ipa_methodlist_next_method_set): Removed.
3671         (ipa_method_is_modified): Removed.
3672         (ipa_method_modify_create): Removed.
3673         (ipa_method_modify_init): Temporary variable info instead of a few 
3674         dereferences.
3675         (ipa_detect_param_modifications): Temporary variable info instead of 
3676         a few dereferences.
3677         (ipa_compute_jump_functions): Temporary variable info instead of 
3678         a few dereferences.
3679         (ipa_method_modify_set): Removed.
3680         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3681         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3682         than craph_node as the first parameter.
3683         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3684         (ipa_method_modify_init): Removed.
3685         (ipa_compute_jump_functions): Added a temp variable instead of 
3686         repeatadly dereferencing the cgraph_edge.aux pointer
3687         (ipa_callsite_param_set_type): Removed.
3688         (ipa_compute_jump_functions): i renamed to index and moved to 
3689         an inner block
3690         (ipa_callsite_param_set_info_type_formal): Removed.
3691         (ipa_callsite_param_set_info_type): Removed.
3692         (ipa_callsite_param_map_create): Removed.
3693         (ipa_callsite_tree): Removed.
3694         (ipa_callsite_caller): Removed.
3695         (ipa_pop_func_from_list): return_method removed to return_func
3696
3697         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3698         prefixed all values with IPA_. Changed all users.
3699         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3700         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3701         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3702         (union parameter_info): Renamed to jump_func_value.
3703         (union jump_func_value): Renamed value to constant
3704         (struct ipa_jump_func): Renamed info_type to value
3705         (struct ipa_node): Renamed to ipa_node_params
3706         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3707         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3708         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3709         (struct ipa_edge): Renamed to ipa_edge_args
3710         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3711         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3712         (struct ipa_methodlist): Renamed to ipa_func_list
3713         (struct ipa_func_list): method_p renamed to node, next_method
3714         renamed to next
3715         (ipa_methodlist_p): Removed, switched all users to struct pointer
3716         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3717
3718 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
3719
3720         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3721         (rs6000_emit_epilogue): Use backchain to restore only when we
3722         have a large frame.  Make use of frame pointer to restore if we
3723         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3724
3725 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3726
3727         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3728         Add mode to zero_extract.
3729         (sign bit tests peepholes): (Ditto.).
3730
3731 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3732
3733         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3734         Instructions in comments with SSE3.
3735         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3736         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3737         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3738         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3739         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3740         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3741         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3742         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3743         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3744         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3745         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3746         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3747         (bdesc_sse_args): Renamed to ...
3748         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3749         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3750         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3751         IX86_BUILTIN_FABSQ.
3752         (bdesc_1arg): Moved to ...
3753         (bdesc_args): Here.
3754         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3755         Instructions in comments with SSE3.
3756         (ix86_expand_sse_operands_builtin): Renamed to ...
3757         (ix86_expand_args_builtin): This.  Updated.
3758         (ix86_expand_unop1_builtin): Update comments.
3759         (ix86_expand_builtin): Updated.
3760
3761 2008-04-29  Richard Guenther  <rguenther@suse.de>
3762
3763         PR tree-optimization/36078
3764         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3765         Update virtual SSA form after cleaning up the CFG.
3766
3767 2008-04-29  Richard Guenther  <rguenther@suse.de>
3768
3769         PR middle-end/15255
3770         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3771
3772 2008-04-29  Richard Guenther  <rguenther@suse.de>
3773
3774         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3775         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3776         (compute_flow_insensitive_aliasing): Do not treat
3777         PTR_IS_REF_ALL pointers special.
3778         (get_smt_for): Likewise.
3779         (may_alias_p): Re-structure.
3780         (is_escape_site): A ref-all pointer conversion is not an escape site.
3781         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3782         PTR_IS_REF_ALL pointers special.
3783         * tree-ssa-structalias.h (struct alias_info): Remove
3784         ref_all_symbol_mem_tag field.
3785         (PTR_IS_REF_ALL): Remove.
3786
3787 2008-04-29  Richard Guenther  <rguenther@suse.de>
3788
3789         PR middle-end/36077
3790         * fold-const.c (extract_muldiv_1): In combining division constants
3791         make sure to never overflow.
3792
3793 2008-04-29  Nick Clifton  <nickc@redhat.com>
3794
3795         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3796
3797 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3798
3799         PR bootstrap/35169
3800         * optc-gen.awk: Work around HP-UX/IA awk bug.
3801
3802 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3803
3804         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3805         2008-04-25 commit.
3806
3807 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3808
3809         PR target/36073
3810         * config/i386/i386.md
3811         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3812         Change operand 1 predicate to nonimmediate_operand.
3813
3814 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3815
3816         PR debug/36060
3817         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3818         die_sub field.
3819         * gengtype.c (walk_type, write_func_for_structure): Handle
3820         chain_circular.
3821         * doc/gty.texi: Document chain_circular.
3822
3823 2008-04-28  Richard Guenther  <rguenther@suse.de>
3824
3825         PR tree-optimization/36066
3826         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3827         SCEV and loop.
3828
3829 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3830
3831         PR target/36064
3832         * config/i386/i386.md
3833         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3834         Use match_scratch instead of match_operand for operands 3 and 4.
3835
3836 2008-04-27  Richard Guenther  <rguenther@suse.de>
3837
3838         PR tree-optimization/18754
3839         PR tree-optimization/34223
3840         * tree-pass.h (pass_complete_unrolli): Declare.
3841         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3842         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3843         Rewrite loop into loop closed SSA form if it is not already.
3844         (tree_unroll_loops_completely): Re-structure to iterate over
3845         innermost loops with intermediate CFG cleanups.
3846         Unroll outermost loops only if requested or the code does not grow
3847         doing so.
3848         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3849         loops are available.
3850         (tree_vectorize): Instead do so here.
3851         (tree_complete_unroll): Also unroll outermost loops.
3852         (tree_complete_unroll_inner): New function.
3853         (gate_tree_complete_unroll_inner): Likewise.
3854         (pass_complete_unrolli): New pass.
3855         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3856         uses outside of the loop.
3857         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3858         form if it is available.  
3859         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3860         * passes.c (init_optimization_passes): Schedule complete inner
3861         loop unrolling pass before the first CCP pass after final inlining.
3862
3863 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3864
3865         * targhooks.h (default_emutls_var_fields,
3866         default_emutls_var_init): Declare.
3867         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3868         * target.h (struct gcc_target): Add struct emutls member.
3869         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3870         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3871         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3872         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3873         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3874         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3875         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3876         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3877         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3878         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3879         emit debug information.
3880         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3881         * varasm.c: Include targhooks.h.
3882         (emutls_object_section, emutls_tmpl_section): New.
3883         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3884         (EMUTLS_SEPARATOR): New.
3885         (prefix_name): New.
3886         (get_emutls_object_name): New.
3887         (default_emutls_var_fields): New, broken out of ...
3888         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3889         (get_emutls_init_templ_addr): Adjust to use target hooks.
3890         (emutls_decl): Adjust to use target hooks.
3891         (emutls_finish): Likewise.
3892         (default_emutls_var_init): New, broken out of ...
3893         (assemble_variable): ... here.  Adjust to use target hooks.
3894         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3895         SECCAT_EMUTLS_TMPL.
3896         * c-common.c (handle_section_attribute): Prevent overriding
3897         sections for emulated tls with special sections.
3898         * config/i386/i386.c (x86_64_elf_select_section): Add
3899         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3900         (x86_64_elf_unique_section): Likewise.
3901         * config/vxworks.c: Include tree.h.
3902         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3903         (vxworks_override_options): Set TLS scheme.
3904         * doc/tm.texi (Emulated TLS): New node.
3905
3906 2008-04-26  Simon Baldwin <simonb@google.com>
3907
3908         PR c/35652
3909         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3910         with propagated string constants.
3911
3912 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3913
3914         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3915         constraint for operand 2 when operand 0 is memory operand.
3916         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3917         operand 0 is memory operand.
3918         (fix_trunc<mode>_i387_with_temp): Ditto.
3919         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3920         operand 2 when operand 1 is memory operand.
3921         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3922         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3923         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3924         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3925         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3926         operands 2,3 and 4 when operand 1 is memory operand.
3927         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3928         is memory operand.
3929         (fistdi2_floor_with_temp): Ditto.
3930         (fist<mode>2_floor_with_temp): Ditto.
3931         (fistdi2_ceil_with_temp): Ditto.
3932         (fist<mode>2_ceil_with_temp): Ditto.
3933         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3934
3935 2008-04-26  David Daney  <ddaney@avtrex.com>
3936
3937         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3938         unspec_volitile.
3939         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3940         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3941         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3942         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3943         (compare_and_swap_12): New insn.
3944         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3945         * config/mips/mips.c (mips_force_binary): New function.
3946         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3947         (mips_expand_compare_and_swap_12): New function.
3948         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3949
3950 2008-04-25  Jan Hubicka  <jh@suse.cz>
3951
3952         PR testsuite/35843
3953         * cfgexpand.c (pass_expand): Turn into RTL pass.
3954         * passes.c (execute_one_pass): Do pass typechecking after execution.
3955         * tree-pass.h (pass_expand): Turn into RTL pass.
3956
3957         * function.h (struct rtl_data): Move here fields
3958         accesses_prior_frames, calls_eh_return, saves_all_registers,
3959         has_nonlocal_goto, has_asm_statement, is_thunk,
3960         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3961         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3962         arg_pointer_save_area_init from struct function; turn into bool.
3963         (struct function): Move
3964         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3965         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3966         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3967         tail_call_emit, arg_pointer_save_area_init
3968         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3969         (current_function_returns_struct, current_function_returns_pcc_struct,
3970         current_function_calls_setjmp, current_function_calls_alloca,
3971         current_function_accesses_prior_frames,
3972         current_function_calls_eh_return, current_function_is_thunk,
3973         current_function_stdarg, current_function_profile,
3974         current_function_limit_stack, current_function_uses_pic_offset_table,
3975         current_function_uses_const_pool, current_function_has_nonlocal_label,
3976         current_function_saves_all_registers,
3977         current_function_has_nonlocal_goto,
3978         current_function_has_asm_statement): Remove accesor macros.
3979         * ra-conflict.c (global_conflicts): Update.
3980         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3981         (suitable_for_tail_call_opt_p): Update.
3982         * builtins.c (expand_builtin_return_addr): Update.
3983         (expand_builtin_setjmp_setup): Update.
3984         (expand_builtin_nonlocal_goto): Update.
3985         * final.c (final_start_function): Update.
3986         (profile_function): Update.
3987         (leaf_function_p): Update.
3988         (only_leaf_regs_used): Update.
3989         * df-scan.c (df_get_exit_block_use_set): Update.
3990         * dojump.c (clear_pending_stack_adjust): Update.
3991         * tree-stdarg.c (gate_optimize_stdarg): Update.
3992         * gimple-low.c (lower_function_body): Update.
3993         * global.c (compute_regsets): Update.
3994         (global_alloc): Update.
3995         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3996         * expr.c (expand_assignment): Update.
3997         * dse.c (dse_step0): Update.
3998         (dse_step1): Update.
3999         * c-decl.c (store_parm_decls): Update.
4000         * local-alloc.c (combine_regs): Update.
4001         (find_free_reg): Update.
4002         * function.c (assign_parms_augmented_arg_list): Update.
4003         (assign_parm_find_data_types): Update.
4004         (assign_parms): Update.
4005         (allocate_struct_function): Update.
4006         (expand_function_start): Update.
4007         (expand_function_end): Update.
4008         (get_arg_pointer_save_area): Update.
4009         (thread_prologue_and_epilogue_insns): Update.
4010         (rest_of_match_asm_constraints): Update.
4011         * stor-layout.c (variable_size): Update.
4012         * gcse.c (gcse_main): Update.
4013         (bypass_jumps): Update.
4014         * gimplify.c (gimplify_function_tree): Update.
4015         * calls.c (emit_call_1): Update.
4016         (expand_call): Update.
4017         * bt-load.c (compute_defs_uses_and_gen): Update.
4018         * except.c (sjlj_assign_call_site_values): Update.
4019         (sjlj_emit_function_enter): Update.
4020         (can_throw_external): Update.
4021         (set_nothrow_function_flags): Update.
4022         (expand_builtin_unwind_init): Update.
4023         (expand_eh_return): Update.
4024         (convert_to_eh_region_ranges): Update.
4025         (output_function_exception_table): Update.
4026         * emit-rtl.c (gen_tmp_stack_mem): Update.
4027         * cfgexpand.c (expand_used_vars): Update.
4028         (tree_expand_cfg): Update.
4029         * cfgcleanup.c (rest_of_handle_jump): Update.
4030         * explow.c (allocate_dynamic_stack_space): Update.
4031         * varasm.c (assemble_start_function): Update.
4032         (force_const_mem): Update.
4033         (mark_constant_pool): Update.
4034         * tree-optimize.c (tree_rest_of_compilation): Update.
4035         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4036         * tree-cfg.c (notice_special_calls): Update.
4037         (is_ctrl_altering_stmt): Update.
4038         (tree_can_make_abnormal_goto): Update.
4039         (tree_purge_dead_abnormal_call_edges): Update.
4040         * config/alpha/predicates.md: Update.
4041         * config/alpha/alpha.c (alpha_sa_mask): Update.
4042         (alpha_sa_size): Update.
4043         (alpha_does_function_need_gp): Update.
4044         (alpha_expand_prologue): Update.
4045         (alpha_start_function): Update.
4046         (alpha_output_function_end_prologue): Update.
4047         (alpha_expand_epilogue): Update.
4048         * config/frv/frv.c (frv_stack_info): Update.
4049         (frv_expand_epilogue): Update.
4050         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4051         (s390_register_info): Update.
4052         (s390_frame_info): Update.
4053         (s390_init_frame_layout): Update.
4054         (s390_can_eliminate): Update.
4055         (save_gprs): Update.
4056         * config/spu/spu.c (spu_split_immediate): Update.
4057         (need_to_save_reg): Update.
4058         (spu_expand_prologue): Update.
4059         (spu_expand_epilogue): Update.
4060         * config/sparc/sparc.md: Update.
4061         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4062         (sparc_tls_got): Update.
4063         (legitimize_pic_address): Update.
4064         (sparc_emit_call_insn): Update.
4065         (sparc_expand_prologue): Update.
4066         (output_return): Update.
4067         (print_operand): Update.
4068         (sparc_function_ok_for_sibcall): Update.
4069         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4070         * config/m32r/m32r.md: Update.
4071         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4072         (m32r_compute_frame_size): Update.
4073         (m32r_expand_prologue): Update.
4074         (m32r_expand_epilogue): Update.
4075         (m32r_legitimize_pic_address): Update.
4076         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4077         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4078         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4079         (gen_push): Update.
4080         (ix86_save_reg): Update.
4081         (ix86_compute_frame_layout): Update.
4082         (ix86_expand_prologue): Update.
4083         (ix86_expand_epilogue): Update.
4084         * config/sh/sh.c (output_stack_adjust): Update.
4085         (calc_live_regs): Update.
4086         (sh5_schedule_saves): Update.
4087         (sh_expand_prologue): Update.
4088         (sh_expand_epilogue): Update.
4089         (sh_setup_incoming_varargs): Update.
4090         (sh_allocate_initial_value): Update.
4091         (sh_get_pr_initial_val): Update.
4092         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4093         * config/sh/sh.md (label:): Update.
4094         * config/avr/avr.c (out_movhi_mr_r): Update.
4095         * config/crx/crx.h (enum): Update.
4096         * config/xtensa/xtensa.h (along): Update.
4097         * config/stormy16/stormy16.c Update.
4098         (xstormy16_compute_stack_layout): Update.
4099         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4100         (fr30_expand_prologue): Update.
4101         * config/cris/cris.c (cris_conditional_register_usage): Update.
4102         (cris_reg_saved_in_regsave_area): Update.
4103         (cris_initial_frame_pointer_offset): Update.
4104         (cris_simple_epilogue): Update.
4105         (cris_expand_prologue): Update.
4106         (cris_expand_epilogue): Update.
4107         (cris_expand_pic_call_address): Update.
4108         (cris_asm_output_symbol_ref): Update.
4109         (cris_asm_output_label_ref): Update.
4110         * config/cris/cris.md Update.
4111         * config/iq2000/iq2000.c (compute_frame_size): Update.
4112         (iq2000_expand_epilogue): Update.
4113         * config/mt/mt.h (save_direction): Update.
4114         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4115         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4116         (ia64_secondary_reload_class): Update.
4117         * config/m68k/m68k.c (m68k_save_reg): Update.
4118         (m68k_expand_prologue): Update.
4119         (m68k_expand_epilogue): Update.
4120         (legitimize_pic_address): Update.
4121         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4122         (first_reg_to_save): Update.
4123         (first_altivec_reg_to_save): Update.
4124         (compute_vrsave_mask): Update.
4125         (compute_save_world_info): Update.
4126         (rs6000_stack_info): Update.
4127         (spe_func_has_64bit_regs_p): Update.
4128         (rs6000_ra_ever_killed): Update.
4129         (rs6000_emit_eh_reg_restore): Update.
4130         (rs6000_emit_allocate_stack): Update.
4131         (rs6000_emit_prologue): Update.
4132         (rs6000_emit_epilogue): Update.
4133         (rs6000_output_function_epilogue): Update.
4134         (output_profile_hook): Update.
4135         (rs6000_elf_declare_function_name): Update.
4136         * config/rs6000/rs6000.h (rs6000_args): Update.
4137         * config/rs6000/rs6000.md: Update.
4138         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4139         * config/arc/arc.c (arc_output_function_epilogue): Update.
4140         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4141         * config/darwin.c (machopic_function_base_name): Update.
4142         * config/score/score3.c (score3_compute_frame_size): Update.
4143         (rpush): Update.
4144         (rpop): Update.
4145         (score3_epilogue): Update.
4146         * config/score/score7.c (score7_compute_frame_size): Update.
4147         (score7_prologue): Update.
4148         (score7_epilogue): Update.
4149         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4150         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4151         * config/arm/arm.c (use_return_insn): Update.
4152         (require_pic_register): Update.
4153         (arm_load_pic_register): Update.
4154         (arm_compute_save_reg0_reg12_mask): Update.
4155         (arm_compute_save_reg_mask): Update.
4156         (thumb1_compute_save_reg_mask): Update.
4157         (output_return_instruction): Update.
4158         (arm_output_function_prologue): Update.
4159         (arm_output_epilogue): Update.
4160         (arm_get_frame_offsets): Update.
4161         (arm_expand_prologue): Update.
4162         (thumb_pushpop): Update.
4163         (thumb_exit): Update.
4164         (thumb1_expand_prologue): Update.
4165         (thumb1_expand_epilogue): Update.
4166         (arm_unwind_emit): Update.
4167         (arm_output_fn_unwind): Update.
4168         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4169         * config/arm/arm.md: Update.
4170         * config/pa/pa.md: Update.
4171         * config/pa/pa.c (legitimize_pic_address): Update.
4172         (compute_frame_size): Update.
4173         (hppa_expand_prologue): Update.
4174         (hppa_expand_epilogue): Update.
4175         (borx_reg_operand): Update.
4176         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4177         (HARD_REGNO_RENAME_OK): Update.
4178         * config/mips/mips.c (mips_global_pointer): Update.
4179         (mips_save_reg_p): Update.
4180         (mips_compute_frame_info): Update.
4181         (mips_frame_pointer_required): Update.
4182         (mips_expand_prologue): Update.
4183         (mips_expand_epilogue): Update.
4184         (mips_can_use_return_insn): Update.
4185         (mips_reorg_process_insns): Update.
4186         * config/v850/v850.c (compute_register_save_size): Update.
4187         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4188         * config/mmix/mmix.c (along): Update.
4189         (mmix_expand_epilogue): Update.
4190         * config/bfin/bfin.c (legitimize_pic_address): Update.
4191         (must_save_p): Update.
4192         (stack_frame_needed_p): Update.
4193         (add_to_reg): Update.
4194         (bfin_expand_prologue): Update.
4195         * stmt.c (expand_asm_operands): Update.
4196         * reload1.c (reload): Update.
4197         (init_elim_table): Update.
4198
4199 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4200         
4201         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4202         
4203 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4204
4205         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4206         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4207         (mov<mode>): Removed.
4208         (*movv4sf_internal): Likewise.
4209         (*movv2df_internal): Likewise.
4210
4211 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4212
4213         * config.gcc (crx-*-elf): Remove deprecation.
4214
4215 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4216
4217         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4218         __gcc_deregister_frame with atexit.
4219         (deregister_frame_dtor): Remove.
4220
4221 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4222             Nathan Sidwell  <nathan@codesourcery.com>
4223
4224         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4225         (misel): Likewise.
4226         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4227         (rs6000_isel): Likewise.
4228         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4229         (rs6000_isel): New variable.
4230         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4231
4232 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4233
4234         PR c++/35758
4235         * c-common.c (handle_vector_size_attribute): Call
4236         lang_hooks.types.reconstruct_complex_type instead of
4237         reconstruct_complex_type.
4238         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4239         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4240         * langhooks.h (struct lang_hooks_for_types): Add
4241         reconstruct_complex_type hook.
4242         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4243         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4244
4245 2008-04-24  Richard Guenther  <rguenther@suse.de>
4246
4247         * c-common.h (check_builtin_function_arguments): Declare.
4248         * c-common.c (validate_nargs): New function.
4249         (check_builtin_function_arguments): Likewise.
4250         * c-typeck.c (build_function_call): Call
4251         check_builtin_function_arguments.
4252         * builtins.c (fold_builtin_classify): Remove error reporting code.
4253         (fold_builtin_unordered_cmp): Likewise.
4254         (fold_builtin_1): Likewise.
4255         (fold_builtin_n): Likewise.
4256
4257 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4258
4259         PR tree-optimization/36008
4260         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4261         the original op1, rather than delta by step.
4262
4263 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4264             Sebastian Pop  <sebastian.pop@amd.com>
4265
4266         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4267         eliminate_local_variables_stmt, eliminate_local_variables,
4268         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4269         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4270         of code delimited by two edges in the CFG.
4271         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4272         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4273         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4274         the case of parallelisation of reductions.
4275         (expr_invariant_in_region_p): New.
4276
4277         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4278         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4279
4280 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4281             Richard Guenther  <rguenther@suse.de>
4282
4283         PR tree-optimization/36034
4284         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4285         incapable of dealing with loads with gaps.
4286
4287 2008-04-24  Rafael Espindola  <espindola@google.com>
4288
4289         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4290         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4291         vrp_evaluate_conditional.
4292         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4293         (vrp_evaluate_conditional): Split the cond argument.
4294         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4295         (simplify_stmt_for_jump_threading): Update call to
4296         vrp_evaluate_conditional.
4297
4298 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4299
4300         PR tree-optimization/35982
4301         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4302         interleaved data-refs are of the same type.
4303
4304 2008-04-24  Danny Smith  <dannysmith@users.net>
4305
4306         * c-format.c (check_format_info_main): Use strncmp rather than a
4307         magic prefix to handle multichar length specs.
4308         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4309         Don't prefix "I64" and "I32" with '\0'.
4310
4311 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4312
4313         PR target/36015
4314         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4315         in registers for -m32 only if stdarg_p (fntype).
4316
4317 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4318
4319         PR rtl-optimization/36006
4320         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4321         temp to op0 in order to avoid invalid rtx sharing.
4322
4323 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4324
4325         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4326         check TREE_INVARIANT.
4327         * tree-gimple.c (is_gimple_address): New.
4328         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4329         * tree-gimple.h (is_gimple_address): New.
4330         * tree.h (decl_address_invariant_p): New.
4331         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4332         (build_string): Likewise.
4333         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4334         (tree_invariant_p_1): Likewise.
4335         (save_expr): Use it.
4336         (tree_invariant_p): New.
4337         (skip_simple_arithmetic): Use it.
4338         (stabilize_reference_1): Use it.
4339         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4340         simplify.
4341         (build1_stat): Drop code to compute TREE_INVARIANT.
4342         (build2_stat): Drop code to compute TREE_INVARIANT.
4343         (build3_stat): Drop code to compute TREE_INVARIANT.
4344         (build4_stat): Drop code to compute TREE_INVARIANT.
4345         (build5_stat): Drop code to compute TREE_INVARIANT.
4346         (build7_stat): Drop code to compute TREE_INVARIANT.
4347         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4348         * tree.h (struct tree_base): Remove invariant_flag.
4349         (TREE_INVARIANT): Remove.
4350         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4351         (fold_builtin_expect): Check TREE_CONSTANT.
4352         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4353         * c-tree.h (c_expr_to_decl): Drop third parameter.
4354         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4355         (build_c_cast): Don't set TREE_INVARIANT.
4356         (pop_init_level): Don't set TREE_INVARIANT.
4357         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4358         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4359         TREE_CONSTANT.
4360         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4361         (gimplify_addr_expr): Adjust comment.
4362         * tree-mudflap.c (mf_build_string):
4363         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4364         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4365         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4366         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4367         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4368         * langhooks.h (struct lang_hooks): Drop third parameter from
4369         expr_to_decl.
4370
4371 2008-04-23  Richard Guenther  <rguenther@suse.de>
4372
4373         PR tree-optimization/27799
4374         PR tree-optimization/32921
4375         PR tree-optimization/32624
4376         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4377         SMTs aliases and the tag itself into the solution.
4378         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4379         merge the points-to solution back into the SMT aliases.
4380         (may_alias_p): Use alias_set_subset_of instead of
4381         aliases_conflict_p.  A pointer which points to
4382         memory with alias set zero may access any variable.
4383
4384 2008-04-23  Richard Guenther  <rguenther@suse.de>
4385
4386         * alias.c (alias_set_subset_of): Correctly handle asking
4387         if zero is a subset of an alias set with zero child.
4388         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4389         (compute_flow_insensitive_aliasing): Correctly walk all
4390         pointers.  Do not unnecessarily union sets.
4391
4392 2008-04-23  Richard Guenther  <rguenther@suse.de>
4393
4394         PR middle-end/36021
4395         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4396
4397 2008-04-22  Tomas Bily  <tbily@suse.cz>
4398
4399         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4400         unreachable case.
4401         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4402         NON_LVALUE_EXPR.
4403         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4404         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4405         * tree-inline.c (estimate_num_insns_1): Likewise.
4406         * varasm.c (const_hash_1, compare_constant, copy_constant)
4407         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4408         * emit-rtl.c (component_ref_for_mem_expr)
4409         (set_mem_attributes_minus_bitpos): Likewise.
4410         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4411         (is_aligning_offset): Likewise.
4412         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4413         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4414         * dojump.c (do_jump): Likewise.
4415         * builtins.c (get_pointer_alignment, get_memory_rtx)
4416         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4417         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4418
4419 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4420
4421         PR rtl-optimization/36017
4422         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4423         expanding the library call.
4424
4425 2008-04-22  Ian Lance Taylor  <iant@google.com>
4426
4427         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4428         than size_in_bytes.
4429
4430 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4431
4432         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4433         of LR/CTR moves for Power6.
4434
4435 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4436
4437         PR middle-end/36003
4438         * passes.c (init_optimization_passes): Remove
4439         pass_fast_rtl_byte_dce.
4440         
4441 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4442
4443         PR target/29096
4444         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4445         builtin functions to generate faster code.
4446         (_mm_cvtpu16_ps): Ditto.
4447         (_mm_cvtpi32x2_ps): Ditto.
4448
4449 2008-04-22  Nick Clifton  <nickc@redhat.com>
4450
4451         * common.opt (ftree-loop-distribution): Add Optimization
4452         attribute.
4453
4454         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4455         (frv_expand_builtin_va_start): Likewise.
4456
4457         * config/arm/arm.c (thumb_find_work_register): Fix location of
4458         argument register count.
4459
4460 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4461
4462         Support scheduling for ColdFire V1 and V3 microarchitecture.
4463         Improve scheduling of multiplication instructions.
4464
4465         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4466         (mac): New instruction attribute.
4467         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4468         (m68k_sched_mac): New variable.
4469         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4470         Handle cfv1 and cfv3.
4471         (max_insn_size): New static variable.
4472         (struct _sched_ib): New type.
4473         (sched_ib): New static variable.
4474         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4475         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4476         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4477         Update.
4478         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4479         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4480         new variables.  Update.
4481         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4482         Add modeling of cfv3 instruction buffer.  Update.
4483         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4484         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4485         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4486         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4487         a particular reservation applies to.
4488         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4489         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4490         to mul_l and mul_w.
4491         (cf_ib_*): Simplify description of instruction buffer.
4492         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4493         (cf_mem): Split into cf_mem1 and cf_mem2.
4494         (cf_v2_move_??): Rename to cfv12_alu_??.
4495         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4496         (cf_v2_mul_??): Remove reservations.
4497         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4498         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4499         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4500         appropriate place.
4501         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4502         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4503         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4504         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4505         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4506         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4507         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4508         expansions of the above reservations for instructions of sizes
4509         1, 2 and 3 words.
4510
4511 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4512
4513         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4514
4515 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4516
4517         * coverage.c: Include tree-pass.h.
4518         (coverage_counter_alloc): Print da_file_name to the dump file.
4519
4520 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4521
4522         * sbitmap.c (sbitmap_range_empty_p): New function.
4523         * sbitmap.h (sbitmap_range_empty_p): New function.
4524         * bitmap.h: Now includes obstack.h.
4525
4526 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4527             Kenneth Zadeck  <zadeck@naturalbridge.com>
4528
4529         * dbgcnt.def (ra_byte_scan): Added.
4530         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4531         when the last hit happens for a counter.  
4532         * timevar.def (TV_DF_BYTE_LR): New variable.
4533         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4534         * passes.c (pass_fast_rtl_byte_dce): New pass.
4535         * fwprop.c (update_df): Added mode to call df_ref_create.
4536         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4537         DF_REF_EXTRACT_OFFSET.
4538         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4539         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4540         (df_mm): New enum.
4541         (df_ref_extract): Added mode field.
4542         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4543         DF_REF_EXTRACT_OFFSET.
4544         (DF_REF_EXTRACT_MODE): New macro.
4545         (df_byte_lr_bb_info): New structure.
4546         (df_print_byte_regset, df_compute_accessed_bytes, 
4547         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4548         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4549         df_byte_lr_simulate_uses,
4550         df_byte_lr_simulate_artificial_refs_at_top,
4551         df_byte_lr_simulate_artificial_refs_at_end,
4552         df_compute_accessed_bytes): New function.
4553         (df_ref_create): Add parameter.
4554         (df_byte_lr_get_bb_info): New inline function.
4555         * df-scan.c (df_ref_record, df_uses_record,
4556         df_ref_create_structure): Added mode parameter.
4557         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4558         df_defs_record, df_uses_record, df_get_conditional_uses,
4559         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4560         df_entry_block_defs_collect, df_exit_block_uses_collect):
4561         Added mode parameter to calls to df_ref_record, df_uses_record,
4562         df_ref_create_structure.
4563         (df_ref_equal_p, df_ref_compare): Added test for modes.
4564         (df_ref_create_structure): Added code to set mode.  Renamed
4565         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4566         DF_REF_EXTRACT_OFFSET.
4567         * df-core.c (df_print_byte_regset): New function.
4568         * df-byte-scan.c: New file.
4569         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4570         calls to BITMAP_FREE.  
4571         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4572         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4573         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4574         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4575         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4576         df_byte_lr_local_compute, df_byte_lr_init,
4577         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4578         df_byte_lr_transfer_function, df_byte_lr_free, 
4579         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4580         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4581         df_byte_lr_simulate_uses,
4582         df_byte_lr_simulate_artificial_refs_at_top,
4583         df_byte_lr_simulate_artificial_refs_at_end): New function.
4584         * dce.c (byte_dce_process_block): New function.
4585         (dce_process_block): au is now passed in rather than computed
4586         locally.  Changed loops that look at artificial defs to not look
4587         for conditional or partial ones, because there never are any.  
4588         (fast_dce): Now is able to drive byte_dce_process_block or 
4589         dce_process_block depending on the kind of dce being done.
4590         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4591         (rest_of_handle_fast_byte_dce): New function.
4592         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4593         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4594
4595 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4596
4597         PR fortran/35019
4598         * gcc.h: Added fortran options that take arguments to
4599         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4600         macros.
4601
4602 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4603
4604         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4605         scalarization if on the LHS and not a full access.
4606
4607 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4608
4609         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4610
4611 2008-04-18  Rafael Espindola  <espindola@google.com>
4612
4613         * tree-vrp.c (find_case_label_index): Fix the binary search.
4614         (find_case_label_range): New.
4615         (vrp_visit_switch_stmt): Use find_case_label_range.
4616         (simplify_switch_using_ranges): Use find_case_label_range.
4617
4618 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4619
4620         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4621         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4622
4623 2008-04-18  Tom Tromey  <tromey@redhat.com>
4624
4625         PR libcpp/15500:
4626         * doc/cpp.texi (Implementation-defined behavior): Mention
4627         -finput-charset.
4628
4629 2008-04-18  Ian Lance Taylor  <iant@google.com>
4630
4631         * fold-const.c (pointer_may_wrap_p): New static function.
4632         (fold_comparison): Add another test for pointer overflow.  Use
4633         pointer_may_wrap_p to disable some false positives.
4634
4635 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4636           
4637         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4638         (fname_as_string): Match updated cpp_interpret_string prototype.
4639         (fix_string_type): Support char16_t* and char32_t*.
4640         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4641         derivative) nodes.  Register as builtin if C++0x.
4642         (c_parse_error): Support CPP_CHAR{16,32}.
4643         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4644         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4645         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4646         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4647         CTI_CHAR32_ARRAY_TYPE>: New elements.
4648         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4649         char32_type_node, signed_char32_type_node, char16_array_type_node,
4650         char32_array_type_node): New defines.
4651         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4652         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4653         (lex_string): Support CPP_STRING{16,32}, match updated
4654         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4655         (lex_charconst): Support CPP_CHAR{16,32}.
4656         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4657         and CPP_STRING{16,32}.
4658
4659 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4660
4661         PR bootstrap/35457
4662         * aclocal.m4: Regenerate.
4663         * configure: Regenerate.
4664
4665 2008-04-18  Jan Hubicka  <jh@suse.cz>
4666
4667         * except.c (dw2_size_of_call_site_table,
4668         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4669
4670         * cgraphbuild.c (build_cgraph_edges): Update.
4671         * tree-pass.h: Update comment.
4672         * final.c (leaf_function_p): Update.
4673         (leaf_renumber_regs): Update.
4674         (rest_of_clean_state): Update.
4675         * omp-low.c (expand_omp_parallel): Update.
4676         * ipa-reference.c (analyze_function): Update.
4677         * reorg.c (find_end_label): Update.
4678         (optimize_skip): Update.
4679         (fill_simple_delay_slots): Update.
4680         (fill_simple_delay_slots): Update.
4681         (make_return_insns): Update.
4682         (dbr_schedule): Update.
4683         * gimple-low.c (record_vars_into): Update.
4684         * cfgbuild.c (make_edges): Update.
4685         * function.c (assign_stack_local): Update.
4686         (assign_parm_adjust_stack_rtl): Update.
4687         (locate_and_pad_parm): Update.
4688         (allocate_struct_function): Do not initialize stack_alignment_needed
4689         and preferred_stack_boundary here.
4690         (stack_protect_prologue): Update.
4691         (stack_protect_epilogue): Update.
4692         (expand_function_start): Initialize stack_alignment_needed,
4693         preferred_stack_boundary and max_jumptable_ents.
4694         (expand_function_end): Update.
4695         (free_after_compilation): Do not NULLify epilogue_delay_list.
4696         * function.h (struct rtl_data): Add stack_protect_guard,
4697         stack_alignment_needed,
4698         preferred_stack_boundary, epilogue_delay_list.
4699         (struct function): Remove value_histograms, stack_alignment_needed,
4700         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4701         last_label_uid,
4702         unexpanded_var_list, stack_protect_guard.
4703         (current_function_epilogue_delay_list): Remove.
4704         * ipa-type-escape.c (analyze_function): Update.
4705         * gimplify.c (pop_gimplify_context): Update comment.
4706         * calls.c (expand_call): Update.
4707         (emit_library_call_value_1): Update.
4708         * except.c (set_nothrow_function_flags): Update.
4709         * cfgexpand.c (get_decl_align_unit): Update.
4710         (create_stack_guard): Update.
4711         (estimated_stack_frame_size): Update.
4712         (expand_used_vars): Update.
4713         (tree_expand_cfg): Free histogram earliers, init expansion variables.
4714         * explow.c (allocate_dynamic_stack_space): Update.
4715         * tree-ssa-live.c (remove_unused_locals): Update.
4716         * varasm.c (mark_constant_pool): Update.
4717         * tree-inline.c (remap_decls): Update.
4718         (initialize_cfun): Update.
4719         (declare_return_variable): Update.
4720         (inline_forbidden_p): Update.
4721         (expand_call_inline): Update.
4722         (declare_inline_vars): Update.
4723         (tree_function_versioning): Update.
4724         * tree-flow.h (value_histograms): New.
4725         (VALUE_HISTOGRAMS): New macro.
4726         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4727         last_label_uid.
4728         * tree-cfg.c (set_bb_for_stmt): Update.
4729         (replace_by_duplicate_decl): Update.
4730         (move_block_to_fn): Update.
4731         (new_label_mapper): Update.
4732         (dump_function_to_file): Update.
4733         * ipa-struct-reorg.c (build_data_structure): Update.
4734         * cfgrtl.c (print_rtl_with_bb): Update.
4735         * reload1.c (reload): Update.
4736         (reload): Update.
4737         * config/i386/i386.c (setup_incoming_varargs_64,
4738         ix86_compute_frame_layout): Update.
4739         * config/arc/arc.c (arc_output_function_epilogue): Update.
4740
4741 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4742
4743         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4744         for FreeBSD as well.
4745         * gthr-posix95.h: Likewise.
4746
4747 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4748
4749         PR rtl-optimization/35838
4750         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4751         out the byte offset of the first subreg.
4752
4753 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4754
4755         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4756         to split_ti instead of three separate calls with single member arrays.
4757         (subti3 splitter): Ditto.
4758         (adddi3 splitter): Ditto with split_di.
4759         (subdi3 splitter): Ditto.
4760         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4761         two separate calls with single member arrays.  Swap match_dup
4762         operands 1 and 2 to better fit into the array.
4763         (negdi2 splitter): Ditto with split_di.
4764         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4765         two separate calls with single member arrays.  Swap match_dup operands
4766         6 and 7 to better fit into the array.
4767
4768 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4769
4770         * config/i386/i386.c (sse_builtin_type): New.
4771         (bdesc_sse_args): Likewise.
4772         (bdesc_sse_3arg): Removed.
4773         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4774         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4775         IX86_BUILTIN_ROUNDPS.
4776         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4777         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4778         IX86_BUILTIN_ROUNDPS.
4779         (ix86_expand_sse_4_operands_builtin): Removed.
4780         (ix86_expand_sse_operands_builtin): New.
4781         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4782         and CODE_FOR_sse4_1_roundps.
4783         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4784         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4785
4786 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4787
4788         PR target/35907
4789         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4790         regs before frame pop when needed.  If use_backchain_to_restore_sp
4791         then load backchain into a temp reg to restore vr and vrsave.  Add
4792         code to restore vr after frame pop if possible.
4793
4794 2008-04-17  Richard Guenther  <rguenther@suse.de>
4795
4796         * tree-vn.c (expressions_equal_p): Do not check type
4797         equality or compatibility before calling operand_equal_p.
4798         * fold-const.c (operand_equal_p): Check equivalence of
4799         integer constants before bailing out due to signedness or
4800         precision differences.
4801         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4802         spurious differences in type qualification.  Ignore types
4803         for COMPONENT_REFs at all.
4804
4805 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4806
4807         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4808         msw_skip comparison.
4809         
4810 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4811
4812         PR c/35739
4813         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4814         reg type.
4815
4816         PR tree-optimization/35899
4817         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4818         rather than TREE_OPERAND.
4819
4820 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4821
4822         PR target/35944
4823         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4824         temporary registers.  Change operand predicate to general_operand.
4825         (remainderxf3): Ditto.
4826
4827 2008-04-16  Richard Guenther  <rguenther@suse.de>
4828
4829         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4830         * tree-affine.c (aff_combination_expand): Look through some
4831         conversions.
4832
4833 2008-04-15  Doug Kwan  <dougkwan@google.com>
4834
4835         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4836         for hex printing.
4837         * tree-pretty-print.c (dump_generic_node): Ditto.
4838         * final.c (output_addr_const): Ditto.
4839         * dwarf2out.c (output_cfi): Ditto.
4840         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4841         * print-rtl.c (print_rtx): Ditto.
4842         * print-tree.c (print_node_brief, print_node): Ditto.
4843         * c-common.c (match_case_to_enum_1): Ditto.
4844         * sched-vis.c (print_value): Ditto.
4845         * config/i386/i386.c (print_operand): Cast to long unsigned int
4846         for hex printing.
4847
4848 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4849         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4850         MS Windows VirtualProtect function.
4851
4852 2008-04-15  Jan Hubicka  <jh@suse.cz>
4853
4854         * gengtype.c (write_root): Param_is argument is OK.
4855         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4856         * function.h: Include varray.h
4857         (rtl_eh): New stucture based on except.c one.
4858         (call_site_record): New forward declaration and vector type.
4859         * calls.c (emit_call_1): Do not call
4860         note_current_region_may_contain_throw.
4861         * except.c (eh_status): Remove cur_region, try_region since they are
4862         unused.
4863         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4864         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4865         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4866         Remove call_site_data_used, call_site_data_size.
4867         Turn call_site_record into vector in function.h.
4868         (note_current_region_may_contain_throw): Remove.
4869         (get_exception_pointer, get_exception_filter): Do not take struct
4870         function argument; update.
4871         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4872         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4873         build_post_landing_pads, dw2_build_landing_pads,
4874         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4875         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4876         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4877         sjlj_build_landing_pads, finish_eh_generation,
4878         remove_exception_handler_label, remove_eh_handler,
4879         maybe_remove_eh_handler, add_reachable_handler,
4880         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4881         add_action_record, collect_one_action_chain, add_call_site,
4882         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4883         sjlj_output_call_site_table, output_function_exception_table,
4884         * except.h (note_current_region_may_contain_throw): Remove
4885         (get_exception_pointer, get_exception_filter): Do not take struct
4886         function argument.
4887         * Makefile.in (GTFILES): Put varargs before struct function.
4888
4889 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4890
4891         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4892         punt for STRING_CST.
4893         (get_constraint_for): Deal with STRING_CST here instead.
4894
4895 2008-04-15  Richard Guenther  <rguenther@suse.de>
4896
4897         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4898         statements in a basic-block with a backward walk.  Do not
4899         substitute into dead statements but instead remove those.
4900
4901 2008-04-15  Richard Guenther  <rguenther@suse.de>
4902
4903         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4904         to zero, thus disable creation of SFTs.
4905
4906 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4907
4908         * tree-predcom.c (suitable_reference_p): Return false if the
4909         reference can throw.
4910
4911 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4912
4913         PR c/35751
4914         * c-decl.c (finish_decl): If extern or static var has variable
4915         size, set TREE_TYPE (decl) to error_mark_node.
4916
4917 2008-04-15  Rafael Espindola  <espindola@google.com>
4918
4919         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4920         variable arg1.
4921
4922 2008-04-15  Richard Guenther  <rguenther@suse.de>
4923
4924         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4925         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4926         (visit_reference_op_load): Do walk vuse-vdef chains on
4927         vn_reference_lookup.
4928         (visit_reference_op_store): But do not here.
4929         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4930         vn_reference_lookup.
4931         (vn_lookup_with_vuses): But do so here.
4932
4933 2008-04-14  Ian Lance Taylor  <iant@google.com>
4934
4935         * fold-const.c (fold_overflow_warning): Remove assertion.
4936
4937 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4938
4939         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4940         temp1 local variables.
4941
4942 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4943
4944         PR target/35661
4945         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4946         ".text.unlikely" section as executable.
4947
4948 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4949
4950         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4951         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4952         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4953         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4954         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4955         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4956         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4957
4958 2008-04-14  Ian Lance Taylor  <iant@google.com>
4959
4960         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4961         * fold-const.c (fold_comparison): If appropriate, test
4962         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4963         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4964         reassociating a pointer type.
4965         * doc/invoke.texi (Optimize Options): Document that
4966         -fstrict-overflow applies to pointer wraparound.
4967
4968 2008-04-13  Jan Hubicka  <jh@suse.cz>
4969
4970         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4971
4972 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4973
4974         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4975         we are going to "save the world".
4976
4977 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4978
4979         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4980         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4981         operand 0 constraint, not "=".
4982
4983 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4984
4985         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4986
4987 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4988
4989         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4990         of size of positions_needed * CHAR_BIT.
4991
4992 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4993
4994         PR middle-end/35897
4995         * dse.c (store_info): Change positions_needed to unsigned
4996         HOST_WIDE_INT.
4997         (lowpart_bitmask): New.
4998         (record_store): Cast to unsigned HOST_WIDE_INT for
4999         positions_needed.  Assert width <= size of positions_needed *
5000         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5001         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5002         lowpart_bitmask to set mask.
5003
5004 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5005
5006         * config/bfin/constraints.md: New file.
5007         * config/bfin/bfin.md: Include it.
5008         (adddi3): Use satisfies_constraint functions instead of the old macros.
5009         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5010         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5011         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5012         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5013         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5014         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5015         EXTRA_CONSTRAINT): Delete.
5016         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5017         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5018         of the old macros.
5019         * config/bfin/bfin.c: Include "tm-constrs.h".
5020         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5021         Use satisfies_constraint functions instead of the old macros.
5022         * doc/md.texi (Blackfin Constraints): Update file name reference.
5023
5024 2008-04-11  Richard Guenther  <rguenther@suse.de>
5025
5026         PR tree-optimization/35869
5027         * tree-vrp.c (execute_vrp): Move switch statement update after
5028         jump threading.  Schedule another cfg cleanup run.
5029
5030 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5031
5032         PR c/35744
5033         * attribs.c (decl_attributes): Return early on errorneous node.
5034
5035 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5036
5037         * tree.h (struct tree_base): Added a new flag default_def_flag.
5038         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5039
5040 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5041
5042         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5043
5044 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5045
5046         PR target/35768
5047         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5048         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5049         (icacheflush): Likewise.
5050         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5051         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5052
5053 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5054
5055         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5056
5057 2008-04-10  Rafael Espindola  <espindola@google.com>
5058
5059         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5060         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5061         (extract_range_from_expr): The same.
5062
5063 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5064
5065         * config/mips/mips.md (GPR2): New mode iterator.
5066         (seq): Add comment.
5067         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5068         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5069         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5070         Rewrite these to take two modes, the mode of comparison and the
5071         mode of the destination.
5072         * config/mips/mips.c (mips_expand_scc): Instead of having
5073         paradoxical subreg as destination, expand "narrowing" scc if mode
5074         of comparison is SI and target is requested in DI mode.
5075         (mips_emit_int_order_test): Update comment.  Make mode of
5076         comparison match CMP0 rather than TARGET.  When creating inverse
5077         target use mode of TARGET.
5078
5079 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5080
5081         * gcov-dump.c (tag_summary): Only print summaries for the first
5082         GCOV_COUNTERS_SUMMABLE counters.
5083
5084 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5085
5086         * config/i386/i386.md (absneg): New code iterator.
5087         (absnegprefix): New code attribute.
5088         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5089         patterns using absneg code iterator.
5090         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5091         using absneg code iterator.
5092         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5093         *neg<mode>2 patterns using absneg code iterator.
5094         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5095         *negextendsfdf2 patterns using absneg code iterator.
5096         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5097         *negextendsfxf2 patterns using absneg code iterator.
5098         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5099         *negextendsfdf2 patterns using absneg code iterator.
5100         * config/i386/sse.md (<code><mode>2): Macroize expander from
5101         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5102
5103 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5104
5105         * config/s390/s390.h: Remove the remains of the recent search
5106         & replace action of current_function_outgoing_args_size.
5107
5108 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5109
5110         PR tree-optimization/35821
5111         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5112         NEW_STMT_LIST is not NULL.
5113
5114 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5115
5116         PR libstdc++/35597
5117         * toplev.c (process_options): Remove -ffunction-sections debugging
5118         warning.
5119
5120 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5121
5122         PR middle-end/PR28690
5123         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5124         than gen_rtx_fmt_ee to perform more canonicalizations.
5125
5126 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5127
5128         PR driver/35665
5129         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5130
5131 2008-04-09  Richard Guenther  <rguenther@suse.de>
5132
5133         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5134         (dump_function_to_file): Dump function arguments with types.
5135
5136 2008-04-08  Richard Guenther  <rguenther@suse.de>
5137
5138         * fold-const.c (fold_widened_comparison): Do not allow
5139         sign-changes that change the result.
5140
5141 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5142
5143         PR target/35839
5144         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5145         kinds of indirect references.
5146
5147 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5148
5149         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5150         GNU Fortran language string.
5151
5152 2008-04-08  Rafael Espindola  <espindola@google.com>
5153
5154         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5155         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5156         * tree.h (tree_call_nonnegative_warnv_p): New.
5157
5158 2008-04-08  Jan Hubicka  <jh@suse.cz>
5159
5160         * function.c (free_after_compilation): Clear out regno_reg_rtx
5161         pointer.
5162
5163 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5164
5165         Revert
5166         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5167
5168         PR middle-end/PR28690
5169         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5170         same precedence as REG_POINTER and MEM_POINTER operands.
5171
5172 2008-04-08  Richard Guenther  <rguenther@suse.de>
5173
5174         PR middle-end/35834
5175         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5176         for adding index to base.
5177
5178 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5179
5180         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5181         (MINGW_ENABLE_EXECUTE_STACK): New.
5182         (IN_LIBGCC2): For libgcc include windows.h file for
5183         function declarations.
5184
5185 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5186
5187         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5188         and tem2 if tem1 is not a REG or MULT.
5189
5190 2008-04-08  Jan Hubicka  <jh@suse.cz>
5191
5192         * function.h (incomming_args): Break out of struct function.
5193         (function_subsections): Break out of struct function.
5194         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5195         return_rtx and hard_reg_initial_vals from struct function.
5196         Kill inl_max_label_num.
5197         (current_function_pops_args, current_function_args_info,
5198         current_function_args_size, current_function_args_size,
5199         current_function_pretend_args_size,
5200         current_function_outgoing_args_size,
5201         current_function_internal_arg_pointer, current_function_return_rtx):
5202         Kill compatibility accestor macros.
5203         * builtins.c (expand_builtin_apply_args_1): Update.
5204         (expand_builtin_next_arg): Update.
5205         * df-scan.c (df_get_call_refs): Update.
5206         * dbxout.c (dbxout_function_end): Update.
5207         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5208         (output_line_info): Update.
5209         (secname_for_decl): Update.
5210         (dwarf2out_var_location): Update.
5211         * function.c (free_after_compilation): Update.
5212         (assign_parm_find_stack_rtl): Update.
5213         (assign_parms): Update.
5214         (expand_dummy_function_end): Update.
5215         (expand_function_end): Update.
5216         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5217         (expand_call): Update.
5218         (emit_library_call_value_1): Update.
5219         (store_one_arg): Update.
5220         * varasm.c (initialize_cold_section_name): Update.
5221         (unlikely_text_section): Update.
5222         (unlikely_text_section_p): Update.
5223         (assemble_start_function): Update.
5224         (assemble_end_function): Update.
5225         (default_section_type_flags): Update.
5226         (switch_to_section): Update.
5227         * integrate.c (set_decl_abstract_flags): Update.
5228         (get_hard_reg_initial_val): Update.
5229         (has_hard_reg_initial_val): Update.
5230         (allocate_initial_values): Update.
5231         * resource.c (init_resource_info): Update.
5232         * config/alpha/alpha.c (NUM_ARGS): Update.
5233         (direct_return): Update.
5234         (alpha_va_start): Update.
5235         (alpha_sa_size): Update.
5236         (alpha_initial_elimination_offset): Update.
5237         (alpha_expand_prologue): Update.
5238         (alpha_start_function): Update.
5239         (alpha_expand_epilogue): Update.
5240         (unicosmk_initial_elimination_offset):
5241         * config/alpha/alpha.md (call expander): Update.
5242         * config/s390/s390.c (s390_register_info): Update.
5243         (s390_register_info): Update.
5244         (s390_frame_info): Update.
5245         (s390_initial_elimination_offset): Update.
5246         (s390_build_builtin_va_list): Update.
5247         (s390_va_start): Update.
5248         * config/spu/spu.c (direct_return): Update.
5249         (spu_expand_prologue): Update.
5250         (spu_initial_elimination_offset): Update.
5251         (spu_build_builtin_va_list): Update.
5252         (spu_va_start): Update.
5253         * config/sparc/sparc.c (sparc_init_modes): Update.
5254         (sparc_compute_frame_size): Update.
5255         (function_value): Update.
5256         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5257         * config/i386/i386.md (return expander): Update.
5258         * config/i386/i386.c (ix86_va_start): Update.
5259         (ix86_can_use_return_insn_p): Update.
5260         (ix86_compute_frame_layout): Update.
5261         (ix86_expand_epilogue): Update.
5262         * config/sh/sh.c (output_stack_adjust): Update.
5263         (calc_live_regs): Update.
5264         (sh_expand_prologue): Update.
5265         (sh_builtin_saveregs): Update.
5266         (sh_va_start): Update.
5267         (initial_elimination_offset): Update.
5268         (sh_allocate_initial_value): Update.
5269         (sh_function_ok_for_sibcall): Update.
5270         (sh_get_pr_initial_val): Update.
5271         * config/sh/sh.md (return expander): Update.
5272         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5273         * config/crx/crx.c (crx_compute_frame): UPdate.
5274         (crx_initial_elimination_offset): UPdate.
5275         * config/xtensa/xtensa.c (compute_frame_size): Update
5276         (xtensa_builtin_saveregs): Update.
5277         (xtensa_va_start): Update.
5278         (order_regs_for_local_alloc): Update.
5279         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5280         (xstormy16_expand_builtin_va_start): Update.
5281         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5282         * config/m68hc11/m68hc11.md (return expanders): Update.
5283         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5284         (expand_epilogue): Update.
5285         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5286         (cris_simple_epilogue): Update.
5287         (cris_expand_prologue): Update.
5288         (cris_expand_epilogue): Update.
5289         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5290         (compute_frame_size): Update.
5291         * config/mt/mt.c (mt_compute_frame_size): Update.
5292         * config/mn10300/mn10300.c (expand_prologue): Update.
5293         (expand_epilogue): Update.
5294         (initial_offset): Update.
5295         (mn10300_builtin_saveregs):
5296         * config/mn10300/mn10300.md (return expander): Update.
5297         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5298         (ia64_initial_elimination_offset): Update.
5299         (ia64_initial_elimination_offset): Update.
5300         (ia64_expand_prologue): Update.
5301         * config/m68k/m68k.md (return expander): Update.
5302         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5303         (rs6000_stack_info): Update.
5304         * config/mcore/mcore.c (layout_mcore_frame): Update.
5305         (mcore_expand_prolog): Update.
5306         * config/arc/arc.c (arc_compute_frame_size): Update.
5307         * config/score/score3.c (score3_compute_frame_size): Update.
5308         * config/score/score7.c (score7_compute_frame_size): Update.
5309         * config/arm/arm.c (use_return_insn): Update.
5310         (thumb_find_work_register): Update.
5311         (arm_compute_save_reg_mask): Update.
5312         (arm_output_function_prologue): Update.
5313         (arm_output_epilogue): Update.
5314         (arm_size_return_regs): Update.
5315         (arm_get_frame_offsets): Update.
5316         (arm_expand_prologue): Update.
5317         (thumb_exit): Update.
5318         (thumb_unexpanded_epilogue): Update.
5319         (thumb1_output_function_prologue): Update.
5320         * config/pa/pa.md (return expander): Update.
5321         * config/pa/pa.c (compute_frame_size): Update.
5322         (hppa_builtin_saveregs): Update.
5323         * config/mips/mips.c (mips_va_start): Update.
5324         (mips16_build_function_stub): Update.
5325         (mips_compute_frame_info): Update.
5326         (mips_restore_gp): Update.
5327         (mips_output_function_prologue): Update.
5328         (mips_expand_prologue): Update.
5329         * config/v850/v850.c (compute_frame_size): Update.
5330         (expand_prologue): * config/mmix/mmix.c (along): update.
5331         (mmix_initial_elimination_offset): update.
5332         (mmix_reorg): update.
5333         (mmix_use_simple_return): update.
5334         (mmix_expand_prologue): update.
5335         (mmix_expand_epilogue): Update.
5336         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5337         (emit_link_insn): Update.
5338
5339 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5340
5341         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5342         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5343         instructions.
5344         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5345         atmega103 device.
5346
5347 2008-04-07  Jan Hubicka  <jh@suse.cz>
5348
5349         * function.h (rtl): Rename to x_rtl.
5350         (crtl): New define.
5351         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5352         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5353         used_temp_slots avail_temp_slots, temp_slot_level,
5354         nonlocal_goto_handler_labels): Update accesstors.
5355         (rtl): New global variable.
5356         (struct function): Move some fileds to rtl_data.
5357         (get_arg_pointer_save_area): Update prototype.
5358         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5359         get_arg_pointer_save_area.
5360         * expr.c (init_expr): Update
5361         * function.c (get_frame_size): Update
5362         (assign_stack_local): Update
5363         (expand_function_end): Update.
5364         (get_art_pointer_save_area): Update
5365         * function.h 
5366         * emit-rtl.c (rtl): Declare.
5367         (regno_reg_rtx): Declare.
5368         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5369         Update.
5370         (gen_reg_rtx): Update.
5371         * varasm.c (n_deferred_constatns): Update accestor.
5372         (init_varasm_status): Do not allocate varasm_status.
5373         (force_const_mem, get_pool_size, output_constant_pool): Update.
5374         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5375         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5376         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5377         * sparc/sparc.h (INIT_EXPANDERS): Update.
5378         * ia64/ia64.h (INIT_EXPANDERS): Update.
5379
5380 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5381
5382         * reload.c (push_secondary_reload): Add missing break to for loop.
5383
5384 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5385
5386         PR middle-end/PR28690
5387         * rtlanal.c: Update copyright years.
5388         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5389         as REG_POINTER and MEM_POINTER operands.
5390         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5391         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5392         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5393         * gcse.c: Update copyright years.
5394         (pre_delete): Call gen_reg_rtx_and_attrs.
5395         (hoist_code): Likewise.
5396         (build_store_vectors): Likewise.
5397         (delete_store): Likewise.
5398         * loop-invariant.c (move_invariant_reg): Likewise.
5399         Update copyright years.
5400
5401 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5402
5403         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5404         control string instead of quoted.
5405
5406 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5407
5408         * doc/rtl.texi: Rewrite of subreg section.
5409
5410 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5411
5412         PR/35842
5413         * config/i386/i386.c (legitimize_pic_address): Add treating
5414         of dllimport SYM_REF's.
5415         (legitimize_dllimport_symbol): Add prototype.
5416
5417 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5418
5419         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5420         reference in constructor with non self-referential type.
5421
5422 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5423
5424         Removal of Return with Depressed Stack Pointer support
5425         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5426         (ECF_SP_DEPRESSED): Likewise.
5427         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5428         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5429         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5430         (expand_call): Do not test ECF_SP_DEPRESSED.
5431         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5432         * function.c (keep_stack_depressed): Delete.
5433         (handle_epilogue_set): Likewise.
5434         (update_epilogue_consts): Likewise.
5435         (emit_equiv_load): Likewise.
5436         (thread_prologue_and_epilogue_insns): Remove support for Return with
5437         Depressed Stack Pointer.
5438         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5439
5440 2008-04-06  Richard Guenther  <rguenther@suse.de>
5441
5442         PR tree-optimization/35400
5443         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5444         information from SSA_NAMEs.
5445
5446 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5447
5448         * config/avr/avr.h (avr_mega_p): Remove declaration.
5449         (AVR_MEGA): Remove macro.
5450         * config/avr/avr.c (avr_mega_p): Remove variable.
5451         (avr_override_options): Remove inicializion of avr_mega_p.
5452         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5453         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5454         (avr_jump_mode): (Ditto.).
5455         (avr_output_progmem_section_asm_op): (Ditto.).
5456         (avr_asm_init_sections): (Ditto.).
5457         (avr_asm_init_sections): (Ditto.).
5458         (avr_rtx_costs): (Ditto.).
5459         * config/avr/avr.md: (Ditto.).
5460         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5461         '__AVR_MEGA__'.
5462
5463 2008-04-06  Richard Guenther  <rguenther@suse.de>
5464
5465         PR tree-optimization/35842
5466         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5467         is_gimple_invariant_address.
5468
5469 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5470
5471         * gcc.c (default_compilers): Sync Fortran extensions list with
5472         that in fortran/lang-specs.h.
5473         * doc/invoke.texi: Likewise.
5474         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5475         * dwarf2out.c (gen_compile_unit_die): Likewise.
5476
5477 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5478
5479         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5480
5481 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5482
5483         PR target/12329
5484         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5485         attribute is used for nested functions.
5486
5487 2008-04-05  Jan Hubicka  <jh@suse.cz>
5488
5489         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5490
5491         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5492         letter argument.
5493         (dump_files): Update.
5494         (enable_rtl_dump_file): Do not accept letter argument.
5495         * tree-pass.h (dump_file_info): Remove letter argument.
5496         * toplev.c (decode_d_option): Update -da handling.
5497         * toplev.h (enable_rtl_dump_file): Update prototype.
5498         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5499         it out based on pass type.
5500         (register_dump_files_1): Likewise.
5501         (init_optimization_passes): Update register_one_dump_file calls.
5502         (execute_one_pass): Sanity check that IPA passes are called at IPA
5503         level and RTL passes at RTL level.
5504         (execute_pass_list): IPA pass can not be after or subpass of
5505         GIMPLE/RTL pass.
5506         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5507         disallov RTL subpasses of IPA subpasses.
5508
5509 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5510
5511         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5512         builtins that return exactly once and do not throw. Cache call to
5513         call_expr_flags.
5514
5515 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5516
5517         PR rtl-optimization/34916
5518         PR middle-end/35519
5519         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5520         between instruction pairs.
5521
5522 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5523
5524         * doc/invoke.texi: Document -mbitops for SH.
5525         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5526         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5527         * config/sh/sh.c (print_operand): Add %t operand code.
5528         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5529         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5530         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5531         (extendqihi2): Likewise.
5532         (movqi_i): Likewise.
5533         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5534         (extv): Use bld instruction for SH2A if possible.
5535         (extzv): Likewise.
5536         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5537         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5538         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5539         (bset.b, bclr.b): Define peepholes.
5540         * config/sh/sh.opt (mbitops): New option.
5541
5542 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5543
5544         PR target/35620
5545         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5546         and view convert expression.
5547
5548 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5549
5550         PR target/35364
5551         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5552
5553 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5554
5555         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5556
5557         * config/i386/cpuid.h (bit_AES): New.
5558         (bit_PCLMUL): Likewise.
5559
5560         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5561         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5562         SSE2 if AES or PCLMUL is enabled.
5563         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5564         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5565         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5566         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5567         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5568         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5569         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5570         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5571         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5572         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5573         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5574         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5575         __builtin_ia32_aeskeygenassist128 and
5576         __builtin_ia32_pclmulqdq128.
5577         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5578         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5579         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5580
5581         * config/i386/i386.h (TARGET_AES): New.
5582         (TARGET_PCLMUL): Likewise.
5583         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5584
5585         * config/i386/i386.md (UNSPEC_AESENC): New.
5586         (UNSPEC_AESENCLAST): Likewise.
5587         (UNSPEC_AESDEC): Likewise.
5588         (UNSPEC_AESDECLAST): Likewise.
5589         (UNSPEC_AESIMC): Likewise.
5590         (UNSPEC_AESKEYGENASSIST): Likewise.
5591         (UNSPEC_PCLMUL): Likewise.
5592
5593         * config/i386/i386.opt (maes): New.
5594         (mpclmul): Likewise.
5595
5596         * config/i386/sse.md (aesenc): New pattern.
5597         (aesenclast): Likewise.
5598         (aesdec): Likewise.
5599         (aesdeclast): Likewise.
5600         (aesimc): Likewise.
5601         (aeskeygenassist): Likewise.
5602         (pclmulqdq): Likewise.
5603
5604         * config/i386/wmmintrin.h: New.
5605
5606         * doc/extend.texi: Document AES and PCLMUL built-in function.
5607
5608         * doc/invoke.texi: Document -maes and -mpclmul.
5609
5610 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5611
5612         * function.c (free_after_parsing): Replace with
5613         cxx_push_function_context from C++ front-end.
5614         (allocate_struct_function): Don't call langhook.
5615         * langhooks.h (struct lang_hooks_for_functions): Delete.
5616         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5617         member "function".
5618         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5619         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5620         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5621         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5622         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5623         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5624         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5625
5626         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5627         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5628         
5629 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5630
5631         PR c/35440
5632         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5633         for all types.
5634
5635 2008-04-04  Richard Guenther  <rguenther@suse.de>
5636
5637         PR middle-end/35823
5638         * fold-const.c (optimize_minmax_comparison): Use the correct
5639         type for the constant in the simplified comparison.
5640
5641 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5642
5643         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5644         Pass L2 size as "--param l2-cache-size" to the compiler.
5645         (decode_l2_cache): New function to decode L2 cache parameters using
5646         0x8000006 extended cpuid function.
5647         (detect_caches_amd): Determine parameters of L2 cache using
5648         decode_l2_caches function.
5649         (decode_caches_intel): Decode L2 cache parameters.
5650         (detect_caches_intel): Determine L2 cache parameters using
5651         decode_caches_intel and decode_l2_caches functions.
5652
5653 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5654
5655         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5656         secondary input reload for subword loads from the constant pool.
5657
5658 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5659
5660         PR target/35713
5661         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5662           constants of the appropriate size for runtime calculations.
5663
5664         PR c/35712
5665         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5666           decimal-float literal constant zero.
5667
5668 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5669
5670         PR c/35738
5671         * c-parser.c (c_parser_omp_atomic): Call
5672         default_function_array_conversion on the RHS.
5673
5674         PR middle-end/35818
5675         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5676         call is_variable_sized if decl has incomplete type.
5677
5678 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5679
5680         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5681
5682 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5683
5684         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5685         iterators.
5686         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5687         (sgt<u>): Merge sgt and sgtu into new expander.
5688         (sgt, sgtu): Remove expanders.
5689         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5690         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5691         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5692         *sgtu_<mode>_mips16 into new pattern.
5693         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5694         (sge<u>): Merge sge and sgeu into new expander.
5695         (sge, sgeu): Remove expanders.
5696         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5697         new pattern.
5698         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5699         (slt<u>): Merge slt and sltu into new expander.
5700         (slt, sltu): Remove expanders.
5701         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5702         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5703         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5704         *sltu_<mode>_mips16 into new pattern.
5705         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5706         (sle<u>): Merge sle and sleu into new expander.
5707         (sle, sleu): Remove expanders.
5708         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5709         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5710         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5711         *sleu_<mode>_mips16 into new pattern.
5712         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5713
5714 2008-04-03  Jan Hubicka  <jh@suse.cz>
5715
5716         PR tree-optimization/35795
5717         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5718         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5719         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5720         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5721         * score/score3.c (score3_output_mi_thunk): Likewise.
5722         * score/score7.c (score7_output_mi_thunk): Likewise.
5723         * mips/mips.c (mips_output_mi_thunk): Likewise.
5724
5725 2008-04-03  Richard Guenther  <rguenther@suse.de>
5726
5727         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5728         conversions.  Simplify code.
5729
5730 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5731
5732         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5733
5734 2008-04-03  Tom Tromey  <tromey@redhat.com>
5735             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5736
5737         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5738         * config/bfin/t-bfin-linux (generated_files): Add
5739         linux-sysroot-suffix.h.
5740         * doc/install.texi (Prerequisites): Require make 3.80.
5741         * doc/sourcebuild.texi (Front End Directory): Document new
5742         variable.
5743         * Makefile.in (generated_files): New variable.
5744         (ALL_HOST_OBJS): New variable.
5745         ($(ALL_HOST_OBJS)): New target.
5746
5747 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5748
5749         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5750         (remap_block): Call id->transform_lang_insert_block instead
5751         of langhook.
5752         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5753         Set id.transform_lang_insert_block to NULL.
5754         (clone_body): Move to cp/optimize.c
5755         * tree-inline.h (struct copy_body_data): Change
5756         transform_lang_insert_block to function pointer.
5757         (copy_generic_body, copy_decl_no_change): Export.
5758         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5759         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5760         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5761
5762         * c-tree.h (insert_block): Kill.
5763         * c-decl.c (insert_block): Kill.
5764
5765 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5766
5767         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5768         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5769         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5770         argument.
5771         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5772         argument, call {push,pop}_function_context from here.
5773         * c-parser.c: Use c_{push,pop}_function_context.
5774
5775         * function.c (push_function_context_to): Move meat ...
5776         (push_function_context): ... here.  Simplify.
5777         * function.c (pop_function_context_from): Move meat ...
5778         (pop_function_context): ... here.  Simplify.
5779         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5780         leave_nested).
5781         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5782         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5783         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5784         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5785
5786 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5787
5788         * expmed.c (extract_force_align_mem_bit_field): Remove.
5789
5790 2008-04-03  Richard Guenther  <rguenther@suse.de>
5791
5792         PR middle-end/35800
5793         * expr.h (try_casesi): Adjust prototype.
5794         * expr.c (try_casesi): Take fallback label as extra parameter.
5795         Use that for gen_casesi if default_label is NULL.
5796         * stmt.c (expand_case): Pass fallback label to try_casesi,
5797         make sure to fill gaps with a fallback label if default_label
5798         is not present.
5799
5800 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5801
5802         PR target/35801
5803         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5804
5805 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5806
5807         * expmed.c (extract_split_bit_field): Remove if (0) code.
5808         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5809         (do_ds_constraint): Likewise.
5810
5811 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5812
5813         * doc/cppopts.texi (-dU): Document.
5814         * c-common.h (flag_dump_macros): Update comment.
5815         * c-opts.c (handle_OPT_d): Handle -dU.
5816         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5817         dump_queued_macros, cb_used_define, cb_used_undef): New.
5818         (init_pp_output): Handle -dU.
5819         (cb_line_change): Call dump_queued_macros.
5820         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5821
5822 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5823
5824         * config/avr/predicates.md (io_address_operand): New predicate. 
5825         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5826         * config/avr/avr.c (avr_io_address_p): Remove function.
5827         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5828         'avr_io_address_p' function.
5829         (out_movhi_r_mr): (Ditto.).
5830         (out_movqi_mr_r): (Ditto.).
5831         (out_movhi_mr_r): (Ditto.).
5832         (avr_address_cost): (Ditto.).
5833
5834 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5835
5836         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5837         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5838         in 32bit mode when XMM registers are available to avoid store
5839         forwarding stalls.
5840         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5841         corresponding post-reload splitters.
5842
5843 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5844
5845         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5846         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5847         __builtin_ia32_roundss.
5848         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5849         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5850         __builtin_ia32_roundss.
5851         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5852         IX86_BUILTIN_SHUFPD here.
5853
5854 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5855
5856         * config/i386/i386.md (plogic): New.
5857         (plogicprefix): Likewise.
5858
5859         * config/i386/mmx.md (mmx_<code><mode>3): New.
5860         (mmx_and<mode>3): Removed.
5861         (mmx_ior<mode>3): Likewise.
5862         (mmx_xor<mode>3): Likewise.
5863
5864         * config/i386/sse.md (<code><mode>3): New.
5865         (*<code><mode>3): Likewise.
5866         (*<code><mode>3): Likewise.
5867         (<code><mode>3): Likewise.
5868         (*sse_<code><mode>3): Likewise.
5869         (*sse2_<code><mode>3): Likewise.
5870         (<code>tf3): Likewise.
5871         (*<code>tf3): Likewise.
5872         (and<mode>3): Likewise.
5873         (*and<mode>3): Likewise.
5874         (ior<mode>3): Removed.
5875         (*ior<mode>3): Likewise.
5876         (xor<mode>3): Likewise.
5877         (*xor<mode>3): Likewise.
5878         (*and<mode>3): Likewise.
5879         (*ior<mode>3): Likewise.
5880         (*xor<mode>3): Likewise.
5881         (and<mode>3): Likewise.
5882         (*sse_and<mode>3): Likewise.
5883         (*sse2_and<mode>3): Likewise.
5884         (andtf3): Likewise.
5885         (*andtf3): Likewise.
5886         (ior<mode>3): Likewise.
5887         (*sse_ior<mode>3): Likewise.
5888         (*sse2_ior<mode>3): Likewise.
5889         (iortf3): Likewise.
5890         (*iortf3): Likewise.
5891         (xor<mode>3): Likewise.
5892         (*sse_xor<mode>3): Likewise.
5893         (*sse2_xor<mode>3): Likewise.
5894         (xortf3): Likewise.
5895         (*xortf3): Likewise.
5896
5897 2008-04-02  Richard Guenther  <rguenther@suse.de>
5898
5899         PR tree-optimization/14495
5900         PR tree-optimization/34793
5901         * tree-vrp.c (struct switch_update): New structure.
5902         (to_remove_edges, to_update_switch_stmts): New VECs.
5903         (simplify_switch_using_ranges): New function.  Remove not taken
5904         case labels and edges.
5905         (simplify_stmt_using_ranges): Call it.
5906         (identify_jump_threads): Mark edges we have queued for removal
5907         so we don't thread them.
5908         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5909         case label vector.
5910         * tree-cfg.c (group_case_labels): Deal with missing default label.
5911         (tree_verify_flow_info): Allow missing default label.
5912         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5913         (emit_case_nodes): Likewise.
5914         (expand_case): Do not rely on the default label to be present.
5915         * expr.c (try_casesi): Deal with NULL default_label.
5916         (do_tablejump): Likewise.
5917
5918 2008-04-02  Richard Guenther  <rguenther@suse.de>
5919
5920         PR tree-optimization/14495
5921         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5922         SWITCH_EXPR here ...
5923         (vrp_visit_switch_stmt): ... but here (new function).
5924         (find_case_label_index): New helper function.
5925         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5926
5927 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5928
5929         * fwprop.c: Fix ISO-C99ism.
5930
5931 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5932
5933         PR bootstrap/35752
5934         * Makefile.in (objdir): Set it here.
5935         * configure.ac: Not here.  Find dynamic linker characteristics.
5936         * exec-tool.in: Use them.
5937         * aclocal.m4: Regenerate.
5938         * configure: Regenerate.
5939
5940 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5941
5942         * expr.c (expand_var): Delete it.
5943         * expr.h (expand_var): Delete prototype.
5944         * function.c (expand_function_start): Use expand_decl instead.
5945         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5946         langhook.
5947
5948 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5949
5950         PR rtl-optimization/35542
5951         * fwprop.c (forward_propagate_and_simplify): Replace
5952         loc_reg_mentioned_in_p with reg_mentioned_p.
5953
5954 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5955
5956         PR rtl-optimization/35281
5957         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5958         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5959         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5960         (varying_mem_p): Move above propagate_rtx.
5961         (all_uses_available_at): Do not check MEMs.
5962
5963 2008-04-02  Rafael Espindola  <espindola@google.com>
5964
5965         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5966         (register_edge_assert_for_2): Split the cond argument.
5967         (register_edge_assert_for_1): Adjust for the change in
5968         register_edge_assert_for_2.
5969         (register_edge_assert_for): Split the cond argument.
5970         (find_switch_asserts): Adjust for the change in
5971         register_edge_assert_for.
5972
5973 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5974
5975         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5976         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5977         offsets for 64-bit mingw.
5978         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5979         abi for x86_64-pc-mingw.
5980
5981 2008-04-02  Richard Guenther  <rguenther@suse.de>
5982
5983         * tree-vrp.c (extract_range_from_assert): Make sure to not
5984         produce range min/max with TREE_OVERFOW set.
5985         If merging a anti-range and a range keep the anti-range if
5986         the range covers all values of the type.
5987         (register_edge_assert_for_2): Only allow sign-changing
5988         conversions in detecting canonical range checks.  Also
5989         register an assert for the unsigned name if useful.
5990
5991         PR tree-optimization/35787
5992         * tree-vrp.c (vrp_val_max): New function.
5993         (vrp_val_min): Likewise.
5994         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5995         (vrp_val_is_min): Likewise.
5996         (supports_overflow_infinity): Use vrp_val_{min,max}.
5997         (negative_overflow_infinity): Likewise.
5998         (positive_overflow_infinity): Likewise.
5999         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6000         (is_positive_overflow_infinity): Likewise.
6001         (is_overflow_infinity): Likewise.
6002         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6003         vrp_val_is_{min,max}.
6004         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6005         to ranges if possible.  Avoid empty ranges.
6006
6007 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6008
6009         PR middle-end/35705
6010         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6011         the expression is a function address.
6012
6013 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6014
6015         PR fortran/35154, fortran/23057
6016         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6017         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6018         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6019         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6020         in common.
6021         (dbxout_syms): Check for COMMON-based symbol and wrap in
6022         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6023         in bracket for efficiency.
6024
6025         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6026         using DW_TAG_common_block + member offset.
6027         (add_pubname_string): New function.
6028         (dw_expand_expr): New function to find block name and offset for
6029         COMMON var.
6030         (common_check): New function to check whether symbol in Fortran COMMON.
6031         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6032
6033 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6034
6035         PR c/35436
6036         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6037
6038 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6039
6040         * config/v850/v850.md (casesi): Remove if (0) code.
6041         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6042         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6043
6044 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6045
6046         * config/i386/i386.md (rex64suffix): New mode attribute.
6047         (floathi<mode>2): Disable expander for SSE math.
6048         (*floathi<mode>2_1): New insn insn_and_split pattern.
6049         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6050         corresponding post-reload splitters.
6051         (*floathi<mode>2_i387): New macroized insn pattern.
6052         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6053         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6054         insn_and_split pattern.
6055         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6056         New macroized instruction patterns and corresponding post-reload
6057         splitters.
6058         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6059         and corresponding post-reload splitters.
6060         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6061         New macroized instruction patterns.
6062         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6063         macroized instruction patterns and corresponding post-reload splitters.
6064         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6065         corresponding post-reload splitters.
6066         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6067         New macroized instruction patterns.
6068         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6069         corresponding post-reload splitters.
6070         (*floatsi<mode>2_i387): New macroized instruction patterns.
6071
6072 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6073
6074         * config/i386/i386.md (smaxmin): New.
6075         (umaxmin): Likewise.
6076         (maxminiprefix): Likewise.
6077         (maxminfprefix): Likewise.
6078         (<code><mode>3): Likewise.
6079         (smin<mode>3): Removed.
6080         (smax<mode>3): Likewise.
6081
6082         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6083         (mmx_<code>v4hi3): Likewise.
6084         (mmx_<code>v8qi3): Likewise.
6085         (mmx_smaxv2sf3): Removed.
6086         (mmx_sminv2sf3): Likewise.
6087         (mmx_umaxv8qi3): Likewise.
6088         (mmx_smaxv4hi3): Likewise.
6089         (mmx_uminv8qi3): Likewise.
6090         (mmx_sminv4hi3): Likewise.
6091
6092         * config/i386/sse.md (<addsub><mode>3): New.
6093         (*<addsub><mode>3): Likewise.
6094         (<sse>_vm<addsub><mode>3): Likewise.
6095         (<maxmin><mode>3): Likewise.
6096         (*<maxmin><mode>3_finite): Likewise.
6097         (*<maxmin><mode>3): Likewise.
6098         (<sse>_vm<maxmin><mode>3): Likewise.
6099         (sse3_h<addsub>v4sf3): Likewise.
6100         (sse3_h<addsub>v2df3): Likewise.
6101         (<maxmin>v16qi3): Likewise.
6102         (*<maxmin>v16qi3): Likewise.
6103         (<maxmin>v8hi3): Likewise.
6104         (*<maxmin>v8hi3): Likewise.
6105         (*sse4_1_<maxmin><mode>3): Likewise.
6106         (*sse4_1_<maxmin><mode>3): Likewise.
6107         (add<mode>3): Removed.
6108         (*add<mode>3): Likewise.
6109         (<sse>_vmadd<mode>3): Likewise.
6110         (sub<mode>3): Likewise.
6111         (*sub<mode>3): Likewise.
6112         (<sse>_vmsub<mode>3): Likewise.
6113         (smin<mode>3): Likewise.
6114         (*smin<mode>3_finite): Likewise.
6115         (*smin<mode>3): Likewise.
6116         (<sse>_vmsmin<mode>3): Likewise.
6117         (smax<mode>3): Likewise.
6118         (*smax<mode>3_finite): Likewise.
6119         (*smax<mode>3): Likewise.
6120         (<sse>_vmsmax<mode>3): Likewise.
6121         (sse3_haddv4sf3): Likewise.
6122         (sse3_haddv2df3): Likewise.
6123         (sse3_hsubv4sf3): Likewise.
6124         (sse3_hsubv2df3): Likewise.
6125         (umaxv16qi3): Likewise.
6126         (*umaxv16qi3): Likewise.
6127         (smaxv8hi3): Likewise.
6128         (*smaxv8hi3): Likewise.
6129         (*sse4_1_smax<mode>3): Likewise.
6130         (*sse4_1_umax<mode>3): Likewise.
6131         (uminv16qi3): Likewise.
6132         (*uminv16qi3): Likewise.
6133         (sminv8hi3): Likewise.
6134         (*sminv8hi3): Likewise.
6135         (*sse4_1_smin<mode>3): Likewise.
6136         (*sse4_1_umin<mode>3): Likewise.
6137
6138 2008-04-01  Rafael Espindola  <espindola@google.com>
6139
6140         * tree-cfg.c (verify_expr): remove in_phi.
6141         (verify_stmt): Don't call walk_tree with verify_expr. Use
6142         is_gimple_min_invariant instead of is_gimple_val.
6143
6144 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6145
6146         * doc/include/gpl_v3.texi: Update for manpage generation.
6147         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6148         gpl.texi.
6149         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6150         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6151         gpl_v3.texi instead of gpl.texi.
6152         (gpl.pod): New.
6153
6154 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6155
6156         PR pch/13675
6157         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6158
6159 2008-04-01  Rafael Espindola  <espindola@google.com>
6160
6161         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6162         (extract_code_and_val_from_cond): Use
6163         extract_code_and_val_from_cond_with_ops.
6164
6165 2008-04-01  Jan Hubicka  <jh@suse.cz>
6166
6167         * function.c (free_after_compilation): Free epilogue_delay_list.
6168         (prepare_function_start): Assert that previous compilation was freed.
6169
6170 2008-04-01  Jan Hubicka  <jh@suse.cz>
6171             Jim Wilson  <wilson@tuliptree.org>
6172             Andreas Tobler <andreast@gcc.gnu.org>
6173
6174         PR middle-end/35781
6175         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6176         rtl.emit instead cfun->emit.
6177         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6178         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6179
6180 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6181
6182         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6183
6184 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6185
6186         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6187         New options
6188         (fprofile-use): Add var flag_profile_use
6189         * coverage.c (coverage_begin_output): Do not open a gcno file for
6190         output only if -ftest-coverage is set.
6191         Do not add getpwd() to gcda file path.
6192         (build_gcov_info): Check the new flag
6193         flag_profile_datafile_relative_path.
6194         (coverage_init): Use profile_data_prefix.
6195         Read profile counter only if flag_profile_use is set.
6196         * opts.c (common_handle_option): New option fprofile-use=,
6197         fprofile-dir=, fprofile-generate=.
6198         * toplev.c (profile_data_prefix): New variable definition.
6199         * toplev.h (profile_data_prefix): New declaration.
6200         * doc/invoke.tex (Option Summary, Optimization Options):
6201         Add new options.
6202
6203 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6204
6205         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6206         use tmp consistently.
6207
6208         PR target/35695
6209         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6210         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6211         UNSPEC_FR_RECIP_APPROX_RES.
6212         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6213
6214 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6215
6216         PR c/35750
6217         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6218
6219 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6220
6221         PR middle-end/30186
6222         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6223         element of the vector via a pointer.
6224
6225 2008-03-31  Ian Lance Taylor  <iant@google.com>
6226
6227         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6228
6229 2008-03-31  Jan Hubicka  <jh@suse.cz>
6230
6231         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6232         get_arg_pointer_save_area.
6233         * expr.c (init_expr): Just clear out rtl.expr.
6234         * function.c (free_after_compilation): Clear out whole RTL structure.
6235         (get_func_frame_size): Merge into ...
6236         (get_frame_size): ... this one.
6237         (assign_stack_local_1): Merge into ...
6238         (assign_stack_local): ... this one.
6239         (expand_function_end): Update call of get_arg_pointer_save_area.
6240         (get_art_pointer_save_area): Remove cfun argument.
6241         * function.h (emit_status): regno_pointer_align does not need length
6242         attribute. Move x_regno_reg_rtx to ...
6243         (regno_reg_rtx): ... new global array.
6244         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6245         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6246         apply_args_value, forced_labels, stack_pointer_delta):
6247         Update accestors.
6248         (struct varasm_status): Move here from varasm.c
6249         (struct rtl_data): New. Move here some fields from struct function.
6250         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6251         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6252         used_temp_slots avail_temp_slots, temp_slot_level,
6253         nonlocal_goto_handler_labels): Update accesstors.
6254         (rtl): New global variable.
6255         (struct function): Move some fileds to rtl_data.
6256         (get_arg_pointer_save_area): Update prototype.
6257         * emit-rtl.c (rtl): Declare.
6258         (regno_reg_rtx): Declare.
6259         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6260         Update.
6261         (gen_reg_rtx): Update.
6262         (init_virtual_regs): Do not tate emit_status argument.
6263         (init_emit): Do not allocate emit.
6264         * varasm.c (varasm_statuc): Move to function.h.
6265         (n_deferred_constatns): Update accestor.
6266         (init_varasm_status): Do not allocate varasm_status.
6267         (force_const_mem, get_pool_size, output_constant_pool): Update.
6268         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6269         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6270
6271 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6272
6273         PR rtl-optimization/35729
6274         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6275         references.
6276
6277 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6278
6279         PR target/32000
6280         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6281         load/store if memory is unaligned.
6282         (*movti_rex64): Likewise.
6283
6284         * config/i386/predicates.md (misaligned_operand): New.
6285
6286 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6287
6288         PR tree-opt/35431
6289         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6290         complex types.
6291
6292 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6293
6294         * config/ia64/constraints.md: Add 'j' constraint.
6295         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6296         (movdi_internal): Likewise.
6297
6298 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6299
6300         PR c/35748
6301         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6302
6303 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6304
6305         PR target/35757
6306         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6307         proper error message for the third argument on blendpd and
6308         blendps.
6309
6310         * config/i386/sse.md (blendbits): New.
6311         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6312
6313 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6314
6315         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6316
6317 2008-03-30  Richard Guenther  <rguenther@suse.de>
6318
6319         PR middle-end/31023
6320         * fold-const.c (fold_sign_changed_comparison): Do leave
6321         conversions to base-types alone.
6322
6323 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6324
6325         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6326         the link register if one altivec register is be saved.
6327
6328 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6329
6330         * final.c (final_scan_insn): Remove if (0) code.
6331
6332 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6333
6334         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6335
6336 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6337
6338         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6339         of V4SFmode to ix86_binary_operator_ok.
6340
6341 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6342
6343         * config/i386/i386.c (override_options): Initialize
6344         ix86_veclib_handler to ix86_veclibabi_svml when
6345         -mveclibabi=svml is used.
6346         (ix86_veclibabi_svml): New function for SVML ABI style
6347         vectorization support.
6348         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6349
6350 2008-03-28  Rafael Espindola  <espindola@google.com>
6351
6352         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6353         (tree_binary_nonnegative_warnv_p): Make it public.
6354         (tree_single_nonnegative_warnv_p): Make it public.
6355         (tree_invalid_nonnegative_warnv_p): Make it public.
6356         (tree_unary_nonzero_warnv_p): Make it public.
6357         (tree_binary_nonzero_warnv_p): Make it public
6358         (tree_single_nonzero_warnv_p): Make it public.
6359         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6360         (extract_range_from_binary_expr): Split the expr argument.
6361         (extract_range_from_unary_expr): Split the expr argument.
6362         (extract_range_from_comparison): Split the expr argument.
6363         (extract_range_from_expr): Use the new aux functions.
6364         (vrp_evaluate_conditional_warnv): Use
6365         vrp_evaluate_conditional_warnv_with_ops.
6366         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6367         (tree_binary_nonzero_warnv_p): Declare.
6368         (tree_single_nonzero_warnv_p): Declare.
6369         (tree_expr_nonzero_warnv_p): Declare.
6370         (tree_unary_nonnegative_warnv_p): Declare.
6371         (tree_binary_nonnegative_warnv_p): Declare.
6372         (tree_single_nonnegative_warnv_p): Declare.
6373         (tree_invalid_nonnegative_warnv_p): Declare.
6374
6375 2008-03-28  Richard Guenther  <rguenther@suse.de>
6376
6377         PR tree-optimization/30317
6378         PR tree-optimization/30911
6379         PR tree-optimization/34793
6380         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6381         (struct assert_locus_d): New member EXPR.
6382         (register_new_assert_for): Add EXPR parameter to support
6383         ASSERT_EXPR <name, expr OP limit>.
6384         (register_edge_assert_for_1): Adjust callers.
6385         (find_assert_locations): Likewise.
6386         (process_assert_insertions_for): Build condition from expression.
6387         (extract_range_from_assert): Handle ASSERT_EXPRs
6388         of the form ASSERT_EXPR <name, expr OP limit>.
6389         (register_edge_assert_for_2): New helper registering
6390         asserts for comparisons.  Recognize range tests of the form
6391         (unsigned)i - CST1 OP CST2.
6392         (register_edge_assert_for_1): Use it.
6393         (register_edge_assert_for): Likewise.
6394         (needs_overflow_infinity): Integer sub-types
6395         do not need overflow infinities.
6396         (vrp_val_is_max): The extreme values of integer sub-types
6397         are those of the base type.
6398         (vrp_val_is_min): Likewise.
6399         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6400         expressions.
6401
6402 2008-03-28  Nick Clifton  <nickc@redhat.com>
6403
6404         PR target/31110
6405         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6406         Return GENERAL_REGS for stack adjustment reloads.
6407
6408 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6409
6410         PR target/31334
6411         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6412         const_vector when all the vectors are constant.
6413
6414 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6415
6416         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6417         comparisons.
6418         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6419         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6420         (scc_sf): New.
6421         (s<code>_sf): Use new scc_sf attribute for opcode names.
6422
6423 2008-03-27  Tom Tromey  <tromey@redhat.com>
6424
6425         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6426         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6427         config/spu/t-spu-elf, config/i386/t-interix,
6428         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6429         config/i386/x-darwin, config/i386/x-mingw32,
6430         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6431         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6432         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6433         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6434         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6435         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6436         config/score/t-score-elf, config/arm/t-strongarm-pe,
6437         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6438         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6439         Revert automatic dependency patch.
6440
6441 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6442
6443         PR target/35657
6444         * config/i386/i386.c (ix86_function_arg_boundary): Align
6445         decimal floating point to its natural boundary.
6446
6447 2008-03-27  Richard Guenther  <rguenther@suse.de>
6448
6449         PR middle-end/35716
6450         * fold-const.c (fold_comparison): Restrict distinct decl
6451         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6452         solely rely on operand_equal_p.
6453
6454 2008-03-27  Richard Guenther  <rguenther@suse.de>
6455
6456         PR c/32511
6457         * c-common.c (handle_weak_attribute): Reject combination of
6458         weak and inline.
6459
6460 2008-03-27  Richard Guenther  <rguenther@suse.de>
6461
6462         PR tree-optimization/32810
6463         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6464         conversions from DECL_INITIAL.
6465         (fold_const_aggregate_ref): Likewise from constructor elements.
6466
6467 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6468
6469         * tree-affine.h (aff_combination_expand): Declare.
6470         (get_inner_reference_aff): Likewise.
6471         * tree-affine.c (aff_combination_expand): Split out from
6472         tree_to_aff_combination_expand.
6473         (get_inner_reference_aff): New function.
6474         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6475         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6476         (struct lim_aux_data): sm_done field removed.
6477         (mem_ref_loc_p, mem_ref_locs_p): New types.
6478         (struct mem_ref): Added id, stored, accesses_in_loop,
6479         indep_loop, dep_loop, indep_ref, dep_ref fields.
6480         Removed is_stored, locs and next fields.
6481         (memory_accesses): New variable.
6482         (movement_possibility): Do not allow moving statements
6483         that store to memory.
6484         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6485         New functions.
6486         (determine_max_movement): For statements with memory references,
6487         find the outermost loop in that the reference is independent.
6488         (move_computations_stmt): Mark the virtual operands for renaming.
6489         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6490         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6491         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6492         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6493         create_vop_ref_mapping, analyze_memory_references,
6494         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6495         get_all_locs_in_loop, ref_always_accessed_p,
6496         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6497         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6498         store_motion_loop, store_motion): New functions.
6499         (struct vop_to_refs_elt): New type.
6500         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6501         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6502         (schedule_sm): Replaced by...
6503         (execute_sm): ... this.
6504         (determine_lsm_ref, hoist_memory_references,
6505         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6506         find_more_ref_vops, free_mem_ref, free_mem_refs,
6507         determine_lsm_loop, determine_lsm): Removed.
6508         (tree_ssa_lim_finalize): Free data structures used by store motion.
6509         (tree_ssa_lim): Call analyze_memory_references.  Use
6510         store_motion instead of determine_lsm.
6511
6512 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6513
6514         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6515         rename tmake_file to m68hc11/t-m68hc11.
6516         (mcore): Set inhibit_libc to true.
6517         * config.host (alpha*-dec-*vms*): Set extra_programs.
6518         (interix3*): Don't use host_xmake_file.
6519         * configure.ac: Let config.gcc override inhibit_libc.
6520         * configure: Regenerate.
6521
6522         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6523         * config/t-openbsd-thread: Remove commented out lines.
6524         
6525         * config/x-interix: Remove.
6526
6527         * config/m68hc11/t-m68hc11-gas: Rename to...
6528         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6529
6530         * config/mcore/t-mcore: Remove T_CFLAGS.
6531         * config/mcore/t-mcore-pe: Likewise.
6532
6533 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6534
6535         * configure.ac: Replace custom __GNU_SOURCE test with
6536         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6537         * aclocal.m4: Regenerate.
6538         * configure: Regenerate.
6539         * config.in: Regenerate.
6540
6541 2008-03-27  Richard Guenther  <rguenther@suse.de>
6542
6543         * fold-const.c (target.h): Include.
6544         (fold_comparison): Fold comparison of addresses of decls
6545         that bind locally or of constants.  Consolidate address folding code.
6546         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6547         results from fold_binary_to_constant.
6548         (compare_values_warnv): Likewise.
6549
6550 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6551
6552         PR middle-end/35429
6553         * fold-const.c (fold_truthop): Check for integeral types when folding
6554         a == 0 && b == 0 and a != 0 || b != 0 .
6555
6556 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6557
6558         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6559
6560 2008-03-26  Andreas Schwab  <schwab@suse.de>
6561
6562         * doc/invoke.texi: Fix use of @item vs. @itemx.
6563
6564 2008-03-26  Tom Tromey  <tromey@redhat.com>
6565
6566         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6567         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6568         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6569         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6570         build/genconstants.o, build/genemit.o, build/genextract.o,
6571         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6572         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6573         options.h.
6574
6575 2008-03-26  Richard Guenther  <rguenther@suse.de>
6576
6577         Revert
6578         2008-03-26  Richard Guenther  <rguenther@suse.de>
6579
6580         * fold-const.c (target.h): Include.
6581         (fold_comparison): Fold comparison of addresses of two decls
6582         that bind locally.  Consolidate address folding code.
6583
6584 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6585
6586         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6587         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6588         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6589         dconstsqrt2, dconstthird, dconste and/or dconst10.
6590         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6591         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6592         dconstsqrt2, dconste): Delete.
6593         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6594         Constify variable.
6595         * real.c (get_real_const): New.
6596         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6597         dconstsqrt2, dconste): Delete.
6598         (real_value_const, get_real_const): New.
6599
6600 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6601
6602         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6603
6604         * config/i386/i386.c (ix86_function_arg_boundary): Check
6605         BIGGEST_ALIGNMENT instead of 128.
6606         (setup_incoming_varargs_64): Likewise.
6607
6608 2008-03-26  Tom Tromey  <tromey@redhat.com>
6609
6610         * Makefile.in (DEPFILES): Add missing '/'.
6611
6612 2008-03-26  Richard Guenther  <rguenther@suse.de>
6613
6614         * fold-const.c (target.h): Include.
6615         (fold_comparison): Fold comparison of addresses of two decls
6616         that bind locally.  Consolidate address folding code.
6617
6618 2008-03-26  Nick Clifton  <nickc@redhat.com>
6619
6620         PR target/31232
6621         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6622         not allow INT+INT as a legitimate addressing mode.
6623
6624 2008-03-26  Richard Guenther  <rguenther@suse.de>
6625
6626         * tree-flow.h (widen_bitfield): Remove declaration.
6627         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6628         (widen_bitfield): Remove function.
6629         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6630         code.
6631
6632 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6633
6634         PR target/31558
6635         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6636         error_mark_node's.
6637
6638 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6639
6640         PR rtl-optimization/35232
6641         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6642         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6643         reg_reloaded_call_part_clobbered here.
6644         (reload_regs_reach_end_p): New function.
6645         (reload_reg_rtx_for_input): New variable.
6646         (reload_reg_rtx_for_output): Likewise.
6647         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6648         when reassigning a pseudo register.  Load reloadreg from 
6649         reload_reg_rtx_for_input, moving the mode and register
6650         calculation to...
6651         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6652         instead of the original when deciding whether an input reload
6653         would be a no-op or whether an output reload can be deleted.
6654         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6655         when setting up new_spill_reg_store.  Load it from
6656         reload_reg_rtx_for_output, moving the mode and register
6657         calculation to...
6658         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6659         instead of the original when deciding whether an output reload
6660         would be a no-op.  Do the same when modifying insn notes.
6661         Use rtx_equal_p instead of == to compare the registers.
6662         (inherit_piecemeal_p): Take a mode and two register numbers
6663         as argument.
6664         (emit_reload_insns): Clear new_spill_reg_store for every hard
6665         register in the reload register.  Remove spill registers
6666         from reg_reloaded_valid before considering whether to record
6667         inheritance information for them.  Use reload_reg_rtx_for_output
6668         instead of reg_rtx when recording output reloads.  Use
6669         reload_reg_rtx_for_input instead of reg_rtx when recording
6670         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6671         at the same time as setting reg_reloaded_valid.
6672         (delete_output_reload): Add a new_reload_reg parameter and use it
6673         instead of rld[j].reg_rtx.
6674         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6675         calls accordingly.
6676
6677 2008-03-25  Tom Tromey  <tromey@redhat.com>
6678
6679         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6680         (build/genattr.o): Likewise.
6681         (build/genattrtab.o): Likewise.
6682         (build/gencodes.o): Likewise.
6683         (build/genconfig.o): Likewise.
6684         (build/genconstants.o): Likewise.
6685         (build/genemit.o): Likewise.
6686         (build/genextract.o): Likewise.
6687         (build/genflags.o): Likewise.
6688
6689 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6690         
6691         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6692         instead of size_int for integer types.
6693         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6694         to match type of MINUS_EXPR.
6695         
6696 2008-03-25  Tom Tromey  <tromey@redhat.com>
6697
6698         * configure: Rebuilt.
6699         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6700         Makefile.
6701
6702 2008-03-25  Tom Tromey  <tromey@redhat.com>
6703
6704         * config/x-solaris (host-solaris.o): Update.
6705         * config/x-linux (host-linux.o): Update.
6706         * config/x-hpux (host-hpux.o): Update.
6707         * config/x-darwin (host-darwin.o): Update.
6708         * config/v850/t-v850e (v850-c.o): Update.
6709         * config/v850/t-v850 (v850-c.o): Update.
6710         * config/t-vxworks (vxworks.o): Update.
6711         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6712         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6713         * config/spu/t-spu-elf (spu-c.o): Update.
6714         (spu.o): Remove.
6715         * config/sh/t-symbian (sh-c.o): Update.
6716         (symbian.o): Update.
6717         * config/sh/t-sh (sh-c.o): Update.
6718         * config/score/t-score-elf (score7.o, score3.o): Update.
6719         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6720         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6721         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6722         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6723         (rs6000.o): Remove.
6724         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6725         * config/m32c/t-m32c (m32c-pragma.o): Update.
6726         * config/ia64/t-ia64 (ia64-c.o): Update.
6727         * config/i386/x-mingw32 (host-mingw32.o): Update.
6728         * config/i386/x-i386 (driver-i386.o): Update.
6729         * config/i386/x-darwin (host-i386-darwin.o): Update.
6730         * config/i386/x-cygwin (host-cygwin.o): Update.
6731         * config/i386/t-nwld (nwld.o): Update.
6732         * config/i386/t-netware (netware.o): Update.
6733         * config/i386/t-interix (winnt.o): Update.
6734         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6735         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6736         msformat-c.o): Update.
6737         * config/bfin/t-bfin-linux (generated_files): Add
6738         linux-sysroot-suffix.h.
6739         * config/arm/t-wince-pe (pe.o): Update.
6740         * config/arm/t-strongarm-pe (pe.o): Update.
6741         * config/arm/t-pe (pe.o): Update.
6742         * config/arm/t-arm (arm-c.o): Update.
6743         * doc/install.texi (Prerequisites): Require make 3.80.
6744         * Makefile.in: Remove .o targets.
6745         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6746         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6747         (simple_generated_h, simple_generated_c): Move earlier.
6748         (generated_files): New variable.
6749         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6750         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6751         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6752         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6753         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6754         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6755         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6756         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6757         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6758         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6759         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6760         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6761         (.c.o): Remove.
6762         (COMPILE.base, COMPILE): New variables.
6763         (%.o): New pattern rule.
6764         (ALL_HOST_OBJS): New variable.
6765         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6766         (dummy-checksum.o, cc1-checksum.o): Remove.
6767         (DRIVER_SHLIB): New variable.
6768         (DRIVER_DEFINES): Use it.
6769         (gencondmd.c): Move out of build/.
6770         (s-conditions): Update.
6771         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6772         (ALL_BUILD_OBJS): Likewise.
6773         (build/%.o): Use BUILDCOMPILE.
6774         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6775         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6776         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6777         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6778         build/genconfig.o, build/genconstants.o, build/genemit.o,
6779         build/genextract.o, build/genflags.o, build/genmddeps.o,
6780         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6781         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6782         build/gen-protos.o, build/scan.o, build/fix-header.o,
6783         build/scan-decls.o): Simplify.
6784         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6785         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6786         prefix.o, toplev.o): Reduce to variable setting.
6787         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6788         ($(out_object_file), gcc-options.o): New targets.
6789         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6790         * configure: Rebuilt.
6791         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6792         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6793
6794 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6795
6796         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6797         complain when we hit an error, return ERROR_MARK_NODE.
6798
6799 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6800
6801         * config/sh/constraints.md (Pso, Psz): New constraints.
6802         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6803         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6804
6805 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6806
6807         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6808         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6809
6810 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6811
6812         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6813         (prefetch_sh2a): New.   
6814
6815 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6816             Naveen.H.S  <naveen.hs@kpitcummins.com>
6817
6818         * config/sh/constraints.md (I28): New constraint.
6819         * config/sh/sh.c (broken_move): Add support for movi20s.
6820         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6821
6822 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6823             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6824             Naveen.H.S  <naveen.hs@kpitcummins.com>
6825
6826         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6827         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6828         (print_operand): Handle resbank in %@ operand code.
6829         (sh_encode_section_info): New.
6830         (push_regs): Add conditions for resbank.
6831         (sh_expand_epilogue): Likewise.
6832         (sh_insert_attributes): Likewise.
6833         (sh_attribute_table): Likewise.
6834         (sh_handle_resbank_handler_attribute): New.
6835         (sh2a_handle_function_vector_handler_attribute): New.
6836         (sh2a_is_function_vector_call): New.
6837         (sh2a_get_function_vector_number): New.
6838         (sh2a_function_vector_p): New.
6839         (sh_cfun_resbank_handler_p): New.
6840         * config/sh/sh.md (calli): Emit jsr/n if possible.
6841         (calli_tbr_rel): New.
6842         (calli_pcrel): Emit jsr/n if possible.
6843         (return_i): Emit rts/n if possible.
6844         (call_valuei_tbr_rel): New.
6845         (call_valuei_pcrel): Add condition for SH2A target.
6846         (call_value): Likewise.
6847         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6848         (sh2a_get_function_vector_number): Likewise.
6849         (sh2a_is_function_vector_call): Likewise.
6850         * doc/extend.texi: Document TBR relative addressing of SH2A.
6851         (resbank): Add description for SH2A.
6852
6853 2008-03-24  Richard Guenther  <rguenther@suse.de>
6854
6855         PR c/22371
6856         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6857         pointer assignments change conversions according to middle-end rules.
6858         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6859         * configure.ac: Include type checking in yes.
6860         * configure: Regenerate.
6861
6862 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6863
6864         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6865         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6866         
6867 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6868
6869         * gthr-vxworks.h (UNUSED): Define.
6870
6871 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6872
6873         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6874
6875 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6876
6877         * doc/extend.texi (Function Attributes): Add missing comma in the
6878         example of the "alloc_size" attribute.
6879         
6880 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6881
6882         Revert:
6883         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6884
6885         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6886         32bit host.
6887
6888         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6889
6890         PR target/35496
6891         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6892         of the underlying type of a MS bitfield layout to the natural
6893         alignment of the type.
6894
6895         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6896
6897         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6898         to their natural alignment to avoid store forwarding stalls.
6899
6900 2008-03-22  Richard Guenther  <rguenther@suse.de>
6901
6902         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6903         For PHI nodes verify the address is invariant.
6904         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6905         (get_symbol_constant_value): Use is_gimple_min_invariant.
6906         (maybe_fold_stmt_indirect): Likewise.
6907
6908 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6909
6910         PR rtl-optimization/33927
6911         * Makefile.in (dse.o): Depend on $(TM_P_H).
6912         * expr.h (extract_low_bits): Declare.
6913         * expmed.c (extract_low_bits): New function.
6914         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6915         * dse.c: Include tm_p.h.
6916         (find_shift_sequence): Remove the read_reg argument and return the
6917         read value.  Emit the instructions instead of returning them.
6918         Iterate on new_mode rather than calculating it each time.
6919         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6920         source to NEW_MODE and extract_low_bits to convert the shifted
6921         value to READ_MODE.
6922         (replace_read): Allow the load and store to have different mode
6923         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6924         or extraction instructions before trying the replacement.  Update
6925         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6926
6927 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6928
6929         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6930         to their natural alignment to avoid store forwarding stalls.
6931
6932 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6933
6934         PR target/27946
6935         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6936         encouraging but not allowing gprs for input;
6937         change the input constraint to !f#r.
6938         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6939         gprs for output;
6940         change the output constraint to !f#r.
6941
6942 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6943
6944         PR target/13958
6945         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6946         corresponding post-reload splitters.
6947         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6948         when x87 FP math is selected.
6949         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6950         New function prototype.
6951         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6952         unreachable function to ease macroization of insn patterns.
6953
6954 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6955
6956         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6957         reference dumps if ddr is NULL or dependence is unknown.
6958
6959 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6960
6961         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6962         unsigned extension into account.
6963         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6964         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6965         Do computations on a scratch register.
6966
6967 2008-03-21  Richard Guenther  <rguenther@suse.de>
6968
6969         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6970         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6971         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6972         * tree-ssa-dom.c (record_equality): Likewise.
6973         * tree-inline.c (copy_body_r): Likewise.
6974         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6975         TREE_INVARIANT.
6976
6977 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6978
6979         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6980         as 'delete_unused' argument.
6981
6982 2008-03-20  Richard Guenther  <rguenther@suse.de>
6983
6984         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6985         special casing of constant qualifiers.
6986         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6987         care about them in general.
6988         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6989         regardless of their type.
6990         (fold_stmt_r): Forcefully fold *& if we end up with that.
6991
6992 2008-03-20  Paul Brook  <paul@codesourcery.com>
6993
6994         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6995         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6996         linker flags.
6997         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6998         definition.
6999         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7000         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7001
7002 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7003
7004         * common.opt (Wmudflap): New option.
7005         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7006         (mx_register_decls): Likewise.
7007         (mudflap_finish_file): Likewise.
7008         * doc/invoke.texi: Document -Wno-mudflap.
7009
7010 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7011
7012         * c-format.c (replace_format_name_to_system_name): New.
7013         (cmp_attribs): New.
7014         (convert_format_name_to_system_name): New.
7015         (decode_format_attr): Add use of convert_format_name_to_system_name.
7016         (format_types_orig): Add gnu_ prefix to names.
7017         (check_format_info_main): Special treating of \0 escaped names for
7018         supporting multi-character format specifiers as I32, I64.
7019         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7020         (gnu_target_overrides_format_attributes): New.
7021         * c-format.h: Add structure target_ovr_attr to hold
7022         system specific formatter names.
7023         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7024         msformat-c.o file to c_target_objs and cxx_target_objs.
7025         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7026         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7027         (TARGET_N_FORMAT_TYPES): New.
7028         * config/i386/msformat-c.c: New.
7029         * config/i386/t-cygming: Add build rule for msformat-c.o.
7030         * doc/extend.texi: Add new format names gnu_* and ms_* and
7031         further details.
7032         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7033
7034 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7035
7036         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7037         optimizations turned on under -O3.
7038         (ftree-vectorize): Add that the flag is turned on with -O3.
7039
7040 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7041
7042         * regmove.c (try_auto_increment): Fix spelling error in comment.
7043         * final.c (final_scan_insn): Likewise.
7044
7045 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7046
7047         PR target/14552
7048         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7049         allocator preferences for "y" and "r" class registers.
7050         ("*mov<mode>_internal"): Ditto.
7051         ("*movv2sf_internal_rex64"): Ditto.
7052         ("*movv2sf_internal"): Ditto.
7053
7054 2008-03-19  Michael Matz  <matz@suse.de>
7055
7056         PR middle-end/35616
7057         * calls.c (expand_call): Check overlap of arguments with call
7058         address for sibcalls.
7059
7060 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7061
7062         PR target/35496
7063         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7064         of the underlying type of a MS bitfield layout to the natural
7065         alignment of the type.
7066
7067 2008-03-19  Jan Hubicka  <jh@suse.cz>
7068
7069         PR other/35094
7070         * toplev.c (decode_d_option): Handle all CPP flags.
7071         * tree-vrp.c: Update tree_pass descriptors.
7072         * regrename.c: Update tree_pass descriptors.
7073         * fwprop.c: Update tree_pass descriptors.
7074         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7075         * tree-into-ssa.c: Update tree_pass descriptors.
7076         * tree-dump.c: Update tree_pass descriptors.
7077         * tree-complex.c: Update tree_pass descriptors.
7078         * tree-dump.h: Update tree_pass descriptors.
7079         * see.c: Update tree_pass descriptors.
7080         * cgraphbuild.c: Update tree_pass descriptors.
7081         * tracer.c: Update tree_pass descriptors.
7082         * tree-loop-distribution.c: Update tree_pass descriptors.
7083         * cgraph.c: Update tree_pass descriptors.
7084         * postreload-gcse.c: Update tree_pass descriptors.
7085         * postreload.c: Update tree_pass descriptors.
7086         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7087         * tree-tailcall.c: Update tree_pass descriptors.
7088         * tree-pass.h (tree_opt_pass): Rename to ...
7089         (opt_pass) ... this one; add "type" field and remove letter field.
7090         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7091         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7092         all_lowering_passes): Update declaration.
7093         * ipa-cp.c: Update tree_pass descriptors.
7094         * final.c: Update tree_pass descriptors.
7095         * omp-low.c: Update tree_pass descriptors.
7096         * tree-ssa-dse.c: Update tree_pass descriptors.
7097         * ipa-reference.c: Update tree_pass descriptors.
7098         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7099         * auto-inc-dec.c: Update tree_pass descriptors.
7100         * reorg.c: Update tree_pass descriptors.
7101         * cgraphunit.c: Update tree_pass descriptors.
7102         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7103         * tree-ssa-ccp.c: Update tree_pass descriptors.
7104         * df-core.c: Update tree_pass descriptors.
7105         * mode-switching.c: Update tree_pass descriptors.
7106         * tree-nomudflap.c: Update tree_pass descriptors.
7107         * modulo-sched.c: Update tree_pass descriptors.
7108         * ipa-pure-const.c: Update tree_pass descriptors.
7109         * cse.c: Update tree_pass descriptors.
7110         * web.c: Update tree_pass descriptors.
7111         * tree-stdarg.c: Update tree_pass descriptors.
7112         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7113         * tree-ssa-dom.c: Update tree_pass descriptors.
7114         * tree-nrv.c: Update tree_pass descriptors.
7115         * tree-ssa-alias.c: Update tree_pass descriptors.
7116         * loop-init.c: Update tree_pass descriptors.
7117         * gimple-low.c: Update tree_pass descriptors.
7118         * ipa-inline.c: Update tree_pass descriptors.
7119         * tree-ssa-sink.c: Update tree_pass descriptors.
7120         * global.c: Update tree_pass descriptors.
7121         * ifcvt.c: Update tree_pass descriptors.
7122         * jump.c: Update tree_pass descriptors.
7123         * predict.c: Update tree_pass descriptors.
7124         * tree-ssa-loop.c: Update tree_pass descriptors.
7125         * recog.c: Update tree_pass descriptors.
7126         * dse.c: Update tree_pass descriptors.
7127         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7128         * tree-eh.c: Update tree_pass descriptors.
7129         * regmove.c: Update tree_pass descriptors.
7130         * local-alloc.c
7131         * function.c: Update tree_pass descriptors.
7132         * tree-vectorizer.c: Update tree_pass descriptors.
7133         * gcse.c: Update tree_pass descriptors.
7134         * ipa-type-escape.c: Update tree_pass descriptors.
7135         * tree-if-conv.c: Update tree_pass descriptors.
7136         * init-regs.c: Update tree_pass descriptors.
7137         * ipa.c: Update tree_pass descriptors.
7138         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7139         * rtl-factoring.c: Update tree_pass descriptors.
7140         * lower-subreg.c: Update tree_pass descriptors.
7141         * bt-load.c: Update tree_pass descriptors.
7142         * tree-dfa.c: Update tree_pass descriptors.
7143         * except.c: Update tree_pass descriptors.
7144         * emit-rtl.c: Update tree_pass descriptors.
7145         * cfgexpand.c: Update tree_pass descriptors.
7146         * tree-cfgcleanup.c: Update tree_pass descriptors.
7147         * cfgcleanup.c: Update tree_pass descriptors.
7148         * tree-ssa-pre.c: Update tree_pass descriptors.
7149         * tree-sra.c: Update tree_pass descriptors.
7150         * tree-mudflap.c: Update tree_pass descriptors.
7151         * tree-ssa-copy.c: Update tree_pass descriptors.
7152         * cfglayout.c: Update tree_pass descriptors.
7153         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7154         * tree-ssa-dce.c: Update tree_pass descriptors.
7155         * tree-ssa.c: Update tree_pass descriptors.
7156         * regclass.c: Update tree_pass descriptors.
7157         * integrate.c: Update tree_pass descriptors.
7158         * tree-optimize.c: Update tree_pass descriptors.
7159         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7160         * tree-object-size.c: Update tree_pass descriptors.
7161         * combine.c: Update tree_pass descriptors.
7162         * tree-outof-ssa.c: Update tree_pass descriptors.
7163         * bb-reorder.c: Update tree_pass descriptors.
7164         * stack-ptr-mod.c: Update tree_pass descriptors.
7165         * var-tracking.c: Update tree_pass descriptors.
7166         * tree-profile.c: Update tree_pass descriptors.
7167         * tree-vect-generic.c: Update tree_pass descriptors.
7168         * reg-stack.c: Update tree_pass descriptors.
7169         * sched-rgn.c: Update tree_pass descriptors.
7170         * tree-ssa-structalias.c: Update tree_pass descriptors.
7171         * tree-cfg.c: Update tree_pass descriptors.
7172         * passes.c (current_pass): Update declaration.
7173         (finish_optimization_passes): Update.
7174         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7175         (register_one_dump_file, register_dump_files_1, next_pass_1):
7176         Update arguments.
7177         (init_optimization_passes): Update handling of new types.
7178         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7179         * ipa-struct-reorg.c: Update tree_pass descriptors.
7180         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7181         * combine-stack-adj.c: Update tree_pass descriptors.
7182         * cfgrtl.c: Update tree_pass descriptors.
7183         * dce.c: Update tree_pass descriptors.
7184         * tree-ssanames.c: Update tree_pass descriptors.
7185
7186 2008-03-19  Richard Guenther  <rguenther@suse.de>
7187
7188         PR middle-end/35609
7189         * tree-ssa.c (walk_data): New structure.
7190         (warn_uninitialized_var): If not always_executed warn with "maybe"
7191         instead of "is".
7192         (execute_early_warn_uninitialized): Compute post-dominators.
7193         Initialize always_executed before processing each basic block.
7194
7195 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7196
7197         PR target/35504
7198         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7199         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7200
7201 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7202
7203         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7204
7205 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7206
7207         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7208         is true.
7209         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7210         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7211         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7212         target after ignore has been set, and move there also the commputation
7213         of subtarget and original_target.
7214         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7215         (LANG_HOOKS_INITIALIZER): Remove it.
7216         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7217
7218 2008-03-18  Richard Guenther  <rguenther@suse.de>
7219
7220         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7221         found an expression with constants, note that in the VN for the lhs.
7222         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7223         fold them to constants if possible.  Run cleanup_cfg if done so.
7224         (execute_pre): Return todo.
7225         (do_pre): Likewise.
7226         (execute_fre): Likewise.
7227         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7228         of constants.
7229         (get_prop_source_stmt): Look through pointer conversions.
7230
7231 2008-03-18  Jan Hubicka  <jh@suse.cz>
7232
7233         * tree-pretty-print.c: Include predict.h.
7234         (dump_generic_node): Dump predictor.
7235         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7236         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7237         * gimple-low.c (lower_stmt): Likewise.
7238         * expr.c (expand_expr_real): Likewise.
7239         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7240         them.
7241         (build_predict_expr, build_predict_expr): New.
7242         * predict.h (predictor_name, build_predict_expr): Update.
7243         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7244         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7245         * predict.def (PRED_CONTINUE): Update hitrate.
7246         * tree.def (PREDICT_EXPR): Define.
7247         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7248         do not handle BIND_EXPR.
7249         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7250         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7251         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7252         operands.
7253
7254 2008-03-18  Michael Matz  <matz@suse.de>
7255
7256         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7257
7258 2008-03-18  Richard Guenther  <rguenther@suse.de>
7259
7260         * tree-gimple.h (is_gimple_invariant_address): Declare.
7261         (is_gimple_constant): Likewise.
7262         * tree-gimple.c (is_gimple_constant): New function.
7263         (is_gimple_invariant_address): Likewise.
7264         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7265         and is_gimple_invariant_address.
7266         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7267         previous change.
7268         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7269         an addressable base.
7270
7271 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7272
7273         PR middle-end/35611
7274         * gimplify.c (gimplify_expr): Gimplify second operand of
7275         OMP_ATOMIC_LOAD.
7276
7277 2008-03-17  Richard Guenther  <rguenther@suse.de>
7278
7279         PR tree-optimization/19637
7280         * fold-const.c (fold_unary): Remove restrictions of removing
7281         intermediate pointer-conversions (P2)(P1)P0.
7282         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7283         conversion to void pointer.
7284         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7285
7286 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7287
7288         PR debug/31510
7289         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7290         emulated thread local variables.
7291
7292 2008-03-16  Richard Guenther  <rguenther@suse.de>
7293
7294         PR middle-end/35607
7295         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7296         expand TREE_INVARIANT operations that are not gimple invariant.
7297
7298 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7299
7300         * doc/extend.texi (Alignment): Say that the ABI controls
7301         the __alignof__ for non-strict-alignment targets rather
7302         than being a recommendation.
7303
7304 2008-03-15  Paul Brook  <paul@codesourcery.com>
7305
7306         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7307         annotations.
7308         (arm_output_fn_unwind): Mark functions that can not be unwound.
7309
7310 2008-03-15  Paul Brook  <paul@codesourcery.com>
7311
7312         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7313         extension instructions.
7314
7315 2008-03-15  Richard Guenther  <rguenther@suse.de>
7316
7317         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7318         and fold constant aggregate refs.
7319         (fold_const_aggregate_ref): Handle string constants
7320         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7321         (evaluate_stmt): Simplify now that ccp_fold folds constant
7322         aggregate refs.
7323
7324 2008-03-15  Paul Brook  <paul@codesourcery.com>
7325
7326         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7327         (extzv): Use gen_extzv_t2.
7328         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7329
7330 2008-03-15  Richard Guenther  <rguenther@suse.de>
7331
7332         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7333         (fold_const_aggregate_ref): Likewise.
7334         (get_value): Return NULL if we don't have any values.
7335         (ccp_finalize): Set const_val to NULL after freeing it.
7336         * tree-flow.h (get_symbol_constant_value): Declare.
7337         (fold_const_aggregate_ref): Likewise.
7338         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7339
7340 2008-03-15  Richard Guenther  <rguenther@suse.de>
7341
7342         PR middle-end/35593
7343         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7344         to not produce negative array indices if not allowed.  Add
7345         parameter to indicate that.
7346         (maybe_fold_offset_to_component_ref): Allow negative array
7347         indices only for the first member of a structure.
7348         (maybe_fold_offset_to_reference): Allow negative array indices.
7349         (maybe_fold_stmt_addition): Likewise.
7350
7351 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7352             Anatoly Sokolov <aesok@post.ru>
7353
7354         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7355         (avr_arch): Add ARCH_AVR6.
7356         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7357         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7358         instead of fixed value 2.
7359         (print_operand_address): Use gs() asm specifier instead of pm().
7360         (avr_assemble_integer): (Ditto.).
7361         (avr_output_addr_vec_elt): (Ditto.).
7362         (print_operand): Handle "!" code.
7363         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7364         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7365         (AVR_HAVE_EIJMP_EICALL): Define.
7366         (AVR_3_BYTE_PC): Redefine.
7367         (AVR_2_BYTE_PC): (Ditto.).
7368         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7369         (LINK_SPEC): Add atmega2560 and atmega2561.
7370         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7371         (crtm2561.o).
7372         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7373         for 3 byte PC devices.
7374         (call_value_insn): (Ditto.).
7375         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7376         (indirect_jump): Use only for for 2 byte PC devices.
7377         (*tablejump): (Ditto.).
7378         (*indirect_jump_avr6): Add insn.
7379         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7380         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7381         instead of ijmp for 3 byte PC devices.
7382         (__tablejump2__): (Ditto.).
7383         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7384         (MULITLIB_DIRNAMES): (Ditto.). 
7385         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7386
7387 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7388
7389         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7390         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7391         ("mmx_psadbw"): Use V1DI mode for operand 0.
7392         * config/i386/i386-modes.def (V1SI): New vector mode.
7393         * config/i386/i386.c (struct builtin_description)
7394         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7395         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7396         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7397         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7398         v1di_ftype_v8qi_v8qi type.
7399         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7400
7401         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7402         __builtin_ia32_pmuludq]: Fix the mode of return value.
7403
7404 2008-03-15  Richard Guenther  <rguenther@suse.de>
7405
7406         PR middle-end/35595
7407         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7408         being a PHI_NODE.
7409
7410 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7411         
7412         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7413         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7414         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7415         unless TARGET_SERIALIZE_VOLATILE is enabled.
7416         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7417         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7418         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7419
7420 2008-03-14  Richard Guenther  <rguenther@suse.de>
7421
7422         PR tree-optimization/34172
7423         * tree-flow.h (refs_may_alias_p): Declare.
7424         (get_single_def_stmt): Likewise.
7425         (get_single_def_stmt_from_phi): Likewise.
7426         (get_single_def_stmt_with_phi): Likewise.
7427         * tree-dfa.c (refs_may_alias_p): New function.
7428         (get_single_def_stmt): Likewise.
7429         (get_single_def_stmt_from_phi): Likewise.
7430         (get_single_def_stmt_with_phi): Likewise.
7431         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7432         (vn_reference_lookup_1): New helper function.
7433         (vn_reference_lookup): Walk the virtual use-def chain to
7434         continue searching for a match if the def does not alias the
7435         reference we are looking for.
7436
7437 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7438
7439         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7440         archive and Perzl.  Update The Written Word listing.
7441
7442 2008-03-14  Richard Guenther  <rguenther@suse.de>
7443
7444         PR tree-optimization/34043
7445         PR tree-optimization/33989
7446         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7447         when doing FRE.
7448         (bitmap_find_leader): Use extra argument to verify dominance
7449         relationship inside a basic-block.
7450         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7451         (find_leader_in_sets): Adjust.
7452         (create_component_ref_by_pieces): Take extra argument for
7453         dominance check, handle lookup failures.
7454         (find_or_generate_expression): Likewise.
7455         (create_expression_by_pieces): Likewise.
7456         (insert_into_preds_of_block): Adjust.
7457         (create_value_expr_from): If asked for, verify all operands
7458         are in the blocks AVAIL_OUT set.
7459         (make_values_for_stmt): Check for SSA_NAMEs that are life
7460         over an abnormal edge.
7461         (compute_avail): Remove such check.
7462         (do_SCCVN_insertion): New function.
7463         (eliminate): If we do not find a leader suitable for replacement
7464         insert a replacement expression from SCCVN if available.
7465         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7466         (struct vn_ssa_aux): Add needs_insertion flag.
7467         * tree-ssa-sccvn.c (may_insert): New global flag.
7468         (copy_reference_ops_from_ref): Value-number union member access
7469         based on its size, not type and member if insertion is allowed.
7470         (visit_reference_op_load): For a weak match from union type
7471         punning lookup a view-converted value and insert a SSA_NAME
7472         for that value if that is not found.
7473         (visit_use): Make dumps shorter.  Do not disallow value numbering
7474         SSA_NAMEs that are life over an abnormal edge to constants.
7475         (free_scc_vn): Release inserted SSA_NAMEs.
7476         (run_scc_vn): New flag to specify whether insertion is allowed.
7477         Process SSA_NAMEs in forward order.
7478         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7479         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7480         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7481         pointer type to/from integral types that do not change the
7482         precision to regular conversions.
7483
7484 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7485
7486         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7487         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7488         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7489         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7490         input arguments and the mode of return value.  Built-in functions
7491         that operate on whole 64-bit MMX register now use V1DI mode.
7492
7493 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7494             Olga Golovanevsky  <olga@il.ibm.com>
7495
7496         PR tree-optimization/35041
7497         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7498         to locate the right position in a statement.
7499
7500 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7501
7502         PR target/34000
7503         PR target/35553
7504         * config/i386/xmmintrin.h:  Change all static inline functions to
7505         extern inline and add __gnu_inline__ attribute.
7506         * config/i386/bmintrin.h: Ditto.
7507         * config/i386/smmintrin.h: Ditto.
7508         * config/i386/tmmintrin.h: Ditto.
7509         * config/i386/mmintrin-common.h: Ditto.
7510         * config/i386/ammintrin.h: Ditto.
7511         * config/i386/emmintrin.h: Ditto.
7512         * config/i386/pmmintrin.h: Ditto.
7513         * config/i386/mmintrin.h: Ditto.
7514         * config/i386/mm3dnow.h: Ditto.
7515
7516 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7517
7518         PR middle-end/35185
7519         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7520         (lower_omp_2): New function.
7521         (lower_omp_1, lower_omp): Rewritten.
7522
7523 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7524
7525         PR 35054
7526         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7527         with the phrase "Microsoft Windows compilers".
7528         (Push/Pop Macro Pragmas): New subsection. Document
7529         #pragma push_macro and pragma pop_macro.
7530
7531 2008-03-12  Paul Brook  <paul@codesourcery.com>
7532
7533         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7534
7535 2008-03-12  Paul Brook  <paul@codesourcery.com>
7536
7537         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7538         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7539         (thumb2_addsi_shortim): Rename ...
7540         (thumb2_addsi_short): ... to this.  Allow register operands.
7541         (thumb2_subsi_short): New pattern.
7542         (thumb2_one_cmplsi2_short,
7543         thumb2_negsi2_short): New patterns and peepholes.
7544
7545 2008-03-12  Paul Brook  <paul@codesourcery.com>
7546
7547         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7548
7549 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7550
7551         * config/i386/i386.md (int_cond): New code iterator.
7552         (fp_cond): Ditto.
7553         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7554         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7555         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7556         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7557         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7558         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7559         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7560         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7561
7562 2008-03-12  Paul Brook  <paul@codesourcery.com>
7563
7564         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7565         instead of {arm,thumb}_compute_save_reg_mask.
7566         (output_return_instruction): Ditto.
7567         (thumb_unexpanded_epilogue): Ditto.
7568         (thumb1_expand_prologue): Ditto.
7569         (thumb1_output_function_prologue): Ditto.
7570         (arm_set_return_address): Ditto.
7571         (thumb_set_return_address): Ditto.
7572         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7573         regs to achieve stack alignment.
7574         (thumb1_compute_save_reg_mask): Fix compiler warning.
7575         (arm_output_epilogue): Use offsets->saved_regs_mask.
7576         Adjust stack pointer by poping call clobered registers.
7577         (arm_expand_prologue): Use offsets->saved_regs_mask.
7578         Adjust stack pointer by pushing extra registers.
7579         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7580
7581 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7582
7583         PR tree-opt/35422
7584         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7585         conversion to the operands of a multiplication.
7586
7587 2008-03-12  Richard Guenther  <rguenther@suse.de>
7588
7589         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7590         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7591         * timevar.def (TV_TREE_PHIPROP): Add.
7592         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7593         pass description.  Use TV_TREE_PHIPROP.
7594         * tree-ssa-forwprop.c: Remove phiprop code.
7595
7596 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7597
7598         PR middle-end/35549
7599         * omp-low.c (maybe_lookup_decl): Constify first argument.
7600         (use_pointer_for_field): Change last argument from bool to
7601         omp_context *.  Disallow shared copy-in/out in nested
7602         parallel if decl is shared in outer parallel too.
7603         (build_outer_var_ref, scan_sharing_clauses,
7604         lower_rec_input_clauses, lower_copyprivate_clauses,
7605         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7606
7607 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7608             Ira Rosen  <irar@il.ibm.com>
7609
7610         * tree-vectorizer.c (free_stmt_vec_info): New function.
7611         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7612         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7613         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7614         * tree-vect-transform.c (vectorizable_conversion): Free
7615         vec_oprnds0 if it was allocated.
7616         (vect_permute_store_chain): Remove unused VECs.
7617         (vectorizable_store): Free VECs that are allocated in the..
7618         function.
7619         (vect_transform_strided_load, vectorizable_load): Likewise.
7620         (vect_remove_stores): Simplify the code.
7621         (vect_transform_loop): Move code to vect_remove_stores().
7622         Call vect_remove_stores() and free_stmt_vec_info().
7623
7624 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7625
7626         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7627         TARGET_HPUX.  Revise comment.
7628         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7629         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7630         Use sr4 variant of `be' instruction when not generating PIC code.
7631         (attr_length_call): Adjust for above change.
7632
7633 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7634
7635         * ipa-reference.c (static_execute): Remove module_statics_const and
7636         associated setting code.
7637
7638 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7639
7640         PR target/35540
7641         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7642         predicate for operand 1.
7643         (paritysi2_cmp): Use register_operand predicate for operand 2.
7644         Use earlyclobber modifier for operand 1.  Remove support for
7645         memory operands.
7646         (paritydi2_cmp): Use register_operand predicate for operand 3.
7647         Use earlyclobber modifier for operand 1.  Remove support for
7648         memory operands.
7649
7650 2008-03-11  Paul Brook  <paul@codesourcery.com>
7651             Vladimir Prus  <vladimir@codesourcery.com>
7652
7653         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7654         (arm_compute_save_reg0_reg12_mask): Always
7655         check if register 11 must be saved.  Always safe hard frame pointer
7656         when frame_pointer_needeed.
7657         (arm_compute_save_reg_mask): Save IP and PC
7658         only with apcs frames.
7659         (arm_output_epilogue): Adjust Thumb2 codepath to
7660         be also invoked and work for ARM non-apcs frames.
7661         (arm_expand_prologue): Don't bother saving IP
7662         for non-apcs frame, since it's not clobbered by
7663         prologue code.  Implement non-apcs frame
7664         layout.
7665
7666 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7667
7668         PR rtl-optimization/35281
7669         * expr.c (convert_move): Use a new pseudo for the intermediate
7670         from_mode->word_mode result.
7671
7672 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7673
7674         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7675         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7676         * toplev.c (compile_file): Don't call it.
7677
7678 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7679
7680         PR middle-end/35526
7681         * expr.c (store_expr): Call emit_block_move if the mode
7682         of "temp" RTX is BLKmode.
7683
7684 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7685             Richard Guenther  <rguenther@suse.de>
7686
7687         PR tree-optimization/31358
7688         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7689         the step with a NULL_TREE.
7690         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7691         to sizetype if type is a pointer type.
7692         (add_candidate_1): Don't convert the base and step to
7693         the generic type if the orginal type is a pointer type.
7694         (add_iv_value_candidates): Use sizetype for the step
7695         if type is a pointer type.
7696         (cand_value_at): Likewise.
7697         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7698         for pointer types.
7699         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7700         Don't convert the tem affine to the type.
7701         (add_elt_to_tree): Use sizetype for the step if a pointer.
7702         Use POINTER_PLUS_EXPR for pointers.
7703         (aff_combination_to_tree): Use sizetype for the step if a
7704         pointer.
7705
7706 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7707
7708         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7709         Remove commutativity hint.
7710
7711 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7712
7713         PR c/35438
7714         PR c/35439
7715         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7716         errorneous type.  Check that v is a VAR_DECL.
7717
7718         PR middle-end/35099
7719         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7720
7721 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7722
7723         PR tree-optimization/35494
7724         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7725         may be overriden at link and run time.
7726
7727 2008-03-10  Richard Guenther  <rguenther@suse.de>
7728
7729         PR tree-optimization/34677
7730         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7731         (poolify_tree): Likewise.
7732         (modify_expr_template): Likewise.
7733         (poolify_modify_stmt): Likewise.
7734         (insert_fake_stores): Handle all component-ref style stores
7735         in addition to INDIRECT_REF.  Also handle complex types.
7736         Do not poolify the inserted load.
7737         (realify_fake_stores): Do not rebuild the tree but only
7738         make it a SSA_NAME copy.
7739         (init_pre): Remove initialzation of modify_expr_template.
7740         Do not allocate modify_expr_node_pool.
7741         (fini_pre): Do not free modify_expr_node_pool.
7742
7743 2008-03-10  Paul Brook  <paul@codesourcery.com>
7744
7745         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7746         to avoid conflicts.
7747
7748 2008-03-10  Paul Brook  <paul@codesourcery.com>
7749             Mark Shinwell  <shinwell@codesourcery.com>
7750
7751         * config/arm/cortex-r4.md: New.
7752         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7753         insn attributes.
7754         * config/arm/arm.md: Include cortex-r4.md.
7755         (insn): Add smmls, sdiv and udiv values.
7756         (generic_sched): Don't use generic scheduling for Cortex-R4.
7757         (arm_issue_rate): New function.
7758         (TARGET_SCHED_ISSUE_RATE): Define.
7759
7760 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7761
7762         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7763
7764 2008-03-10  Richard Guenther  <rguenther@suse.de>
7765
7766         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7767         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7768
7769 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7770
7771         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7772         Set default to true.
7773
7774 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7775
7776         * c.opt (Wsynth): Deprecate.
7777         * doc/invoke.texi (Option Summary, Warning Options): Document
7778         -Wno-format-contains-nul.
7779
7780 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7781
7782         PR target/35496
7783         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7784         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7785
7786 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7787
7788         * config/rs6000/rs6000.c (builtin_description): Rename vector
7789         left shift operations.
7790         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7791         (altivec_vsl<VI_char>): Rename to ...
7792         (ashl<mode>3): ... new name.
7793         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7794         gen_ashlv4si3.
7795         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7796
7797 2008-03-08  Richard Guenther  <rguenther@suse.de>
7798
7799         * coverage.h (tree_coverage_counter_addr): Declare.
7800         * coverage.c (tree_coverage_counter_addr): New function.
7801         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7802         before using again.
7803         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7804         (tree_gen_one_value_profiler): Likewise.
7805         (tree_gen_ic_profiler): Likewise.
7806         (tree_gen_average_profiler): Likewise.
7807         (tree_gen_ior_profiler): Likewise.
7808
7809 2008-03-08  Richard Guenther  <rguenther@suse.de>
7810
7811         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7812         (vn_binary_op_insert): Likewise.
7813         (vn_unary_op_lookup): Likewise.
7814         (vn_unary_op_insert): Likewise.
7815         (vn_nary_op_lookup): Declare.
7816         (vn_nary_op_insert): Likewise.
7817         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7818         and binary hashes, use a single obstack for unary_op_pool
7819         and binary_op_pool.
7820         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7821         a single struct vn_nary_op_s.  Store tree code length and
7822         a variable number of operands.
7823         (struct vn_reference_op_struct): Remove unused op2.
7824         (vn_reference_op_eq): Do not compare op2.
7825         (vn_reference_op_compute_hash): Do not compute hash of op2.
7826         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7827         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7828         with vn_nary_op_compute_hash.
7829         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7830         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7831         vn_nary_op_lookup.
7832         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7833         vn_nary_op_insert.
7834         (visit_unary_op): Call nary functions.
7835         (visit_binary_op): Likewise.
7836         (process_scc): Adjust for struct vn_tables_s changes.
7837         (allocate_vn_table): Likewise.
7838         (free_vn_table): Likewise.
7839         * tree-vn.c (vn_add): Call nary functions.
7840         (vn_lookup): Likewise.
7841
7842 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7843
7844         PR target/35498
7845         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7846         wdst back after sync_compare_and_swapqhi_internal.
7847
7848 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7849
7850         PR target/22152
7851         * config/i386/i386-modes.def (V1DI): New vector mode.
7852         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7853         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7854         (MMXMODE248): Ditto.
7855         (MMXMODE): Add V1DI mode.
7856         (mmxvecsize): Change DI mode to V1DI mode.
7857         ("mov<mode>): Use MMXMODEI8 mode iterator.
7858         ("*mov<mode>_internal_rex64"): Ditto.
7859         ("*mov<mode>_internal"): Ditto.
7860         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7861         ("mmx_sub<mode>3"): Ditto.
7862         ("mmx_adddi3"): Remove insn pattern.
7863         ("mmx_subdi3"): Ditto.
7864         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7865         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7866         ("mmx_ashl<mode>3"): Ditto.
7867         ("mmx_lshrdi3"): Remove insn pattern.
7868         ("mmx_ashldi3"): Ditto.
7869         * config/i386/i386.c (classify_argument): Handle V1DImode.
7870         (function_arg_advance_32): Ditto.
7871         (function_arg_32): Ditto.
7872         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7873         mmx_addv1di3 insn pattern.
7874         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7875         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7876         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7877         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7878         Remove definitions of built-in functions.
7879         (V1DI_type_node): New node.
7880         (v1di_ftype_v1di_int): Ditto.
7881         (v1di_ftype_v1di_v1di): Ditto.
7882         (v2si_ftype_v2si_si): Ditto.
7883         (v4hi_ftype_v4hi_di): Remove node.
7884         (v2si_ftype_v2si_di): Ditto.
7885         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7886         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7887         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7888         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7889         Add new builtins using def_builtin_const.
7890         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7891         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7892         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7893         * config/i386/mmintrin.h (__v1di): New typedef.
7894         (_mm_add_si64): Cast arguments to __v1di type.
7895         (_mm_sub_si64): Ditto.
7896         (_mm_sll_pi16): Cast __count to __v4hi type.
7897         (_mm_sll_pi32): Cast __count to __v2si type.
7898         (_mm_sll_si64): Cast arguments to __v1di type.
7899         (_mm_srl_pi16): Cast __count to __v4hi type.
7900         (_mm_srl_pi32): Cast __count to __v2si type.
7901         (_mm_srl_si64): Cast arguments to __v1di type.
7902         (_mm_sra_pi16): Cast __count to __v4hi type.
7903         (_mm_sra_pi32): Cast __count to __v2si type.
7904         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7905         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7906         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7907         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7908         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7909         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7910         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7911         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7912         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7913         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7914         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7915         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7916
7917 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7918
7919         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7920
7921 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7922
7923         PR target/35373
7924         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7925         reg+const addressing for Altivec modes.  Don't generate reg+reg
7926         addressing for TFmode or TDmode quantities.
7927
7928 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7929
7930         * c-common.c (vector_types_convertible_p): Call langhook
7931         instead of comptypes.
7932
7933 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7934
7935         PR tree-opt/35402
7936         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7937         integral and scalar float variables which have a
7938         NULL DECL_INITIAL.
7939
7940 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7941
7942         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7943         dwarf_register_span hook when emitting unwind information for
7944         register-to-memory saves.
7945         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7946         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7947
7948 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7949
7950         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7951         for the same VAR_DECL.
7952
7953 2008-03-06  Tom Tromey  <tromey@redhat.com>
7954
7955         * treelang: Delete.
7956         * doc/standards.texi (Standards): Don't mention treelang.
7957         * doc/invoke.texi (Overall Options): Don't mention treelang.
7958         * doc/install.texi (Prerequisites): Don't mention bison or
7959         treelang.
7960         (Configuration): Don't mention treelang.
7961         (Building): Likewise.
7962         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7963
7964 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7965
7966         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7967         word-extractions out of a multi-word object.
7968
7969 2008-03-06  Richard Guenther  <rguenther@suse.de>
7970
7971         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7972         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7973         result type and precision.
7974         * expr.c (get_inner_reference): Set unsignedp based on the result
7975         type of BIT_FIELD_REF.
7976         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7977         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7978         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7979         for BIT_FIELD_REF.
7980         (sra_build_assignment): Likewise.
7981         (sra_build_elt_assignment): Likewise.
7982         (sra_explode_bitfield_assignment): Likewise.
7983         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7984         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7985         set BIT_FIELD_REF_UNSIGNED.
7986         (vectorizable_load): Likewise.
7987
7988 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7989
7990         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7991         at bb start.
7992
7993 2008-03-06  Richard Guenther  <rguenther@suse.de>
7994
7995         * alias.c (struct alias_set_entry): Move has_zero_child field
7996         to pack with alias_set.
7997
7998 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7999
8000         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8001         32bit host.
8002
8003 2008-03-05  Ian Lance Taylor  <iant@google.com>
8004
8005         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8006
8007 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8008
8009         * fwprop.c (update_df): Support width and offset parameters of
8010         df_ref_create.
8011         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8012         global_conflicts): Change DF_REF_EXTRACT to either
8013         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8014         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8015         * df-scan.c (df_ref_record, df_defs_record,
8016         df_ref_create_structure, df_def_record_1, df_uses_record,
8017         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8018         df_bb_refs_collect, df_entry_block_defs_collect,
8019         df_exit_block_uses_collect): Support new width and offset fields.
8020         (ref_extract_pool): New storage pool.
8021         (df_free_ref): New function.
8022         (df_reg_chain_unlink, df_free_collection_rec,
8023         df_sort_and_compress_refs): Call df_free_ref.
8024         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8025         of df_ref_extract.
8026         (df_ref_create_structure): Allocate df_ref_extract if offset and
8027         width fields are used.
8028         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8029         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8030         and SIGN_EXTRACT.
8031         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8032         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8033         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8034         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8035         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8036         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8037         (df_ref_extract): New structure.
8038         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8039         (df_ref_create): Add width and offset parameters.
8040         
8041 2008-03-05  Richard Guenther  <rguenther@suse.de>
8042
8043         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8044         Use ranges_overlap_p.
8045         (offset_overlaps_with_access): Rename
8046         to ranges_overlap_p and move ...
8047         * tree-flow-inline.h (ranges_overlap_p): ... here.
8048
8049         * tree.h (get_inner_reference, handled_component_p): Update
8050         comments.
8051
8052         * tree.h (record_component_aliases, get_alias_set,
8053         alias_sets_conflict_p, alias_sets_must_conflict_p,
8054         objects_must_conflict_p): Move declarations ...
8055         * alias.h (record_component_aliases, get_alias_set,
8056         alias_sets_conflict_p, alias_sets_must_conflict_p,
8057         objects_must_conflict_p): ... here.
8058         Include coretypes.h.
8059         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8060
8061 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8062
8063         * cfg.c: Include tree-flow.h.
8064         (remove_edge_raw): Call redirect_edge_var_map_clear.
8065         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8066         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8067         (redirect_edge_var_map_result): New.
8068         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8069         PENDING_STMT use with redirect_edge_var_map_*.
8070         * tree-ssa.c (edge_var_maps): New definition.
8071         (redirect_edge_var_map_add): New.
8072         (redirect_edge_var_map_clear): New.
8073         (redirect_edge_var_map_dup): New.
8074         (redirect_edge_var_map_vector): New.
8075         (redirect_edge_var_map_destroy): New.
8076         (ssa_redirect_edge): Replace PENDING_STMT use with
8077         redirect_edge_var_map_*.
8078         (flush_pending_stmts): Same.
8079         (delete_tree_ssa): Destroy edge var map.
8080         * tree-flow.h (struct _edge_var_map): New.
8081         Define edge_var_map vector type.
8082         Declare redirect_edge_var_map_* prototypes.
8083         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8084         * tree-cfg.c (reinstall_phi_args): Replace
8085         PENDING_STMT use with redirect_edge_var_map_*.
8086
8087 2008-03-05  Richard Guenther  <rguenther@suse.de>
8088
8089         PR tree-optimization/35472
8090         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8091         whose single use_stmt has a overlapping set of loaded and
8092         stored symbols as that use_stmt might be a noop assignment then.
8093
8094 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8095
8096         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8097
8098 2008-03-05  Richard Guenther  <rguenther@suse.de>
8099
8100         PR c++/35336
8101         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8102         should be constants.
8103         * tree-cfg.c (verify_expr): Verify it.
8104         * fold-const.c (fold_truthop): Remove code generating
8105         BIT_FIELD_REFs of structure bases.
8106         (fold_binary): Likewise.
8107         (fold_ternary): Position and size of BIT_FIELD_REFs are
8108         always host integers.
8109         (make_bit_field_ref): Remove.
8110         (optimize_bit_field_compare): Remove.
8111         (all_ones_mask_p): Remove.
8112
8113 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8114
8115         PR gcc/33009
8116         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8117         (split_block_and_df_analyze): New. Split basic block and rebuild
8118         dataflow.
8119         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8120         SPLIT_BLOCK.
8121         (split_pattern_seq): Likewise.
8122         (erase_matching_seqs): Likewise.
8123         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8124
8125 2008-03-04  Geoff Keating  <geoffk@apple.com>
8126
8127         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8128         declaration and code.
8129         (tree_invalid_nonnegative_warnv_p): Likewise.
8130
8131 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8132
8133         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8134         examples.  Truncate option-names then causing overfull hbox.
8135
8136 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8137
8138         PR target/35222
8139         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8140         on hpux10.
8141         * configure: Rebuilt.
8142
8143 2008-03-04  Rafael Espindola  <espindola@google.com>
8144
8145         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8146         (tree_unary_nonnegative_warnv_p): New.
8147         (tree_binary_nonnegative_warnv_p): New.
8148         (tree_single_nonnegative_warnv_p): New.
8149         (tree_invalid_nonnegative_warnv_p): New.
8150         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8151
8152 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8153
8154         PR 28322
8155         * opts.c (handle_option): Postpone 'unknown option' errors only for
8156         warning options.
8157
8158 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8159
8160         PR target/35453
8161         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8162         (_SIDD_XXX): This.
8163
8164 2008-03-04  Rafael Espindola  <espindola@google.com>
8165
8166         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8167         (tree_binary_nonzero_warnv_p): New.
8168         (tree_single_nonzero_warnv_p): New.
8169         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8170
8171 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8172
8173         PR middle-end/35456
8174         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8175         transformations for modes that have signed zeros.
8176         * ifcvt.c (noce_try_abs): Ditto.
8177
8178 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8179
8180         * config/i386/i386.c (override_options): Force
8181         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8182
8183 2008-03-04  Jan Hubicka  <jh@suse.cz>
8184
8185         PR c++/35262
8186         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8187         in last commit.
8188
8189 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8190
8191         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8192         label to probe the stack.
8193
8194 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8195
8196         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8197         (__gthr_win32_mutex_destroy): Declare.
8198         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8199         __gthr_win32_mutex_destroy.
8200         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8201
8202 2008-03-03  Jan Hubicka  <jh@suse.cz>
8203
8204         PR c++/35262
8205         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8206         aggressive on inlining cold calls.
8207
8208 2008-03-03  Richard Guenther  <rguenther@suse.de>
8209
8210         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8211         struct copies into the expression table.
8212         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8213         (try_to_simplify): Likewise.
8214         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8215         integral and pointer arguments which do not change the
8216         precision to NOP_EXPRs.
8217         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8218         VIEW_CONVERT_EXPR case.
8219
8220 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8221
8222         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8223         defined in a loop at depth 0 is invariant.
8224         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8225         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8226         be called at loop depth 0.
8227
8228 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8229
8230         PR driver/35420
8231         * gcc.c (process_command): Update copyright notice dates.
8232         * gcov.c (print_version): Likewise.
8233         * gcov-dump.c (print_version): Likewise.
8234         * mips-tfile.c (main): Likewise.
8235         * mips-tdump.c (main): Likewise.
8236
8237 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8238
8239         PR 24924
8240         * c-common.c (flag_permissive): Delete.
8241         (constant_expression_warnings): Check flags first.
8242         (constant_expression_error): New.
8243         * c-common.h (flag_permissive): Delete.
8244         (constant_expression_error): Declare.
8245         * flags.h (flag_permissive): Declare. Update description.
8246         * diagnostic.c (pedwarn): Update.
8247         (permerror): New.
8248         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8249         (permissive_error_kind): New.
8250         * toplev.c (flag_permissive): Define. Update description.
8251         * toplev.h (permissive_error_kind): Declare.
8252         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8253         (pedwarn_c90): Use pedantic_warning_kind.
8254         * c-opts.c (c_common_post_options): flag_permissive does not affect
8255         flag_pedantic_errors.
8256
8257 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8258
8259         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8260         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8261         __absvsi2, __absvDI2): Use unsigned arithmetic.
8262
8263 2008-03-02  Andi Kleen  <ak@suse.de>
8264             Richard Guenther  <rguenther@suse.de>
8265
8266         * struct-equiv.c: Remove file.
8267         * cfg_cleanup.c (condjump_equiv_p): Remove.
8268         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8269         (struct-equiv.o): Remove rule.
8270         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8271         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8272         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8273
8274 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8275
8276         * ifcvt.c (noce_process_if_block): Try to handle only the then
8277         block if the else block exists but isn't suitable.
8278
8279 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8280
8281         PR gcc/35063
8282         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8283         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8284         regression from previous patch.
8285
8286 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8287
8288         PR gcc/35063
8289         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8290         implemented.
8291         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8292         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8293         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8294         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8295         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8296         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8297         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8298         (__gthread_mutex_destroy_function): Rename to
8299         __gthread_mutex_destroy.
8300         * gthr-dce.h (__gthread_mutex_destroy): Call
8301         pthread_mutex_destroy.
8302         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8303         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8304         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8305
8306 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8307
8308         * df-scan.c (df_ref_chain_change_bb): Simplify.
8309         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8310         set_block_for_insn if there's any change.
8311         * df.h ((df_insn_change_bb): Fix prototype.
8312         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8313         df_insn_change_bb, don't call set_block_for_insn.
8314         * emit-rtl.c (reorder_insns): Likewise.
8315         * haifa-sched.c (move_insn): Likewise.
8316
8317 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8318
8319         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8320
8321 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8322
8323         * tree-flow-inline.h (next_readonly_imm_use): Return
8324         NULL_USE_OPERAND_P after the end.
8325
8326 2008-03-01  Richard Guenther  <rguenther@suse.de>
8327
8328         PR tree-optimization/35411
8329         * tree-sra.c (sra_build_assignment): Split conversion to
8330         final type to a separate statement if we are not assigning
8331         to a register.
8332
8333 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8334
8335         * fold-const.c (fold_convertible_p): Correct the logic to follow
8336         that in fold_convert().
8337
8338 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8339
8340         PR c++/35315
8341         * tree-inline.c (build_duplicate_type): When we make a
8342         duplicate type, make it unique in the canonical types system.
8343
8344 2008-02-29  Tom Tromey  <tromey@redhat.com>
8345
8346         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8347         input_file_stack_history, input_file_stack_restored): Remove.
8348         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8349         * input.h (struct file_stack): Remove.
8350         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8351         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8352         Likewise.
8353         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8354         type.
8355         (diagnostic_last_module_changed): Add 'map' argument.
8356         (diagnostic_set_last_function): Likewise.
8357         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8358         line map, not input_file_stack.
8359         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8360
8361 2008-02-29  Paul Brook  <paul@codesourcery.com>
8362
8363         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8364
8365 2008-02-29  Paul Brook  <paul@codesourcery.com>
8366
8367         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8368
8369 2008-02-29  Richard Guenther  <rguenther@suse.de>
8370
8371         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8372         vn_lookup_or_add.
8373         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8374         value for comparing for a store match.
8375         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8376         (try_to_simplify): Do not do a full-blown reference lookup.
8377
8378 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8379
8380         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8381         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8382
8383         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8384
8385 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8386
8387         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8388         strides against cache sizes.
8389
8390 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8391
8392         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8393         constant to fpul.
8394
8395 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8396
8397         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8398         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8399         is smaller than the original promoted value.
8400         (simplify_subreg): If OP is a SUBREG, try to preserve its
8401         SUBREG_PROMOTED_VAR_P information.
8402
8403 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8404
8405         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8406         (VN_INFO_GET): Allocate new objects on the obstack.
8407         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8408         for rpo_numbers_temp, for consistency.
8409         (free_scc_vn): Free the obstack.
8410
8411 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8412
8413         * doc/invoke.texi: Document -ftree-loop-distribution.
8414         * tree-loop-distribution.c: New.
8415         * tree-pass.h (pass_loop_distribution): New.
8416         * graphds.h (struct graph): Add htab_t indices.
8417         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8418         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8419         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8420         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8421         * tree-data-ref.c (debug_data_dependence_relations): New.
8422         (dump_data_dependence_relation): Also print data references.
8423         (free_data_ref): Extern.
8424         (same_access_functions): Moved...
8425         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8426         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8427         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8428         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8429         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8430         (stmts_from_loop): Skip LABEL_EXPR.
8431         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8432         New.
8433         (build_rdg): Initialize rdg->indices htab.
8434         (free_rdg, stores_from_loop, ref_base_address,
8435         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8436         have_similar_memory_accesses_1, ref_base_address_1,
8437         remove_similar_memory_refs): New.
8438         * tree-data-ref.h: Depend on tree-chrec.h.
8439         (debug_data_dependence_relations, free_data_ref): Declared.
8440         (same_access_functions): ... here.
8441         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8442         New.
8443         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8444         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8445         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8446         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8447         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8448         rdg_vertex_for_stmt): Declared.
8449         (struct rdg_edge): Add level.
8450         (RDGE_LEVEL): New.
8451         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8452         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8453         Declared.
8454         (rdg_has_similar_memory_accesses): New.
8455         * tree-vect-analyze.c: Remove unused static decls.
8456         * lambda.h (dependence_level): New.
8457         * common.opt (ftree-loop-distribution): New.
8458         * tree-flow.h (mark_virtual_ops_in_bb, 
8459         slpeel_tree_duplicate_loop_to_edge_cfg,
8460         rename_variables_in_loop): Declared.
8461         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8462         (OBJS-common): Add tree-loop-distribution.o.
8463         (tree-loop-distribution.o): New rule.
8464         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8465         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8466         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8467
8468 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8469
8470         PR target/33963
8471         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8472         other than structures and unions.
8473
8474 2008-02-28  Richard Guenther  <rguenther@suse.de>
8475
8476         Revert:
8477         2008-02-26  Richard Guenther  <rguenther@suse.de>
8478
8479         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8480         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8481         (lookup_decl_from_uid): Declare.
8482         (remove_decl_from_map): Likewise.
8483         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8484         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8485         (decl_for_uid_map): New global hashtable mapping DECL_UID
8486         to the decl tree.
8487         (init_ttree): Allocate it.
8488         (insert_decl_to_uid_decl_map): New helper function.
8489         (make_node_stat): Insert new decls into the map.
8490         (copy_node_stat): Likewise.
8491         (lookup_decl_from_uid): New function.
8492         (remove_decl_from_map): Likewise.
8493         (print_decl_for_uid_map_statistics): New helper.
8494         (dump_tree_statistics): Call it.
8495
8496         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8497         (referenced_var_iterator): Adjust.
8498         (FOR_EACH_REFERENCED_VAR): Adjust.
8499         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8500         (num_referenced_vars): Adjust.
8501         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8502         (first_referenced_var): Remove.
8503         (end_referenced_vars_p): Likewise.
8504         (next_referenced_var): Likewise.
8505         (referenced_var_iterator_set): New helper function.
8506         * tree-dfa.c (referenced_var_lookup): Adjust.
8507         (referenced_var_check_and_insert): Likewise.
8508         (remove_referenced_var): Likewise.
8509         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8510         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8511         (verify_call_clobbering): Likewise.
8512         (verify_memory_partitions): Likewise.
8513         (init_tree_ssa): Allocate bitmap instead of hashtable for
8514         referenced_vars.
8515         (delete_tree_ssa): Adjust.
8516         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8517         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8518         (compute_tag_properties): Likewise.
8519         (set_initial_properties): Likewise.
8520         (find_partition_for): Likewise.
8521         (update_reference_counts): Likewise.
8522         (dump_may_aliases_for): Likewise.
8523         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8524         (add_call_clobber_ops): Likewise.
8525         (add_call_read_ops): Likewise.
8526         (get_asm_expr_operands): Likewise.
8527         * tree-into-ssa.c (dump_decl_set): Likewise.
8528         (update_ssa): Likewise.
8529         * tree-sra.c (scan_function): Likewise.
8530         (decide_instantiations): Likewise.
8531         (scalarize_parms): Likewise.
8532         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8533         (dsa_named_for): Likewise.
8534         * tree-ssa-structalias.c (update_alias_info): Likewise.
8535         (merge_smts_into): Likewise.
8536
8537 2008-02-27  David Daney  <ddaney@avtrex.com>
8538
8539         PR target/34409
8540         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8541         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8542         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8543         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8544         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8545
8546 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8547
8548         PR target/25477
8549         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8550         (BUILT_IN_NEXTTOWARD): Remove.
8551         (BUILT_IN_NEXTTOWARDF): Ditto.
8552         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8553         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8554
8555 2008-02-27  Tom Tromey  <tromey@redhat.com>
8556
8557         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8558         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8559
8560 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8561
8562         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8563         update the respective field on newdecl.
8564
8565 2008-02-27  Revital Eres  <eres@il.ibm.com>
8566
8567         PR rtl-optimization/34999
8568         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8569         crossing edges that ends with a call insn.
8570         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8571         call insn and clear the EDGE_CROSSING flag of the crossing edge
8572         when fixing fallthru edges.
8573
8574 2008-02-27  Richard Guenther  <rguenther@suse.de>
8575
8576         PR middle-end/35390
8577         * fold-const.c (fold_unary): Return the correct argument,
8578         converted to the result type.
8579
8580 2008-02-27  Richard Guenther  <rguenther@suse.de>
8581
8582         PR middle-end/34971
8583         * expr.c (expand_expr_real_1): Assert on rotates that operate
8584         on partial modes.
8585         * fold-const.c (fold_binary): Use the types precision, not the
8586         bitsize of the mode if folding rotate expressions.  Build rotates
8587         only for full modes.
8588
8589 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8590
8591         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8592         and CPP_PRAGMA_EOL.
8593         * c-pragma.c (pragma_ns_name): New typedef.
8594         (registered_pp_pragmas): New variable.
8595         (c_pp_lookup_pragma): New function.
8596         (c_register_pragma_1): If flag_preprocess_only, do nothing
8597         for non-expanded pragmas, for expanded ones push pragma's
8598         namespace and name into registered_pp_pragmas vector.
8599         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8600         flag_preprocess_only, don't register GCC pch_preprocess
8601         pragma if flag_preprocess_only.
8602         * c-opts.c (c_common_init): Call init_pragma even if
8603         flag_preprocess_only.
8604         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8605         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8606         cpp_register_pragma if flag_preprocess_only.
8607
8608 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8609
8610         PR c/28800
8611         * c-parser.c (c_parser_translation_unit): Warn for empty
8612         translation unit, not empty source file.
8613
8614 2008-02-26  Paul Brook  <paul@codesourcery.com>
8615
8616         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8617         operand for Thumb-2.
8618         * config/arm/arm.h (reg_class): Add CORE_REGS.
8619         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8620         (BASE_REG_CLASS): Use CORE_REGS.
8621         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8622         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8623         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8624         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8625         ARM_REGNO_OK_FOR_INDEX_P.
8626         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8627         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8628         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8629         (ldm/stm peepholes): Ditto.
8630         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8631         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8632         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8633         * config/arm/constraints.md: Enable "k" constraint on ARM.
8634
8635 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8636
8637         * config/rs6000/rs6000.c: Annotate cache line size field in all
8638         instances of struct processor_costs.
8639
8640 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8641
8642         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8643         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8644         jump_bypass): New counters.
8645         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8646         * dce.c (gate_ud_dce): Same.
8647         (gate_fast_dce): Same.
8648         * dse.c (gate_dse1): New function.
8649         (gate_dse2): New function.
8650         (gate_dse): Merge results of new gate functions.
8651         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8652         (gate_handle_jump_bypass): Add dbg_cnt.
8653         (gate_handle_gcse): Add dbg_cnt.
8654         * ifcvt.c (gate_handle_if_conversion): Same.
8655         (gate_handle_if_after_combine): Same.
8656         (gate_handle_if_after_reload): Same.
8657         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8658
8659 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8660
8661         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8662         line sizes.
8663         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8664
8665 2008-02-26  Jason Merrill  <jason@redhat.com>
8666
8667         PR c++/35315
8668         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8669         alone if it's the naming decl for the type's main variant.
8670
8671 2008-02-26  Tom Tromey  <tromey@redhat.com>
8672
8673         * system.h (USE_MAPPED_LOCATION): Poison.
8674         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8675         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8676         (make_goto_expr_edges): Likewise.
8677         (remove_bb): Likewise.
8678         (execute_warn_function_return): Likewise.
8679         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8680         location_t.
8681         * c-common.c (fname_decl): Remove old location code.
8682         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8683         location code.
8684         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8685         variant.
8686         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8687         (gen_rtx_ASM_INPUT): Likewise.
8688         (gen_rtx_ASM_INPUT_loc): Likewise.
8689         (get_rtx_asm_OPERANDS): Remove.
8690         * cfglayout.c (insn_locators_alloc): Remove old location code.
8691         (set_curr_insn_source_location): Likewise.
8692         (curr_insn_locator): Likewise.
8693         * print-tree.c (print_node): Remove old location code.
8694         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8695         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8696         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8697         location_from_locus.
8698         (construct_exit_block): Remove old location code.
8699         * emit-rtl.c (force_next_line_note): Remove old location code.
8700         * profile.c (branch_prob): Remove old location code.
8701         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8702         LOC_LINE): Remove old-location variants.
8703         * langhooks.c (lhd_print_error_function): Remove old location
8704         code.
8705         * configure, config.in: Rebuilt.
8706         * configure.ac (--enable-mapped-location): Remove.
8707         * c-decl.c (c_init_decl_processing): Remove old location code.
8708         (finish_function): Likewise.
8709         * recog.c (decode_asm_operands): Remove old location code.
8710         * c-pch.c (c_common_read_pch): Remove old location code.
8711         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8712         variants.
8713         * gimple-low.c (lower_function_body): Remove old location code.
8714         * toplev.c (unknown_location): Remove.
8715         (push_srcloc): Remove old-location variant.
8716         (process_options): Remove old location code.
8717         (lang_dependent_init): Likewise.
8718         * input.h (UNKNOWN_LOCATION): Move definition.
8719         (location_t): Undeprecate.
8720         (source_locus): Remove.
8721         (location_from_locus): Remove.
8722         (struct location_s): Remove.
8723         Remove all old-location code.
8724         (input_line, input_filename): Remove.
8725         * final.c (final_scan_insn): Remove old location code.
8726         * diagnostic.c (diagnostic_build_prefix): Remove
8727         USE_MAPPED_LOCATION test.
8728         * tree.h (gimple_stmt) <locus>: Now a location_t.
8729         (tree_exp) <locus>: Likewise.
8730         (DECL_IS_BUILTIN): Remove old-location variant.
8731         (annotate_with_file_line, annotate_with_locus): Likewise.
8732         (expr_locus, set_expr_locus): Update.
8733         * tree.c (build1_stat): Remove old location code.
8734         (last_annotated_node): Remove.
8735         (annotate_with_file_line): Remove old-location variant.
8736         (annotate_with_locus): Likewise.
8737         (expr_location): Remove old location code.
8738         (set_expr_location): Likewise.
8739         (expr_has_location): Likewise.
8740         (expr_locus): Likewise.
8741         (set_expr_locus): Likewise.
8742         (expr_filename): Don't use location_from_locus.
8743         (expr_lineno): Likewise.
8744         * rtl-error.c (location_for_asm): Remove old location code.
8745         * c-lex.c (cb_line_change): Remove old location code.
8746         (fe_file_change): Likewise.
8747         (cb_def_pragma): Likewise.
8748         (c_lex_with_flags): Likewise.
8749         * gengtype.c (do_typedef): Don't special-case location types.
8750         (define_location_structures): Remove.
8751         (main): Don't call define_location_structures.
8752         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8753         code.
8754
8755 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8756
8757         PR 26264
8758         * builtins.def (BUILT_IN_STDARG_START): Remove.
8759         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8760         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8761         * tree-inline.c (inline_forbidden_p_1): Likewise.
8762         
8763 2008-02-26  Richard Guenther  <rguenther@suse.de>
8764
8765         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8766         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8767         (lookup_decl_from_uid): Declare.
8768         (remove_decl_from_map): Likewise.
8769         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8770         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8771         (decl_for_uid_map): New global hashtable mapping DECL_UID
8772         to the decl tree.
8773         (init_ttree): Allocate it.
8774         (insert_decl_to_uid_decl_map): New helper function.
8775         (make_node_stat): Insert new decls into the map.
8776         (copy_node_stat): Likewise.
8777         (lookup_decl_from_uid): New function.
8778         (remove_decl_from_map): Likewise.
8779         (print_decl_for_uid_map_statistics): New helper.
8780         (dump_tree_statistics): Call it.
8781
8782         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8783         (referenced_var_iterator): Adjust.
8784         (FOR_EACH_REFERENCED_VAR): Adjust.
8785         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8786         (num_referenced_vars): Adjust.
8787         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8788         (first_referenced_var): Remove.
8789         (end_referenced_vars_p): Likewise.
8790         (next_referenced_var): Likewise.
8791         (referenced_var_iterator_set): New helper function.
8792         * tree-dfa.c (referenced_var_lookup): Adjust.
8793         (referenced_var_check_and_insert): Likewise.
8794         (remove_referenced_var): Likewise.
8795         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8796         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8797         (verify_call_clobbering): Likewise.
8798         (verify_memory_partitions): Likewise.
8799         (init_tree_ssa): Allocate bitmap instead of hashtable for
8800         referenced_vars.
8801         (delete_tree_ssa): Adjust.
8802         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8803         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8804         (compute_tag_properties): Likewise.
8805         (set_initial_properties): Likewise.
8806         (find_partition_for): Likewise.
8807         (update_reference_counts): Likewise.
8808         (dump_may_aliases_for): Likewise.
8809         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8810         (add_call_clobber_ops): Likewise.
8811         (add_call_read_ops): Likewise.
8812         (get_asm_expr_operands): Likewise.
8813         * tree-into-ssa.c (dump_decl_set): Likewise.
8814         (update_ssa): Likewise.
8815         * tree-sra.c (scan_function): Likewise.
8816         (decide_instantiations): Likewise.
8817         (scalarize_parms): Likewise.
8818         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8819         (dsa_named_for): Likewise.
8820         * tree-ssa-structalias.c (update_alias_info): Likewise.
8821         (merge_smts_into): Likewise.
8822
8823 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8824
8825         PR 34351
8826         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8827         * c-opts.c (c_common_handle_option): Wall enables
8828         Wvolatile-register-var.
8829         * common.opt: Move Wvolatile-register-var to...
8830         * c.opt: ...here.
8831         
8832 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8833
8834         * common.opt (Wlarger-than=): New.
8835         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8836         -Wlarger-than=.
8837         * opts.c (common_handle_option): Handle -Wlarger-than=.
8838         * optc-gen.awk: Likewise.
8839         * opth-gen.awk: Likewise.
8840         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8841         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8842         
8843 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8844
8845         * c-common.c (match_case_to_enum_1): Add appropriate
8846         OPT_W* parameter to warning.
8847         (c_do_switch_warnings): Likewise.
8848         * c-typeck.c (warning_init): Add one more parameter following
8849         'warning' function.
8850         (push_init_level): Update call to warning_init.
8851         (pop_init_level): Likewise.
8852         (add_pending_init): Likewise.
8853         (output_init_element: Likewise.
8854
8855 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8856
8857         PR 28322
8858         * toplev.c (toplev_main): If there are warnings or error, print
8859         errors for ignored options.
8860         * opts.c (ignored_options): New static variable.
8861         (postpone_unknown_option_error): New.
8862         (print_ignored_options): New.
8863         (handle_option): Postpone errors for unknown -Wno-* options.
8864         * opts.h (print_ignored_options): Declare.
8865         
8866 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8867
8868         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8869         to "ghost".
8870
8871 2008-02-25  Richard Guenther  <rguenther@suse.de>
8872
8873         Revert:
8874         2008-02-25  Richard Guenther  <rguenther@suse.de>
8875
8876         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8877         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8878         (lookup_decl_from_uid): Declare.
8879         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8880         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8881         (decl_for_uid_map): New global hashtable mapping DECL_UID
8882         to the decl tree.
8883         (init_ttree): Allocate it.
8884         (insert_decl_to_uid_decl_map): New helper function.
8885         (make_node_stat): Insert new decls into the map.
8886         (copy_node_stat): Likewise.
8887         (lookup_decl_from_uid): New function.
8888         (print_decl_for_uid_map_statistics): New helper.
8889         (dump_tree_statistics): Call it.
8890
8891         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8892         (referenced_var_iterator): Adjust.
8893         (FOR_EACH_REFERENCED_VAR): Adjust.
8894         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8895         (num_referenced_vars): Adjust.
8896         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8897         (first_referenced_var): Remove.
8898         (end_referenced_vars_p): Likewise.
8899         (next_referenced_var): Likewise.
8900         (referenced_var_iterator_set): New helper function.
8901         * tree-dfa.c (referenced_var_lookup): Adjust.
8902         (referenced_var_check_and_insert): Likewise.
8903         (remove_referenced_var): Likewise.
8904         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8905         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8906         (verify_call_clobbering): Likewise.
8907         (verify_memory_partitions): Likewise.
8908         (init_tree_ssa): Allocate bitmap instead of hashtable for
8909         referenced_vars.
8910         (delete_tree_ssa): Adjust.
8911         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8912         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8913         (compute_tag_properties): Likewise.
8914         (set_initial_properties): Likewise.
8915         (find_partition_for): Likewise.
8916         (update_reference_counts): Likewise.
8917         (dump_may_aliases_for): Likewise.
8918         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8919         (add_call_clobber_ops): Likewise.
8920         (add_call_read_ops): Likewise.
8921         (get_asm_expr_operands): Likewise.
8922         * tree-into-ssa.c (dump_decl_set): Likewise.
8923         (update_ssa): Likewise.
8924         * tree-sra.c (scan_function): Likewise.
8925         (decide_instantiations): Likewise.
8926         (scalarize_parms): Likewise.
8927         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8928         (dsa_named_for): Likewise.
8929         * tree-ssa-structalias.c (update_alias_info): Likewise.
8930         (merge_smts_into): Likewise.
8931
8932 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8933
8934         PR fortran/29549
8935         * doc/invoke.texi (-fcx-limited-range): Document new option.
8936         * toplev.c (process_options): Handle -fcx-fortran-rules.
8937         * common.opt: Add documentation for -fcx-fortran-rules.
8938
8939 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8940
8941         PR c/35162
8942         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8943         actual behaviour and C99.
8944         
8945 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8946
8947         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8948         (ASM_CPU_POWER6_SPEC): Likewise.
8949         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8950         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8951         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8952
8953 2008-02-25  Richard Guenther  <rguenther@suse.de>
8954
8955         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8956         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8957         (lookup_decl_from_uid): Declare.
8958         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8959         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8960         (decl_for_uid_map): New global hashtable mapping DECL_UID
8961         to the decl tree.
8962         (init_ttree): Allocate it.
8963         (insert_decl_to_uid_decl_map): New helper function.
8964         (make_node_stat): Insert new decls into the map.
8965         (copy_node_stat): Likewise.
8966         (lookup_decl_from_uid): New function.
8967         (print_decl_for_uid_map_statistics): New helper.
8968         (dump_tree_statistics): Call it.
8969
8970         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8971         (referenced_var_iterator): Adjust.
8972         (FOR_EACH_REFERENCED_VAR): Adjust.
8973         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8974         (num_referenced_vars): Adjust.
8975         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8976         (first_referenced_var): Remove.
8977         (end_referenced_vars_p): Likewise.
8978         (next_referenced_var): Likewise.
8979         (referenced_var_iterator_set): New helper function.
8980         * tree-dfa.c (referenced_var_lookup): Adjust.
8981         (referenced_var_check_and_insert): Likewise.
8982         (remove_referenced_var): Likewise.
8983         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8984         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8985         (verify_call_clobbering): Likewise.
8986         (verify_memory_partitions): Likewise.
8987         (init_tree_ssa): Allocate bitmap instead of hashtable for
8988         referenced_vars.
8989         (delete_tree_ssa): Adjust.
8990         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8991         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8992         (compute_tag_properties): Likewise.
8993         (set_initial_properties): Likewise.
8994         (find_partition_for): Likewise.
8995         (update_reference_counts): Likewise.
8996         (dump_may_aliases_for): Likewise.
8997         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8998         (add_call_clobber_ops): Likewise.
8999         (add_call_read_ops): Likewise.
9000         (get_asm_expr_operands): Likewise.
9001         * tree-into-ssa.c (dump_decl_set): Likewise.
9002         (update_ssa): Likewise.
9003         * tree-sra.c (scan_function): Likewise.
9004         (decide_instantiations): Likewise.
9005         (scalarize_parms): Likewise.
9006         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9007         (dsa_named_for): Likewise.
9008         * tree-ssa-structalias.c (update_alias_info): Likewise.
9009         (merge_smts_into): Likewise.
9010
9011 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9012
9013         PR target/35258
9014         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9015         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9016         * alias.h (nonoverlapping_memrefs_p): Likewise.
9017
9018 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9019
9020         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9021         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9022         __emultls_get_address, __emultls_register_common,
9023         __floatundi?f, and _Unwind_GetIPInfo.
9024         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9025         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9026         (gen_regparm_prefix): Likewise.
9027         (i386_nlm_encode_section_info): Sync with
9028         config/i386/winnt.c:i386_pe_encode_section_info().
9029         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9030         i386_nlm_mangle_decl_assembler_name): New.
9031         (netware_override_options): New.
9032         * config/i386/netware.h (netware_override_options): Declare.
9033         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9034         (i386_nlm_mangle_decl_assembler_name): Declare.
9035         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9036
9037 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9038
9039         PR other/32948
9040         * c-decl.c (grokdeclarator): Remove unused local variables
9041         `typedef_type' and `type_as_written'.
9042         * bb-reorder.c
9043         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9044         unused local variable `has_hot_blocks'.
9045         (fix_crossing_conditional_branches): Remove unused local variable
9046         `prev_bb'.
9047         
9048 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9049
9050         PR middle-end/19984
9051         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9052         using DEF_C99_BUILTIN.
9053         (BUILT_IN_NANF): Ditto.
9054         (BUILT_IN_NANL): Ditto.
9055
9056 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9057             Revital Eres  <eres@il.ibm.com>
9058
9059         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9060         regarding the order of two dependent insns in the same row.
9061
9062 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9063
9064         * stor-layout.c (layout_decl): Do not bump the alignment of a
9065         bit-field to more than byte alignment if it is packed.
9066
9067 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9068
9069         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9070         e300c2 and e300c3.
9071
9072 2008-02-24  Diego Novillo  <dnovillo@google.com>
9073
9074         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9075
9076         PR 33738
9077         * tree-vrp.c (vrp_evaluate_conditional): With
9078         -Wtype-limits, emit a warning when comparing against a
9079         constant outside the natural range of OP0's type.
9080         * c.opt (Wtype-limits): Move ...
9081         * common.opt (Wtype-limits): ... here.
9082
9083 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9084
9085         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9086         * config/rs6000/e300c2c3.md: New file.
9087         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9088         e300c2 and e300c3.
9089         (rs6000_override_options): Add e300c2 and e300c3 cases to
9090         processor_target_table. Do not allow usage of Altivec or Spe
9091         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9092         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9093         * config/rs6000/rs6000.h (processor_type): Add
9094         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9095         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9096         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9097         and ppce300c3. Include e300c2c3.md.
9098
9099 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9100
9101         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9102         instead of TARGET_STRICT_ALIGN.
9103
9104 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9105
9106         * explow.c (memory_address): Assert that the generated address is
9107         valid.
9108
9109 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9110
9111         PR target/25477
9112         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9113         * config/darwin-ppc-ldouble-patch.def: New file.
9114         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9115         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9116         SUBTARGET_INIT_BUILTINS if defined.
9117         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9118         New functions.
9119
9120 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9121
9122         PR rtl-opt/33512
9123         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9124         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9125
9126 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9127
9128         PR pch/35027
9129         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9130         file" warning condtional on -Winvalid-PCH.
9131
9132 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9133
9134         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9135
9136 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9137
9138         PR target/22076
9139         PR target/34256 
9140         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9141         prevent reload from using MMX registers.
9142         (*mov<mode>_internal): Ditto.
9143         (*movv2sf_internal_rex64): Ditto.
9144         (*movv2sf_internal): Ditto.
9145
9146 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9147
9148         PR documentation/31569
9149         * doc/install.texi2html: Use makeinfo --no-number-sections.
9150
9151 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9152
9153         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9154         ensure that we can address an entire entity > 8 bytes.  Don't
9155         generate reg+reg addressing for such data.
9156
9157 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9158
9159         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9160         strings when optimizing for size, unless the target cares about
9161         alignment.
9162
9163 2008-02-22  Tom Tromey  <tromey@redhat.com>
9164
9165         * regclass.c (current_pass): Remove declaration.
9166
9167 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9168
9169         * config/avr/libgcc.S (__RAMPZ__): Define.
9170         (__do_copy_data): Add for devices with 128KB code memory.
9171
9172 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9173
9174         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9175         Use spe_abi.
9176         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9177
9178 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9179
9180         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9181         GENNONACR_REGS.
9182
9183 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9184
9185         PR c/19999
9186         * c-typeck.c (build_binary_op): Warn about floating point
9187         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9188
9189 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9190
9191         PR target/34526
9192         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9193         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9194         add vrsave.
9195         (rs6000_override_options): Set altivec_abi as default, not override,
9196         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9197         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9198         is used; use new member spe_abi.
9199         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9200         spe_abi and altivec_abi.
9201
9202 2008-02-22  Tomas Bily  <tbily@suse.cz>
9203
9204         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9205
9206 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9207
9208         PR bootstrap/35273
9209         * config.build (build_file_translate): Set to `CMD //c' only if
9210         it works.
9211         * Makefile.in (build_file_translate): Improve comment.
9212
9213 2008-02-21  Jan Hubicka  <jh@suse.cz>
9214
9215         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9216         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9217         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9218
9219 2008-02-21  Michael Matz  <matz@suse.de>
9220
9221         PR target/35264
9222         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9223
9224 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9225
9226         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9227         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9228         as insn constraint.
9229         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9230         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9231         SSE_VEC_FLOAT_MODE_P as insn constraint.
9232         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9233         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9234         sse4a_movntdf using MODEF mode iterator.
9235         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9236         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9237         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9238         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9239         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9240         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9241         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9242
9243 2008-02-21  Richard Guenther  <rguenther@suse.de>
9244
9245         * tree.def (PAREN_EXPR): New tree code.
9246         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9247         and PAREN_EXPR.
9248         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9249         * expr.c (expand_expr_real_1): Likewise.
9250         * tree-inline.c (estimate_num_insns_1): Likewise.
9251         * tree-complex.c (expand_complex_move): Likewise.
9252         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9253         as plain x.
9254
9255 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9256
9257         PR target/35225
9258         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9259
9260 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9261
9262         PR target/35190
9263         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9264
9265         * config/sh/sh.c (find_barrier): Don't go past
9266         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9267
9268 2008-02-20  DJ Delorie  <dj@redhat.com>
9269
9270         * config/h8300/h8300.md (insv): Force source operand to be a register.
9271
9272         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9273         as a jump, not as a plain insn.
9274         
9275 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9276
9277         * doc/invoke.texi (Warning Options): Add new option
9278         -Wframe-larger-than=.
9279         (-Wframe-larger-than): Document.
9280
9281         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9282         Add declarations for new option variables.
9283
9284         * final.c (final_start_function): Check the frame size
9285         before emission and issue a Wframe-larger-than warning.
9286
9287         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9288         Add definitions for new option variables.
9289         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9290
9291         * common.opt (Wframe-larger-than=): New option.
9292
9293 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9294
9295         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9296         (<sse>_div<mode>3): Ditto.
9297         (<sse>_vmdiv<mode>3): Ditto.
9298         (<sse>_vmsqrt<mode>2): Ditto.
9299         (*smax<mode>3): Ditto.
9300         (sse5_frcz<mode>2): Ditto.
9301         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9302         as insn constraint.
9303
9304 2008-02-20  Richard Guenther  <rguenther@suse.de>
9305
9306         PR middle-end/35265
9307         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9308         be happy with INTEGRAL_TYPE_P.
9309
9310 2008-02-20  Richard Guenther  <rguenther@suse.de>
9311
9312         * fold-const.c (split_tree): Associate floatig-point expressions
9313         if flag_associative_math is set.
9314
9315 2008-02-20  Richard Guenther  <rguenther@suse.de>
9316
9317         * tree.h (fold_real_zero_addition_p): Declare.
9318         * fold-const.c (fold_real_zero_addition_p): Export.
9319         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9320         floating-point operations with zero and one.
9321
9322 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9323
9324         * doc/install.texi: Correct references to CFLAGS, replacing them
9325         with BOOT_CFLAGS.  Document flags used during bootstrap for
9326         target libraries.
9327                                 
9328 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9329
9330         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9331         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9332         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9333         insn constraint.
9334         (smin<mode>3): Ditto from similar patterns.
9335         (smax<mode>3): Ditto.
9336         (*ieee_smin<mode>3): Ditto.
9337         (*ieee_smax<mode>3): Ditto.
9338         * config/i386/sse.md (sse): New mode attribute.
9339         (mov<mode>): Macroize expander from movv4sf and movv2df using
9340         SSEMODEF2P mode iterator.
9341         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9342         SSE_VEC_FLOAT_MODE_P as insn constraint.
9343         (storent<mode>): Ditto.
9344         (storent<mode>): Macroize expander from storentsf and storentdf using
9345         MODEF mode iterator.
9346         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9347         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9348         (abs<mode>2): Ditto from similar patterns.
9349         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9350         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9351         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9352         (<sse>_vmsqrt<mode>2): Ditto.
9353         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9354         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9355         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9356         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9357         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9358         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9359         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9360         insn constraint.
9361         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9362         iterator and SSE_FLOAT_MODE_P as insn constraint.
9363         (<sse>_ucomi): Ditto from similar patterns.
9364         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9365         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9366         SSE_VEC_FLOAT_MODE_P as insn constraint.
9367         (vcond<mode>): Ditto from similar patterns.
9368         (and<mode>3, *and<mode>3): Ditto.
9369         (<sse>_nand<mode>3): Ditto.
9370         (ior<mode>3, *ior<mode>3): Ditto.
9371         (xor<mode>3, *xor<mode>3): Ditto.
9372         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9373         iterator and SSE_FLOAT_MODE_P as insn constraint.
9374         (*nand<mode>3): Ditto from similar patterns.
9375         (*ior<mode>3): Ditto.
9376         (*xor<mode>3): Ditto.
9377
9378 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9379
9380         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9381         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9382         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9383
9384 2008-02-19  Jan Hubicka  <jh@suse.cz>
9385
9386         * predict.c (tree_bb_level_predictions): Remove variable next
9387         mistakely introduced by previous commit.
9388
9389 2008-02-19  Jan Hubicka  <jh@suse.cz>
9390
9391         * predict.c (predict_paths_leading_to): Rewrite.
9392         (predict_paths_for_bb): New.
9393         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9394
9395 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9396
9397         PR bootstrap/35218
9398         * Makefile.in (build_file_translate): New.
9399         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9400         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9401         * configure.ac (build_file_translate): Substitute it.
9402         * configure: Regenerate.
9403
9404 2008-02-19  Jan Hubicka  <jh@suse.cz>
9405
9406         PR rtl-optimization/34408
9407         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9408         invalid sharing.
9409
9410 2008-02-19  Jan Hubicka  <jh@suse.cz>
9411
9412         PR middle-end/28779
9413         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9414         call_expr.
9415
9416 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9417
9418         PR Ada/35186
9419         * config/i386/i386-modes.def: Revert the last DI alignment
9420         change until Ada people can look into it.
9421
9422 2008-02-19  Nick Clifton  <nickc@redhat.com>
9423
9424         * opts.c (print_specific_help): Fix typo in --help text.
9425
9426 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9427
9428         PR target/35239
9429         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9430         32-bit inline asm without asm alternatives for host GCC < 3.0.
9431
9432 2008-02-19  Richard Guenther  <rguenther@suse.de>
9433
9434         PR tree-optimization/34989
9435         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9436         Allow propagation to INDIRECT_REF if we can simplify only.
9437
9438 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9439
9440         * c-common.c (warn_for_collisions_1): Use appropriate option when
9441         warning.
9442
9443 2008-02-19  Nick Clifton  <nickc@redhat.com>
9444
9445         PR other/31349
9446         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9447         (handle_options): Fix indentation.
9448         (print_filtered_help): If no language-specific options were
9449         displayed tell the user how to list all the options supported by
9450         the language's front-end.
9451         (print_specific_help): Fix indentation and remove duplicate line.
9452         (common_handle_option): Handle the -v option.
9453         For --help enable the display of undocumented options if the -v
9454         switch has been included on the command line.
9455         For --help= check for overlaps in the arguments between the option
9456         classes and the language names and issue a warning when they
9457         cannot be disambiguated.
9458         * c.opt (v): Pass on to the common option handler.
9459
9460 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9461
9462         * modulo-sched.c (sms_schedule): Change dump message when
9463         create_ddg function fails.
9464         (try_scheduling_node_in_cycle): Rename row to cycle.
9465         (print_partial_schedule): Rename CYCLE to ROW.
9466
9467 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9468             Zdenek Dvorak  <ook@ucw.cz>
9469
9470         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9471
9472 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9473
9474         PR target/33555
9475         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9476         (*x86_movdicc_0_m1_se): Ditto.
9477
9478 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9479
9480         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9481         (CMPtype): Define as __gcc_CMPtype.
9482         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9483         (CMPtype): Define as __gcc_CMPtype.
9484
9485 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9486
9487         Support valgrind 3.3 for --enable-checking=valgrind.
9488         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9489         here.
9490         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9491         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9492         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9493         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9494         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9495         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9496         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9497         respectively.
9498         * ggc-zone.c: Similar.
9499         * ggc-page.c: Similar.
9500
9501 2008-02-19  Paul Brook  <paul@codesourcery.com>
9502
9503         PR target/35071
9504         * config/arm/ieee754-df.S: Fix do_it typo.
9505         * config/arm/ieee754-sf.S: Fix do_it typo.
9506
9507 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9508
9509         PR target/35189
9510         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9511         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9512         (OPTION_MASK_ISA_SSE_SET): Likewise.
9513         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9514         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9515         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9516         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9517         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9518         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9519         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9520         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9521         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9522         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9523         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9524         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9525         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9526         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9527         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9528         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9529         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9530         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9531         (OPTION_MASK_ISA_SSE4): Removed.
9532         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9533         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9534         (override_options): Don't turn on implied SSE/MMX bits in
9535         ix86_isa_flags.
9536
9537 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9538
9539         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9540         32bit host.
9541
9542 2008-02-18  Joey Ye  <joey.ye@intel.com>
9543
9544         PR middle-end/34921
9545         * tree-nested.c (insert_field_into_struct): Set type alignment
9546         to field alignment if the former is less than the latter.
9547
9548 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9549
9550         * BASE-VER: Set to 4.4.0.
9551
9552 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9553
9554         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9555         * doc/cfg.texi: Likewise.
9556         * doc/extend.texi: Likewise.
9557         * doc/gty.texi: Likewise.
9558         * doc/invoke.texi: Likewise.
9559         * doc/loop.texi: Likewise.
9560         * doc/md.texi: Likewise.
9561         * doc/passes.texi: Likewise.
9562         * doc/rtl.texi: Likewise.
9563         * doc/sourcebuild.texi: Likewise.
9564         * doc/tm.texi: Likewise.
9565         * doc/tree-ssa.texi: Likewise.
9566
9567 2008-02-17  Richard Guenther  <rguenther@suse.de>
9568
9569         PR middle-end/35227
9570         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9571         without default definition.
9572
9573 2008-02-17  Richard Guenther  <rguenther@suse.de>
9574
9575         PR tree-optimization/35231
9576         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9577         if A | B != 1.
9578
9579 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9580
9581         Revert:
9582         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9583         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9584         libgcc_cmp_return mode.
9585
9586 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9587
9588         PR c/28368
9589         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9590
9591 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9592
9593         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9594         multilibs.
9595
9596 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9597
9598         * doc/c-tree.texi: Use `@.' where appropriate.
9599         * doc/extend.texi: Likewise.
9600         * doc/install.texi: Likewise.
9601         * doc/invoke.texi: Likewise.
9602         * doc/loop.texi: Likewise.
9603         * doc/makefile.texi: Likewise.
9604         * doc/md.texi: Likewise.
9605         * doc/passes.texi: Likewise.
9606         * doc/standards.texi: Likewise.
9607         * doc/tm.texi: Likewise.
9608
9609 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9610
9611         PR middle-end/35196
9612         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9613         in entry_bb.
9614         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9615         rather than in entry_bb.
9616
9617 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9618
9619         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9620         libgcc_cmp_return mode.
9621
9622 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9623
9624         PR middle-end/35130
9625         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9626         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9627
9628 2008-02-15  Richard Guenther  <rguenther@suse.de>
9629             Zdenek Dvorak  <ook@ucw.cz>
9630
9631         PR tree-optimization/35164
9632         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9633         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9634         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9635         Only propagate addresses which do not have abnormal SSA_NAMEs
9636         in their operands.
9637
9638 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9639
9640         PR target/35088
9641         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9642
9643 2008-02-15  Jan Hubicka  <jh@suse.cz>
9644
9645         PR middle-end/35149
9646         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9647
9648 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9649
9650         PR middle-end/34621
9651         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9652         when calculating alignment_pad.
9653
9654 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9655
9656         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9657         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9658         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9659         and STACK_BOUNDARY define.
9660
9661 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9662
9663         PR preprocessor/35061
9664         * c-pragma.c (handle_pragma_pop_macro): Check that
9665         pushed_macro_table has been allocated.
9666
9667 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9668
9669         PR middle-end/35136
9670         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9671         (force_gimple_operand): Likewise.
9672         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9673         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9674         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9675         (find_interesting_uses_address): Check addressability and alignment
9676         of the base expression only after substituting bases of IVs into it.
9677
9678 2008-02-14  Michael Matz  <matz@suse.de>
9679
9680         PR target/34930
9681         * function.c (instantiate_virtual_regs_in_insn): Reload address
9682         before falling back to reloading the whole operand.
9683
9684 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9685
9686         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9687         before the first section switch note.
9688
9689 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9690
9691         * doc/bugreport.texi: Update copyright years.
9692         * doc/c-tree.texi: Likewise.
9693         * doc/cfg.texi: Likewise.
9694         * doc/cpp.texi: Likewise.
9695         * doc/cppinternals.texi: Likewise.
9696         * doc/fragments.texi: Likewise.
9697         * doc/frontends.texi: Likewise.
9698         * doc/gcc.texi: Likewise.
9699         * doc/gty.texi: Likewise.
9700         * doc/hostconfig.texi: Likewise.
9701         * doc/implement-c.texi: Likewise.
9702         * doc/libgcc.texi: Likewise.
9703         * doc/loop.texi: Likewise.
9704         * doc/makefile.texi: Likewise.
9705         * doc/options.texi: Likewise.
9706         * doc/passes.texi: Likewise.
9707         * doc/rtl.texi: Likewise.
9708         * doc/sourcebuild.texi: Likewise.
9709         * doc/standards.texi: Likewise.
9710         * doc/tree-ssa.texi: Likewise.
9711         * doc/trouble.texi: Likewise.
9712
9713         * doc/extend.texi: Use @: or add comma where appropriate.
9714         * doc/invoke.texi: Likewise.
9715         * doc/tm.texi: Likewise.
9716
9717 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
9718
9719         PR target/34393
9720         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9721         to a reg.
9722
9723 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9724
9725         * doc/md.texi (clz, ctz): Add reference.
9726         * doc/rtl.texi (clz, ctz): Likewise.
9727
9728 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9729
9730         PR other/35148
9731         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9732         srcdir.
9733
9734 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9735
9736         * config/s390/s390.c (struct constant_pool): New field
9737         emit_pool_after added.
9738         (s390_mainpool_start): Set the emit_pool_after flag according
9739         to the section switch notes.
9740         (s390_mainpool_finish): Consider emit_pool_after when emitting
9741         the literal pool at the end of the function.
9742         (s390_chunkify_start): Force literal pool splits at section
9743         switch notes.
9744
9745 2008-02-13  Michael Matz  <matz@suse.de>
9746
9747         PR debug/35065
9748         * var-tracking.c (clobber_variable_part): Correctly traverse the
9749         list.
9750
9751 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9752
9753         PR 29673
9754         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9755         Add -fdump-ipa-inline.
9756         * tree-dump.c (dump_files): Remove tree-inlined dump.
9757         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9758         
9759 2008-02-12  Richard Guenther  <rguenther@suse.de>
9760
9761         PR tree-optimization/35171
9762         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9763         default defs.
9764
9765 2008-02-12  Richard Guenther  <rguenther@suse.de>
9766
9767         PR middle-end/35163
9768         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9769         value-preserving mode.  Disallow final truncation.
9770
9771 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9772
9773         PR middle-end/35136
9774         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9775         code from here to...
9776         (force_gimple_operand): ...here.
9777
9778 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9779
9780         PR c++/35144
9781         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9782         non-compatible pointers.
9783         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9784         different FIELD_DECLs, try harder by comparing field offsets, sizes
9785         and types.
9786
9787         PR inline-asm/35160
9788         * function.c (match_asm_constraints_1): Don't replace the same input
9789         multiple times.
9790
9791 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9792
9793         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9794         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9795         (expand_epilogue): Restore RAMPZ register.
9796         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9797
9798 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9799
9800         * config/i386/cygwin.asm: (__alloca): Correct calling
9801         convention and alignment.
9802         (__chkstk): Force 8 byte stack alignment.
9803
9804 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9805             Richard Guenther  <rguenther@suse.de>
9806
9807         PR tree-optimization/33992
9808         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9809         the zero we compare against.
9810
9811 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9812
9813         PR libfortran/35063
9814         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9815         to CloseHandle after unlocking to prevent accumulation of handle
9816         count.
9817
9818 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9819
9820         PR middle_end/34150
9821         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9822         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9823         and update LABEL_NUSES during and after reload.
9824
9825 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9826
9827         PR middle-end/34627
9828         * combine.c (simplify_if_then_else): Make sure the comparison is
9829         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9830
9831 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9832
9833         PR bootstrap/35051
9834         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9835         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9836         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9837         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9838         * tree.h (get_type_static_bounds): Likewise.
9839
9840 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9841
9842         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9843         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9844         Make -Wfoo language annotations match what the compiler outputs.
9845
9846 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9847
9848         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9849         intrinsics spu_convts, spu_convtu, spu_convtf.
9850
9851 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9852
9853         * doc/extend.texi (Function Attributes) <noinline>: Mention
9854         asm ("") as method to keep calls.
9855
9856 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9857
9858         PR other/32754
9859         * doc/options.texi (Options): Replace references to opts.sh with
9860         optc-gen.awk.
9861         * opts-common.c: Likewise.
9862         * optc-gen.awk: Likewise.
9863         
9864 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9865
9866         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9867
9868 2008-02-07  Richard Henderson  <rth@redhat.com>
9869
9870         PR rtl-opt/33410
9871         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9872         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9873         funny mode.
9874
9875 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9876
9877         PR tree-optimization/35085
9878         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9879         for operand entry oe2 in addition to operand entry oe3 in order to
9880         expose more opportunities for vectorizer sum reduction.
9881
9882 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9883
9884         PR other/35107
9885         * Makefile.in (LIBS): Remove $(GMPLIBS).
9886         (cc1-dummy, cc1): Add $(GMPLIBS).
9887
9888 2008-02-06  Jan Hubicka  <jh@suse.cz>
9889
9890         PR target/23322
9891         * i386.md (moddf_integer): Do not produce partial memory stalls for
9892         targets where it hurts.
9893
9894 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9895
9896         PR target/35083
9897         * optabs.c (expand_float): Do not check for decimal modes when
9898         expanding unsigned integer through signed conversion.
9899
9900 2008-02-06  Nick Clifton  <nickc@redhat.com>
9901
9902         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9903         inside the clobber with a match_operand and duplicated operand
9904         number in the constraint.
9905         (ineqbranchsi): Delete redundant comment.
9906
9907 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9908
9909         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9910         builtin_define ("__USE_INIT_FINI__").
9911         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9912         -msx multilibs.
9913         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9914
9915 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9916
9917         PR documentation/30330
9918         * doc/invoke.texi (C++ Dialect Options)
9919         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9920         For each warning option -Wfoo that allows -Wno-foo, ensure both
9921         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9922         entry of -Wswitch-default, index -Wnormalized= including the
9923         `=', and -Wlarger-than-@var{len} including @var{len}.
9924
9925 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9926
9927         * config/i386/i386.md (floatunssisf2): Use
9928         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9929         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9930         Macroize expander using MODEF mode iterator.
9931
9932 2008-02-05  Diego Novillo  <dnovillo@google.com>
9933
9934         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9935
9936         PR 33738
9937         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9938
9939 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9940
9941         PR other/35070
9942         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9943
9944 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9945
9946         PR target/35084
9947         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9948         to indicate if a message should be generated.
9949         (init_cumulative_args): Updated.
9950         (function_value_32): Likewise.
9951
9952 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9953
9954         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9955
9956 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9957
9958         PR target/35083
9959         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9960         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9961
9962 2008-02-04  Diego Novillo  <dnovillo@google.com>
9963
9964         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9965
9966         PR 33738
9967         * tree-vrp.c (vrp_evaluate_conditional): With
9968         -Wtype-limits, emit a warning when comparing against a
9969         constant outside the natural range of OP0's type.
9970
9971 2008-02-04  Richard Guenther  <rguenther@suse.de>
9972
9973         PR middle-end/33631
9974         * expr.c (count_type_elements): Give for unions instead of
9975         guessing.
9976
9977 2008-02-04  Richard Guenther  <rguenther@suse.de>
9978
9979         PR middle-end/35043
9980         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9981         to TYPE_DOMAINs base type instead of using bitsizetype here.
9982
9983 2008-02-03  Jason Merrill  <jason@redhat.com>
9984
9985         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9986
9987 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9988
9989         PR other/29972
9990         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9991         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9992         (RS/6000 and PowerPC Options): Fix typos and markup.
9993         * doc/passes.texi (Tree-SSA passes): Likewise.
9994
9995 2008-02-02  Michael Matz  <matz@suse.de>
9996
9997         PR target/35045
9998         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9999         from record_last_reg_set_info.
10000         (record_last_reg_set_info): Take an RTX argument, iterate over all
10001         constituent hardregs.
10002         (record_last_set_info, record_opr_changes): Change calls to
10003         new signature or to record_last_reg_set_info_regno.
10004
10005 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10006
10007         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10008
10009 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10010
10011         PR rtl-optimization/34773
10012         * reg-notes.def (EQUAL): Mention significance of combination of
10013         REG_EQUAL and REG_RETVAL.
10014         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10015         insn that has a REG_RETVAL.
10016
10017 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10018
10019         PR bootstrap/33781
10020         * configure.ac (--enable-fixed-point): Disable unless explicitly
10021         requested on IRIX.
10022         * configure: Regenerate.
10023
10024 2008-02-01  Richard Guenther  <rguenther@suse.de>
10025
10026         PR other/35042
10027         * invoke.texi (-finline-limit): Remove no longer true parts
10028         of the documentation.  Note that there is no default value.
10029
10030 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10031             Mark Mitchell  <mark@codesourcery.com>
10032             Ben Elliston  <bje@au.ibm.com>
10033
10034         PR c/29326
10035         * doc/extend.texi (Other Builtins): Document.
10036
10037 2008-01-31  Tom Browder <tom.browder@gmail.com>
10038
10039         * doc/c-tree.texi (Types): Fix grammar.
10040         (Expression trees): Ditto.
10041         * doc/passes.texi (Tree-SSA passes): Ditto.
10042         
10043         * doc/configterms.texi (Configure Terms): Fix typo.
10044         * doc/cpp.texi (Common Predefined Macros): Ditto.
10045         * doc/md.texi (Machine Constraints): Ditto.
10046         
10047         * doc/makefile.texi (Makefile): Add comma.
10048
10049 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10050             Gerald Pfeifer  <gerald@pfeifer.com>
10051         
10052         * doc/sourcebuild.texi (Front End): Remove references to CVS
10053         and CVSROOT/modules.
10054         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10055         (Back End): Remove reference to CVS.
10056
10057 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10058
10059         PR target/34900
10060         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10061         comment from...
10062         (mips16_gp_pseudo_reg): ...here.
10063         * config/mips/mips.md (load_const_gp): Replace with...
10064         (load_const_gp_<mode>): ...this :P-based insn.
10065
10066 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10067
10068         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10069         options. Minor fixes.
10070         (-std): Move reference to standards closer to where language
10071         standards are first mentioned.
10072         
10073 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10074
10075         PR rtl-optimization/34995
10076         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10077         parameter and return a bool.  If the rtx parameter is nonnull,
10078         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10079         (find_reloads): Update call accordingly.  Pass the new operand
10080         if it needed no address reloads, otherwise pass null.
10081
10082 2008-01-30  Richard Henderson  <rth@redhat.com>
10083
10084         PR c/34993
10085         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10086         for unbounded arrays.
10087
10088 2008-01-30  Silvius Rus  <rus@google.com>
10089
10090         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10091
10092 2008-01-30  Jan Hubicka  <jh@suse.cz>
10093
10094         PR target/34982
10095         * i386.c (init_cumulative_args): Use real function declaration when
10096         calling locally.
10097
10098 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10099
10100         PR rtl-optimization/34998
10101         * global.c (build_insn_chain): Treat non-subreg_lowpart
10102         SUBREGs of pseudos as clobbering all the words covered by the
10103         SUBREG, not just all the bytes.
10104         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10105         original df_ref rather than an extract parameter.
10106         (global_conflicts): Update call accordingly.
10107
10108 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10109
10110         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10111         the overflow check to make it easier to read.
10112         (__fixtfdi): Change the type of the ll member in union
10113         long_double to UDItype_x.
10114
10115 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10116
10117         PR middle-end/34969
10118         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10119         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10120         * tree-inline.c (fold_marked_statements): Call
10121         cgraph_update_edges_for_call_stmt if folding a call statement.
10122         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10123         debug_generic_stmt calls, reset it back afterwards.
10124
10125         PR c/35017
10126         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10127         static decls.
10128         * c-typeck.c (build_external_ref): Don't pedwarn about
10129         static vars in current function's scope.
10130
10131 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10132
10133         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10134
10135 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10136
10137         PR c/35002
10138         * ipa-struct-reorg.c: Fix spelling.
10139         * params.def: Ditto.
10140
10141 2008-01-29  Richard Guenther  <rguenther@suse.de>
10142
10143         PR middle-end/35006
10144         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10145         field.
10146         * tree-inline.c (remap_type): Increment remapping_type_depth
10147         around remapping types.
10148         (copy_body_r): Only add referenced variables if they are referenced
10149         from code, not types.
10150
10151 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10152
10153         PR c++/34055
10154         PR c++/34103
10155         PR c++/34219
10156         PR c++/34606
10157         PR c++/34753
10158         PR c++/34754
10159         PR c++/34755
10160         PR c++/34919
10161         PR c++/34961
10162         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10163         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10164
10165 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10166
10167         PR target/34412
10168         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10169         pointer for tiny stack.
10170
10171 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10172
10173         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10174
10175 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10176
10177         * config/vx-common.h: Fix typo in comment.
10178
10179 2008-01-28  Ian Lance Taylor  <iant@google.com>
10180
10181         PR c++/34862
10182         PR c++/33407
10183         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10184         coalesce pointers if they have different DECL_NO_TBAA_P values.
10185         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10186         between variables with different DECL_NO_TBAA_P values.
10187
10188 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10189
10190         PR 31535
10191         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10192         are not legitimate small data references on SPE targets.
10193
10194 2008-01-28  David Daney  <ddaney@avtrex.com>
10195
10196         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10197
10198 2008-01-28  David Daney  <ddaney@avtrex.com>
10199
10200         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10201
10202 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10203
10204         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10205         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10206         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10207         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10208         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10209         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10210         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10211         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10212
10213 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10214
10215         * basic-block.h (condjump_equiv_p): Fix comment.
10216
10217 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10218
10219         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10220         print_generic_stmt_indented): Fix comment.
10221
10222 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10223
10224         * configure.ac (__stack_chk_fail): Add detecion for availability
10225         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10226         * configure: Regenerate.
10227
10228 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10229
10230         PR middle-end/34688
10231         * final.c (output_addr_const): Handle TRUNCATE.
10232
10233 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10234
10235         PR target/34711
10236         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10237         (zero_cost, infinite_cost): New constants.
10238         (struct cost_pair): Change type of cost to comp_cost.
10239         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10240         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10241         New functions.
10242         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10243         split_address_cost, ptr_difference_cost, difference_cost,
10244         get_computation_cost_at, get_computation_cost,
10245         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10246         determine_use_iv_cost_condition, determine_use_iv_costs,
10247         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10248         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10249         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10250         Change type of cost to comp_cost.
10251         (determine_iv_cost): Increase cost of non-original ivs, instead
10252         of decreasing the cost of original ones.
10253         (get_address_cost): Indicate the complexity of the addressing mode 
10254         in comp_cost.
10255         (try_add_cand_for): Prefer using ivs not specific to some object.
10256         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10257
10258 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10259             Janis Johnson  <janis187@us.ibm.com>
10260
10261         PR target/34814
10262         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10263         (TARGET_INSTANTIATE_DECLS): Likewise.
10264         * target.h (expand_to_rtl_hook): New target hook.
10265         (instantiate_decls): Likewise.
10266         * function.c (instantiate_decl): Make non-static.  Rename to...
10267         (instantiate_decl_rtl): ... this.
10268         (instantiate_expr): Use instantiate_decl_rtl.
10269         (instantiate_decls_1): Likewise.
10270         (instantiate_decls): Likewise.
10271         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10272         * function.h (instantiate_decl_rtl): Add prototype.
10273         * cfgexpand.c (target.h): New include.
10274         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10275         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10276         (TARGET_INSTANTIATE_DECLS): Likewise.
10277         (TARGET_INITIALIZER): New target hooks added.
10278         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10279         New prototype.
10280         * config/rs6000/rs6000.c (tree-flow.h): New include.
10281         (machine_function): Add sdmode_stack_slot field.
10282         (rs6000_alloc_sdmode_stack_slot): New function.
10283         (rs6000_instantiate_decls): Likewise.
10284         (rs6000_secondary_memory_needed_rtx): Likewise.
10285         (rs6000_check_sdmode): Likewise.
10286         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10287         (TARGET_INSTANTIATE_DECLS): Likewise.
10288         (rs6000_hard_regno_mode_ok): Allow SDmode.
10289         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10290         (rs6000_emit_move): Handle SDmode.
10291         (function_arg_advance): Likewise.
10292         (function_arg): Likewise.
10293         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10294         SDmode var args for 32-bit compiles.
10295         (rs6000_secondary_reload_class): Handle SDmode.
10296         (rs6000_output_function_epilogue): Likewise.
10297         (rs6000_function_value): Simplify if statement.
10298         (rs6000_libcall_value): Likewise.
10299         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10300         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10301         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10302         (movsd_hardfloat): New define_insn.
10303         (movsd_softfloat): Likewise.
10304         (movsd_store): Likewise.
10305         (movsd_load): Likewise.
10306         (extendsddd2): Likewise.
10307         (extendsdtd2): Likewise.
10308         (truncddsd2): Likewise.
10309         (movdd_hardfloat64): Fixup comment.
10310         (UNSPEC_MOVSD_LOAD): New constant.
10311         (UNSPEC_MOVSD_STORE): Likewise.
10312
10313 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10314
10315         PR c++/34965
10316         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10317         TRUTH_XOR_EXPR.
10318         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10319         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10320         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10321         and TRUTH_XOR_EXPR.
10322
10323 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10324
10325         PR target/34794
10326         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10327         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10328         __LONGDOUBLE128 too.
10329         * config/rs6000/aix61.h: New file.
10330
10331 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10332
10333         PR rtl-optimization/34959
10334         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10335         popcount and parity rtxes the same mode as their operand.
10336         Truncate or extend the result to the return value's mode
10337         if necessary.
10338
10339 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10340
10341         PR target/34981
10342         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10343         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10344         to GOT_VERSION_REGNUM.
10345         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10346         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10347         * config/mips/mips.c (mips_emit_call_insn): New function.
10348         (mips_call_tls_get_addr): Call mips_expand_call directly.
10349         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10350         emit_call_insn.
10351         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10352         (mips_expand_call): Update the call to mips16_build_call_stub
10353         accordingly and a remove redundant condition.  Assert that MIPS16
10354         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10355         the call insn.
10356         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10357         TARGET_USE_GOT.
10358         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10359         (mips_avoid_hazard): Remove hazard_set handling.
10360         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10361         (UNSPEC_RESTORE_GP): ...this.
10362         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10363         (FAKE_CALL_REGNO): Rename to...
10364         (GOT_VERSION_REGNUM): ...this.
10365         (type): Add "ghost" value.  Add an associated insn reservation.
10366         (hazard_set): Remove.
10367         (exception_receiver): Rename to...
10368         (restore_gp): ...this and update the unspec identifier accordingly.
10369         (exception_receiver, nonlocal_got_receiver): New expanders.
10370         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10371         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10372         (set_got_version, update_got_version): New patterns.
10373
10374 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10375
10376         PR target/34970
10377         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10378
10379 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10380
10381         PR other/31955
10382         * doc/install.texi2html: Generate gcc-vers.texi.
10383
10384 2008-01-25  DJ Delorie  <dj@redhat.com>
10385
10386         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10387
10388 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10389
10390         * config/c4x: Remove directory.
10391         * config.gcc (crx-*, mt-*): Mark obsolete.
10392         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10393         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10394         sh-*-rtemscoff*): Remove cases.
10395         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10396         * real.c (encode_c4x_single, decode_c4x_single,
10397         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10398         c4x_extended_format): Remove.
10399         * real.h (c4x_single_format, c4x_extended_format): Remove.
10400         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10401         on C4x.
10402         (Pragmas): Remove comment about c4x pragmas.
10403         * doc/install.texi (c4x): Remove target-specific instructions.
10404         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10405         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10406         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10407         refer to C4x source files as examples.
10408         (C4X_FLOAT_FORMAT): Remove documentation.
10409
10410 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10411
10412         * config/bfin/bfin.c (override_options): Reorder tests so that
10413         flag_pic gets enabled for -msep-data.
10414
10415 2008-01-25  Richard Guenther  <rguenther@suse.de>
10416
10417         PR middle-end/32244
10418         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10419         to its bitfield precision if required.
10420
10421 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10422
10423         PR middle-end/33880
10424         * tree-nested.c (walk_omp_for): New function.
10425         (convert_nonlocal_reference, convert_local_reference): Call
10426         walk_omp_for on OMP_FOR.
10427         (convert_call_expr): Call walk_body on OMP_FOR's
10428         OMP_FOR_PRE_INIT_BODY.
10429
10430 2008-01-25  Richard Guenther  <rguenther@suse.de>
10431
10432         PR tree-optimization/34966
10433         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10434         default defs and PHI_NODEs we have to insert after the
10435         defining statement.
10436
10437 2008-01-24  Nick Clifton  <nickc@redhat.com>
10438
10439         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10440         Provide a default definition.
10441         (LIBGCC2_UNITS_PER_WORD): Likewise.
10442
10443         * config/stormy16/stormy16.c: Include df.h for the prototype
10444         for df_regs_ever_live_p.
10445         (xstormy16_expand_builtin_va_start): Convert the stack offset
10446         into a component_ref and then use POINTER_PLUS_EXPR to add it
10447         to the incoming_virtual_args_rtx.
10448         (xstormy16_gimplify_va_arg_expr): Rename to
10449         xstormy16_gimplify_va_arg_expr.
10450         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10451         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10452         xstormy16_gimplify_va_arg_expr.
10453         Fix up some formatting issues.
10454
10455         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10456         Move to predicates.md.
10457         (xs_hi_general_operand): Likewise.
10458         (xs_hi_nonmemory_operand): Likewise.
10459         * config/stormy16/predicates.md:
10460         (xstormy16_carry_plus_operand): New predicate.
10461         (xs_hi_general_operand): New predicate.
10462         (xs_hi_nonmemory_operand): New predicate.
10463         * config/stormy16/stormy16-protos.h:
10464         (xstormy16_carry_plus_operand): Delete prototype.
10465         (xs_hi_general_operand): Likewise.
10466         (xs_hi_nonmemory_operand): Likewise.
10467
10468         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10469         modifiers as they are no longer needed and they can trigger
10470         reload spill failures.
10471
10472         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10473         with a match_operand in order to help reload.
10474
10475         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10476         constraint with 'e' for the 8th alternative as this version of
10477         the mov.w instruction only accepts the lower 8 registers.
10478
10479 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10480
10481         PR target/34856
10482         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10483         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10484         vector elements.
10485
10486 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10487
10488         PR middle-end/33333
10489         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10490
10491 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10492
10493         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10494         New functions.
10495         (remove_structure): Update allocations list before removing structure.
10496         
10497 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10498
10499         * ipa-struct-reorg.c (is_safe_cond_expr, 
10500         create_new_stmts_for_cond_expr): Use integer_zerop function,
10501         that recognize not only zero-pointer, but zero-integer too.
10502
10503 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10504
10505         PR other/22232
10506         * fixproto: Escape "." in sed expression that strips leading "./".
10507
10508 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10509
10510         PR driver/34904
10511         * gcc.c (SWITCH_OK): Removed.
10512         (SWITCH_LIVE): Changed to bit.
10513         (SWITCH_FALSE): Likewise.
10514         (SWITCH_IGNORE): Likewise.
10515         (switchstr): Change live_cond to unsigned int.
10516         (process_command): Replace SWITCH_OK with 0.
10517         (do_self_spec): Likewise.
10518         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10519         (give_switch): Likewise.
10520         (used_arg): Likewise.
10521         (do_spec_1): Set the SWITCH_IGNORE bit.
10522         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10523         bits.  Set the SWITCH_LIVE bit.
10524
10525 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10526
10527         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10528
10529 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10530
10531         PR tree-optimization/34472
10532         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10533         parameter to a "bool *" and set *DATA to false if there is
10534         an unsafe access.  Do not delete the structure here.
10535         (check_cond_exprs): Delete it here instead.
10536         (check_cond_exprs, exclude_cold_structs): Do not increase
10537         I when removing a structure.
10538
10539 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10540
10541         PR target/34856
10542         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10543         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10544
10545 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10546
10547         PR middle-end/34934
10548         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10549         a fixed vector for stack.
10550
10551 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10552
10553         PR c++/25701
10554         * doc/gcc.texi (Software development): Add a direntry for g++.
10555         
10556 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10557
10558         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10559         stale and straggling -fforce-addr comments above.
10560
10561         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10562         define.
10563         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10564         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10565
10566 2008-01-23  Michael Matz  <matz@suse.de>
10567
10568         PR debug/34895
10569         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10570         gen_type_die.
10571
10572 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10573
10574         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10575         malloc result type.
10576
10577 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10578
10579         * config/avr/avr.c (avr_current_arch): New variable.
10580         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10581         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10582         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10583         (avr_override_options): Init 'avr_current_arch'. 
10584         (base_arch_s): Move from here...
10585         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10586         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10587         'mega' to 'have_jmp_call'.
10588         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10589         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10590         macros.
10591         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10592         architectures.
10593         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10594         MULTILIB_MATCHES): (Ditto.).
10595
10596 2008-01-23  Richard Guenther  <rguenther@suse.de>
10597
10598         PR middle-end/31529
10599         * cgraphunit.c (cgraph_reset_node): Always mark the node
10600         not reachable if it is not queued already.
10601
10602 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10603
10604         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10605         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10606         (cputype_selected): New static variable.
10607         (bfin_handle_option): Set it if -mcpu is used.
10608         (override_option): Select default set of workarounds if no cpu type
10609         selected on the command line.
10610         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10611
10612         From  Michael Frysinger  <michael.frysinger@analog.com>
10613         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10614         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10615
10616         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10617         for bf547, bf523, bf524, and bf526.
10618         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10619         bf526.
10620         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10621         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10622         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10623         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10624         * doc/invoke.texi (Blackfin Options): Document that
10625         -mcpu now accept bf547, bf523, bf524, and bf526.
10626
10627 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10628
10629         PR rtl-optimization/34628
10630         * combine.c (try_combine): Stop and undo after the first combination
10631         if an autoincrement side-effect on the first insn has effectively
10632         been lost.
10633
10634 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10635
10636         PR target/34529
10637         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10638         Offset addresses are not valid for Altivec or paired float modes.
10639
10640 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10641
10642         PR c++/34607
10643         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10644         if DECL_INITIAL (decl) is error_mark_node.
10645
10646         PR c++/34914
10647         * c-common.c (handle_vector_size_attribute): Only allow
10648         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10649         the same way as pointer, array etc. types.
10650         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10651
10652         PR c++/34917
10653         * tree.c (build_type_attribute_qual_variant): Call
10654         build_qualified_type if attributes are equal, but quals are not.
10655
10656 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10657
10658         PR 32102
10659         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10660         * flags.h (warn_strict_aliasing): Remove.
10661         (warn_strict_overflow): Remove.
10662         * opts.c (warn_strict_aliasing): Remove.
10663         (warn_strict_overflow): Remove.
10664         * c-opts.c (c_common_handle_option): -Wall only sets
10665         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10666         (c_common_post_options): Give default values to -Wstrict-aliasing
10667         and -Wstrict-overflow if they are uninitialized.
10668         * common.opt (Wstrict-aliasing): Specify Var and Init.
10669         (Wstrict-overflow): Likewise.
10670
10671 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10672
10673         PR rtl-optimization/26854
10674         PR rtl-optimization/34400
10675         PR rtl-optimization/34884
10676         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10677         DF_RD->gen.
10678         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10679         (df_rd_bb_info.expanded_lr_out): Deleted
10680         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10681         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10682         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10683         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10684         Removed code to allocate, initialize or free expanded_lr_out.
10685         (df_rd_bb_local_compute_process_def): Restructured to make more
10686         understandable.
10687         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10688         sets if the sets are being trimmed.
10689
10690 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10691
10692         PR bootstrap/32287
10693         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10694         (as_vers): Likewise.
10695         * configure: Regenerated.
10696
10697 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10698
10699         PR middle-end/33092
10700         * tree-pass.h (pass_build_alias): New pass.
10701         * tree-ssa-alias.c (gate_build_alias): New.
10702         (pass_build_alias): New.
10703         * passes.c (init_optimization_passes): Add pass_build_alias after
10704         pass_create_structure_vars.
10705
10706 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10707
10708         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10709         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10710         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10711         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10712         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10713         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10714         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10715         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10716         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10717         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10718         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10719         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10720         * config/s390/s390.md (FP_ALL): New mode iterator.
10721         (_d): New mode attribute.
10722         ("*signbit<mode>2>"): Changed mode of first operand.
10723         ("isinf<mode>2"): Changed mode of first operand.
10724         ("*TDC_insn"): Adaptation for DFP modes.
10725
10726 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10727
10728         * tree.c (check_qualified_type): Improve function description.
10729
10730 2008-01-21  Jason Merrill  <jason@redhat.com>
10731
10732         PR c++/34196
10733         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10734         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10735         if it is set.
10736
10737 2008-01-21  DJ Delorie  <dj@redhat.com>
10738
10739         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10740         return zero.
10741
10742 2008-01-21  Richard Guenther  <rguenther@suse.de>
10743
10744         PR middle-end/34856
10745         * tree-cfg.c (verify_expr): Allow all invariant expressions
10746         instead of just constant class ones as reference argument.
10747         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10748         like any other constant.
10749         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10750
10751 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10752
10753         * regmove.c (fixup_match_1): Update call crossed frequencies.
10754
10755 2008-01-21  Richard Guenther  <rguenther@suse.de>
10756
10757         PR c/34885
10758         * tree-inline.c (setup_one_parameter): Deal with mismatched
10759         types using a VIEW_CONVERT_EXPR.
10760
10761 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10762             Olga Golovanevsky  <olga@il.ibm.com>
10763         
10764         PR tree-optimization/34701
10765         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10766         when the structure size is not a power of 2.
10767
10768 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10769
10770         * doc/install.texi: Add doc for --enable-checking=df.
10771         
10772 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10773
10774         PR rtl-optimization/34808
10775         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10776
10777 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10778
10779         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10780         input.
10781
10782 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10783
10784         PR rtl-optimization/26854
10785         PR rtl-optimization/34400
10786         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10787         DF_RD->gen.
10788         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10789         (df_rd_bb_info.expanded_lr_out): New.
10790         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10791         * loop_iv.c (iv_analysis_loop_init): Ditto.
10792         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10793         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10794         Added code to allocate, initialize or free expanded_lr_out.
10795         (df_rd_bb_local_compute_process_def): Restructured to make
10796         more understandable.
10797         (df_rd_confluence_n): Add code to do nothing with fake edges and
10798         code to no apply invalidate_by_call sets if the sets are being trimmed.
10799         (df_lr_local_finalize): Renamed to df_lr_finalize.
10800         (df_live_local_finalize): Renamed to df_live_finalize.
10801
10802 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10803
10804         PR target/34831
10805         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10806         deciding whether to use reciprocal instructions.
10807
10808 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10809
10810         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10811         dwarf2out_note_section_used if cold_text_section is NULL.
10812
10813 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10814
10815         PR gcov-profile/34610
10816         * tree-cfg.c (make_edges): Mark both outgoing edges from
10817         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10818         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10819         from OMP_FOR and OMP_CONTINUE outgoing edges.
10820
10821         * tree-profile.c (tree_profiling): Return early if
10822         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10823         at the end.
10824         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10825         from cfun to child_cfun.
10826         * function.h (struct function): Add after_tree_profile bit.
10827
10828 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10829
10830         * config/avr/avr.S (_exit): Disable interrupt.
10831
10832 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10833             Steven Bosscher  <stevenb.gcc@gmail.com>
10834
10835         PR rtl-optimization/26854
10836         PR rtl-optimization/34400
10837         * df-problems.c (df_live_scratch): New scratch bitmap.
10838         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10839         (df_live_reset): Clear the proper bitmaps.
10840         (df_live_bb_local_compute): Only process the artificial defs once
10841         since the order is not important.
10842         (df_live_init): Init the df_live sets only with the variables
10843         found live by df_lr.
10844         (df_live_transfer_function): Use the df_lr sets to prune the
10845         df_live sets as they are being computed.  
10846         (df_live_free): Free df_live_scratch.
10847
10848 2008-01-18  Ian Lance Taylor  <iant@google.com>
10849
10850         * common.opt: Add fmerge-debug-strings.
10851         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10852         flag_merge_debug_strings rather than flag_merge_constants.
10853         * doc/invoke.texi (Option Summary): Mention
10854         -fmerge-debug-strings.
10855         (Debugging Options): Document -fmerge-debug-strings.
10856
10857 2008-01-18  Ian Lance Taylor  <iant@google.com>
10858
10859         PR c++/33407
10860         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10861         (struct tree_function_decl): Add new field operator_new_flag.
10862         * tree-inline.c (expand_call_inline): When inlining a call to
10863         operator new, force the return value to go into a variable, and
10864         set DECL_NO_TBAA_P on that variable.
10865         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10866
10867 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10868
10869         PR debug/34484
10870         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10871         DWARF2_DEBUGGING_INFO.
10872         (dwarf2out_note_section_used): Ditto.  Add prototype.
10873         (have_multiple_function_sections, text_section_used,
10874         cold_text_section_used, *cold_text_sections): Move declarations
10875         before their uses.
10876
10877 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10878
10879         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10880         field and add signal_ra.
10881         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10882         assignments to frame state pc.  Move end of stack check after
10883         MD_FALLBACK_FRAME_STATE_FOR.
10884         (uw_update_context_1): Use frame state signal_regs if set, instead
10885         of checking signal_frame flag.
10886         (uw_update_context): Use frame state signal_ra if set.
10887         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10888         * config/xtensa/linux-unwind.h: New file.
10889
10890 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10891
10892         * modulo-sched.c (get_sched_window): Fix comment typo.
10893
10894 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10895
10896         PR tree-optimization/34648
10897         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10898
10899 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10900
10901         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10902         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10903
10904 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10905
10906         PR rtl-optimization/34400
10907         * df-core.c (df_worklist_dataflow_overeager,
10908         df_worklist_dataflow_doublequeue): New functions.
10909         (df_worklist_dataflow): Two different worklist solvers.
10910         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10911         New param.
10912
10913 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10914
10915         PR testsuite/34821
10916         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10917         and ftree-parallelize-loops.
10918
10919 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10920
10921         PR rtl-optimization/34826
10922         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10923
10924 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10925
10926         * global.c (find_reg): Mark the eh regs as used if necessary.
10927         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10928         * ra.h (struct allocno): no_eh_reg field added.  Changed
10929         no_stack_reg type to bitfield.
10930
10931 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10932
10933         * tree.c (substitute_in_expr): Add missing 'break'.
10934
10935 2008-01-17  Richard Guenther  <rguenther@suse.de>
10936
10937         PR tree-optimization/34825
10938         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10939         x / x as division to handle.
10940
10941 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10942
10943         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10944         "-pthread" is specified.
10945         * pa-hpux11.h (LIB_SPEC): Likewise.
10946
10947 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10948             Peter Bergner  <bergner@vnet.ibm.com>
10949
10950         PR rtl-optimization/33796
10951         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10952
10953 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10954
10955         PR libgfortran/34699
10956         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10957         static links.
10958         * pa-hpux10.h (LINK_SPEC): Likewise.
10959         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10960
10961 2008-01-16  Richard Guenther  <rguenther@suse.de>
10962
10963         PR middle-end/32628
10964         * fold-const.c (fold_convert_const_int_from_int): Do not
10965         set overflow if that occured only because of a sign extension
10966         change when converting from/to a sizetype with the same
10967         precision and signedness.
10968
10969 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10970
10971         PR debug/34249
10972         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10973         location address to the correct place.  Update copyright year.
10974
10975 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10976
10977         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10978         no dependences in the dependence_relations vector.
10979
10980 2008-01-16  Jan Hubicka  <jh@suse.cz>
10981
10982         PR rtl-optimization/31396
10983         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10984         * cfg.c (dump_reg_info): Print it.
10985         * regs.h (struct reg_info_t): add freq_calls_crossed.
10986         (REG_FREQ_CALLS_CROSSED): New macro.
10987         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10988         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10989         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10990         regmove_optimize): Update call crossed frequencies.
10991         * local-alloc.c (struct qty): Add freq_calls_crossed.
10992         (alloc_qty): Copute freq_calls_crossed.
10993         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10994         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10995         * ra.h (struct allocno): Add freq_calls_crossed.
10996
10997 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10998
10999         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11000         libgomp when compiling with ftree-parallelize-loops.
11001         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11002
11003 2008-01-16  Richard Guenther  <rguenther@suse.de>
11004
11005         PR tree-optimization/34769
11006         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11007         * tree.c (int_cst_value): Instead make this function more
11008         permissive in what it accepts as valid input.  Document this
11009         function always sign-extends the value.
11010
11011 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11012             Richard Guenther  <rguenther@suse.de>
11013
11014         PR c/34668
11015         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11016         (gimple_fold_indirect_ref_rhs): ... this.
11017         (gimple_fold_indirect_ref): New function with foldings
11018         that preserve lvalueness.
11019         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11020         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11021         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11022         to fold an INDIRECT_REF, fall back to the old use of
11023         fold_indirect_ref_1.
11024
11025 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11026
11027         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11028         free_conflict_function.
11029         (compute_self_dependence): Same.
11030
11031 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11032
11033         PR debug/34249
11034         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11035         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11036         function global.
11037         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11038         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11039         for DWARF2_UNWIND_INFO targets.
11040
11041 2008-01-16  Richard Guenther  <rguenther@suse.de>
11042
11043         PR c/34768
11044         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11045         type qualifiers for function types.
11046
11047 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11048
11049         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11050         loop_iterator li from previous commit.
11051
11052 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11053
11054         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11055
11056 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11057
11058         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11059         (parallelize_loops): Don't parallelize irreducible components.
11060
11061 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11062
11063         PR c++/24924
11064         * c-opts (c_common_post_options): Do not enable CPP
11065         flag_pedantic_errors by default.
11066         
11067 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11068
11069         PR rtl-optimization/31944
11070         * cse.c (remove_pseudo_from_table): New function.
11071         (merge_equiv_classes): Use above function to remove pseudo-registers.
11072         (invalidate): Likewise.
11073
11074 2008-01-13  Richard Guenther  <rguenther@suse.de>
11075
11076         PR middle-end/34601
11077         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11078         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11079
11080 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11081
11082         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11083         validate_change to unshare the source of the PC set.
11084
11085 2008-01-12  Jan Hubicka  <jh@suse.cz>
11086
11087         PR middle-end/32135
11088         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11089         references above array bounds.  This might trigger bounds checks for
11090         pointers to arrays.
11091
11092 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11093
11094         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11095         new_replaceable_dependencies.
11096
11097 2008-01-12  Doug Kwan  <dougkwan@google.com>
11098
11099         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11100         instead of OPT_Wreturn_type in warning due to ignored return type
11101         qualifiers.
11102         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11103         options included in -Wextra.
11104         * c.opt: New option -Wignored_qualifiers.
11105         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11106         -Wignore_qualifiers.
11107         (-Wignored-qualifiers): Document.
11108         (-Wreturn-type): Remove description of functionality now handled
11109         by -Wignored-qualifiers.
11110
11111 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11112
11113         PR ada/33788
11114         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11115         NOP_EXPR if it is between integral types with the same precision.
11116
11117 2008-01-12  Jan Hubicka  <jh@suse.cz>
11118
11119         PR other/28023
11120         * invoke.texi (max-inline-recursive-depth): Fix default value.
11121
11122 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11123
11124         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11125         correct type.
11126
11127 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11128         
11129         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11130         
11131 2008-01-11  James E. Wilson  <wilson@specifix.com>
11132
11133         PR target/26015
11134         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11135
11136 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11137
11138         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11139         save/restore frame pointer register and don't use 'call-prologues' 
11140         optimization in function with "OS_task" attribute.
11141
11142 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11143
11144         PR middle-end/31309
11145         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11146         when copying to memory.
11147
11148 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11149
11150         PR rtl-optimization/30905
11151         * cfgcleanup.c: Include dce.h
11152         (crossjumps_occured): New global variable.
11153         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11154         If something changed, set crossjumps_occured to true.
11155         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11156         Don't add/remove fake edges to exit here...
11157         (cleanup_cfg): ...but do it here, when crossjumping.
11158         Run a fast DCE when successful crossjumps occured in the latest
11159         iteration of try_optimize_cfg.
11160
11161 2008-01-11  Richard Guenther  <rguenther@suse.de>
11162
11163         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11164         (struct vn_unary_op_s): Likewise.
11165         (vn_reference_insert): Free old reference on hash collision.
11166
11167 2008-01-10  Raksit Ashok  <raksit@google.com>
11168
11169         PR rtl-optimization/27971
11170         * combine.c (find_split_point): Split PLUS expressions which are
11171         inside a MEM rtx, and whose first operand is complex.
11172
11173 2008-01-10  DJ Delorie  <dj@redhat.com>
11174
11175         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11176         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11177         (m32c_hard_regno_ok): Call the underlying function.
11178
11179 2008-01-10  Richard Guenther  <rguenther@suse.de>
11180
11181         PR middle-end/34683
11182         * tree-cfg.c (tree_merge_blocks): Do not go through the
11183         full-blown folding and stmt updating path if we just deal
11184         with virtual operands.
11185         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11186         test for abnormal SSA_NAMEs.
11187
11188 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11189
11190         PR middle-end/34641
11191         * reload.c (push_reload): Add assertions.  All constants from
11192         reg_equiv_constant should have been used for replacing the respective
11193         pseudo earlier.
11194         (find_reloads_address): Invoke find_reloads_address_part for
11195         constant taken from the reg_equiv_constant array.
11196
11197 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11198
11199         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11200         field (valnum) the first in the struct.  Replace bools with
11201         unit bit fields.
11202
11203 2008-01-10  Richard Guenther  <rguenther@suse.de>
11204
11205         PR tree-optimization/34651
11206         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11207         types and ordering for masking and converting.
11208
11209 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11210
11211         PR tree-optimization/34017
11212         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11213         also for PHI_NODE expressions.
11214
11215 2008-01-09  Jan Hubicka  <jh@suse.cz>
11216
11217         PR tree-optimization/34708
11218         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11219         based on number of case labels.
11220         (init_inline_once): Remove switch_cost.
11221         * tree-inline.h (eni_weights_d): Remove switch_cost.
11222
11223 2008-01-09  Richard Guenther  <rguenther@suse.de>
11224         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11225
11226         PR middle-end/30132
11227         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11228         temporary if an rvalue is ok or an lvalue is not required.
11229
11230 2008-01-09  Richard Guenther  <rguenther@suse.de>
11231
11232         PR middle-end/34458
11233         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11234         adjust return type.
11235
11236 2008-01-09  Richard Guenther  <rguenther@suse.de>
11237
11238         PR middle-end/34679
11239         * tree.c (host_integerp): Check for sizetype only if the
11240         type is an integer type.
11241
11242 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11243
11244         PR debug/26364
11245         * opts.c (decode_options): Disable inlining of functions called
11246         once if not in unit-at-a-time mode.
11247
11248 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11249
11250         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11251
11252 2008-01-08  Richard Guenther  <rguenther@suse.de>
11253
11254         PR middle-end/31863
11255         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11256         out early if the result will be unused.
11257
11258 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11259
11260         PR target/34709
11261         Revert:
11262
11263         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11264         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11265         for TARGET_RECIP.       
11266         
11267 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11268         
11269         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11270         for vectorization tuned.
11271         
11272 2008-01-08  Richard Guenther  <rguenther@suse.de>
11273
11274         PR tree-optimization/34683
11275         * tree-ssa-operands.c (operand_build_cmp): Export.
11276         * tree-ssa-operands.h (operand_build_cmp): Declare.
11277         * tree-vn.c (vuses_compare): Remove.
11278         (sort_vuses): Use operand_build_cmp.
11279         (sort_vuses_heap): Likewise.
11280         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11281         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11282         (vdefs_to_vec): Do not sort already sorted VDEFs.
11283
11284 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11285
11286         PR middle-end/34694
11287         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11288
11289 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11290
11291         PR target/34702
11292         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11293         limitations of reciprocal sequences on x86 targets.
11294
11295 2008-01-08  Richard Guenther  <rguenther@suse.de>
11296
11297         PR tree-optimization/34683
11298         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11299
11300 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11301
11302         PR target/34622
11303         * config/darwin.c (darwin_mergeable_string_section): Don't use
11304         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11305
11306 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11307
11308         PR target/34682
11309         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11310         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11311         predicates of op0 and op1 to register_operand.
11312         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11313         expander using X87MODEF mode iterator.  Change predicates of
11314         op0 and op1 to register_operand.
11315         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11316         corresponding patterns and macroize using MODEF macro.  Change
11317         predicates of op0 and op1 to register_operand and remove
11318         "m" constraint. Disparage "r" alternative with "!".
11319         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11320         macroize using X87MODEF macro.  Change predicates of op0 and op1
11321         to register_operand and remove "m" constraint.  Disparage "r"
11322         alternative with "!".
11323         (absneg splitter with memory operands): Remove.
11324         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11325         patterns and macroize using X87MODEF mode iterator.
11326         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11327         Change predicate of op1 to register_operand.
11328         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11329         for memory operands.
11330
11331 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11332
11333         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11334
11335 2008-01-07  Richard Guenther  <rguenther@suse.de>
11336
11337         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11338         fields.
11339
11340 2008-01-07  Richard Guenther  <rguenther@suse.de>
11341
11342         PR tree-optimization/34683
11343         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11344         VOPs of the needed size to save memory.  Use VEC_quick_push
11345         to save compile-time.
11346         (vdefs_to_vec): Likewise.
11347
11348 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11349
11350         * config/spu/spu.md (divdf3): Genetate inline code for double
11351         division.  The implementation doesn't handle INF or NAN, therefore it
11352         only applies when -ffinite-math-only is given.
11353
11354 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11355
11356         PR libstdc++/34680
11357         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11358         * doc/cpp.texi ([Common Predefined Macros]): Document.
11359
11360 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11361
11362         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11363         order to use commutative addition instead of subtraction.
11364
11365 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11366             Mircea Namolaru  <namolaru@il.ibm.com>
11367             Vladimir Yanovsky  <yanov@il.ibm.com>
11368             Revital Eres  <eres@il.ibm.com>
11369
11370         PR tree-optimization/34263
11371         * tree-outof-ssa.c (process_single_block_loop_latch,
11372         contains_tree_r): New functions.
11373         (analyze_edges_for_bb): Call process_single_block_loop_latch
11374         function to empty single-basic-block latch block if possible.
11375
11376 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11377
11378         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11379         for TARGET_RECIP.
11380         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11381
11382 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11383
11384         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11385
11386 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11387
11388         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11389
11390 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11391
11392         PR tree-optimization/34618
11393         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11394         flag from T.
11395
11396 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11397
11398         PR target/34673
11399         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11400         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11401         Update copyright year.
11402
11403         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11404         Update copyright year.
11405         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11406         using NR fixup.
11407
11408 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11409
11410         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11411         edge does not point to current bb before changing need_assert.
11412
11413 2008-01-04  Richard Guenther  <rguenther@suse.de>
11414
11415         PR middle-end/34029
11416         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11417         for verifying purposes if they are is_gimple_min_invariant.
11418
11419 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11420
11421         PR tree-optimization/34448
11422         PR tree-optimization/34465
11423         * gimplify.c (gimplify_init_constructor): Add new parameter
11424         notify_temp_creation.  Use it.
11425         (gimplify_modify_expr_rhs): Take volatiles into account when
11426         optimizing constructors.
11427         Do not optimize constructors if gimplify_init_constructor will dump to
11428         memory.
11429         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11430         * gcc.c-torture/compile/pr34448.c: New.
11431
11432 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11433
11434         PR gcov-profile/34609
11435         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11436         return_slot if result is TREE_ADDRESSABLE.
11437
11438 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11439
11440         * config/mips/mips.md (sqrt_condition): Tweak comment.
11441         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11442
11443 2008-01-03  Tom Tromey  <tromey@redhat.com>
11444
11445         PR c/34457
11446         * c-common.c (c_type_hash): Handle VLAs.
11447
11448 2008-01-03  Jan Hubicka  <jh@suse.cz>
11449
11450         PR tree-optimization/31081
11451         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11452         0 when inlining and not inlining to first basic block.
11453         (remap_decl): When var is initialized to 0, don't set default_def.
11454         (expand_call_inline): Set entry_bb.
11455         * tree-inline.h (copy_body_data): Add entry_bb.
11456
11457 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11458
11459         PR c++/34619
11460         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11461         before returning.
11462
11463         PR tree-optimization/29484
11464         * tree-inline.c (inline_forbidden_p_2): New function.
11465         (inline_forbidden_p): Disallow inlining if some static var
11466         has an address of a local LABEL_DECL in its initializer.
11467         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11468         vs. inlining.
11469
11470 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11471
11472         PR tree-optimization/34635
11473         * tree-data-ref.c (add_other_self_distances): Make sure that the
11474         evolution step is constant.
11475
11476 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11477
11478         PR middle-end/34608
11479         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11480
11481 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11482
11483         * tree-sra.c (scalarize_init): Insert the generate_element_init
11484         statements after the generate_element_zero statements.
11485
11486 2008-01-02  Richard Guenther  <rguenther@suse.de>
11487
11488         PR middle-end/34093
11489         PR middle-end/31976
11490         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11491         for very large number of operands instead of ICEing.
11492
11493 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11494
11495         PR target/34013
11496         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11497         while stack probing.
11498
11499 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11500
11501         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11502         in C++0x mode.
11503
11504 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11505
11506         PR libmudflap/26442
11507         * tree-mudflap.c (mx_register_decls): Guard warning by
11508         !DECL_ARTIFICIAL check.
11509
11510 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11511
11512         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11513         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11514         sse5_perm<mode>): Fix constraints.